一键脚本:开启 / 关闭 PG 外网访问

一键开启 PostgreSQL 外网访问
sudo sed -i "s/^#*listen_addresses.*/listen_addresses='*'/" $(sudo -u postgres psql -t -P format=unaligned -c "show config_file") && sudo sh -c "echo 'host all all 0.0.0.0/0 md5' >> $(dirname $(sudo -u postgres psql -t -P format=unaligned -c 'show config_file'))/pg_hba.conf" && sudo systemctl restart postgresql

作用:

修改 listen_addresses='*'

在 pg_hba.conf 添加

host all all 0.0.0.0/0 md5

重启 PostgreSQL

一键关闭 PostgreSQL 外网访问
sudo sed -i "s/^listen_addresses.*/listen_addresses='localhost'/" $(sudo -u postgres psql -t -P format=unaligned -c "show config_file") && sudo sed -i "/0.0.0.0\/0/d" $(dirname $(sudo -u postgres psql -t -P format=unaligned -c "show config_file"))/pg_hba.conf && sudo systemctl restart postgresql

作用:

改回 listen_addresses='localhost'

删除 0.0.0.0/0 规则

重启数据库

验证是否成功
ss -lntp | grep 5432

如果看到:

0.0.0.0:5432

说明外网访问已开启。

搜索