Debian中PostgreSQL网络连接设置指南
首先确保Debian系统已更新,然后通过以下命令安装PostgreSQL服务器及附加工具:
sudo apt update
sudo apt install postgresql postgresql-contrib
安装完成后,PostgreSQL服务会自动启动,可通过sudo systemctl status postgresql验证状态。
PostgreSQL默认仅监听本地连接(localhost),需修改postgresql.conf文件开启远程监听:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
找到listen_addresses参数,将其修改为'*'(允许所有IP地址连接)或指定具体IP(如192.168.1.100):
listen_addresses = '*'
port = 5432 # 默认端口,可根据需求修改
保存并退出编辑器。
编辑pg_hba.conf文件,添加允许远程连接的规则:
sudo nano /etc/postgresql/<version>/main/pg_hba.conf
在文件末尾添加以下行(以允许特定网段192.168.1.0/24的MD5密码认证为例):
# IPv4 remote connections
host all all 192.168.1.0/24 md5
若需允许所有IP地址连接(不推荐生产环境使用),可改为:
host all all 0.0.0.0/0 md5
保存并退出编辑器。
应用配置更改,重启PostgreSQL服务:
sudo systemctl restart postgresql
如需重新加载配置(无需重启服务),可使用:
sudo systemctl reload postgresql
若系统启用了UFW防火墙,需允许PostgreSQL默认端口(5432)的TCP流量:
sudo ufw allow 5432/tcp
sudo ufw enable # 若未启用防火墙,可执行此命令开启
sudo ufw status # 验证规则是否生效
若使用iptables,可添加以下规则:
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
sudo netfilter-persistent save # 保存iptables规则(Debian默认安装)
从远程机器使用psql命令测试连接(替换<server_ip>、<username>、<database>为实际值):
psql -h <server_ip> -U <username> -d <database>
输入密码后,若成功进入PostgreSQL提示符(postgres=>),则说明配置正确。
pg_hba.conf中仅允许信任的IP网段访问,避免使用0.0.0.0/0。postgresql.conf中启用SSL(ssl = on),并配置证书路径(ssl_cert_file、ssl_key_file),强制客户端使用SSL连接。