Debian上PostgreSQL网络设置主要涉及配置文件修改与防火墙调整,核心步骤如下:
-
修改
postgresql.conf- 找到
listen_addresses参数,设置为'*'以允许所有IP连接(或指定具体IP,如192.168.1.100)。 - 确认
port参数(默认5432)与防火墙规则一致。
- 找到
-
配置
pg_hba.conf- 添加规则允许远程访问,例如:
host all all 0.0.0.0/0 md5(允许所有IP通过密码认证,生产环境不推荐)。
或限制特定网段:host all all 192.168.1.0/24 md5。 - 支持的认证方法包括
md5(密码加密)、scram-sha-256(更安全的加密方式)。
- 添加规则允许远程访问,例如:
-
重启服务与验证
- 重启PostgreSQL使配置生效:
sudo systemctl restart postgresql。 - 使用
sudo netstat -plnt | grep postgres检查端口监听状态,确认0.0.0.0:5432在监听。
- 重启PostgreSQL使配置生效:
-
防火墙设置
- 若使用
ufw,允许PostgreSQL端口:sudo ufw allow 5432/tcp。 - 若使用
iptables,添加规则:sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT。
- 若使用
-
安全建议
- 生产环境中避免使用
listen_addresses='*',应指定具体IP。 - 优先使用
scram-sha-256替代md5,并定期更新密码。 - 通过
pg_hba.conf限制仅允许必要IP访问,最小化权限。
- 生产环境中避免使用
配置文件路径:
postgresql.conf:/etc/postgresql/<版本>/main/postgresql.conf。pg_hba.conf:/etc/postgresql/<版本>/main/pg_hba.conf。
参考来源: