宝塔面板中PostgreSQL无法远程连接需四步配置:一、修改postgresql.conf的listen_addresses为'0.0.0.0';二、在pg_hba.conf添加host规则授权IP;三、重启PostgreSQL服务;四、宝塔安全模块放行5432端口并验证用户登录权限与密码。

如果您在宝塔面板中部署了PostgreSQL服务,但外部客户端无法连接,则可能是由于PostgreSQL默认仅监听本地地址且未配置远程访问白名单。以下是手动配置PostgreSQL远程访问白名单的具体步骤:
一、修改postgresql.conf启用监听所有地址
该步骤用于让PostgreSQL服务监听所有网络接口,而非仅限于127.0.0.1,为远程连接提供基础网络支持。
1、使用宝塔面板的文件管理器,进入PostgreSQL安装目录下的data子目录(通常路径为/www/server/pgsql/data/)。
2、找到并编辑postgresql.conf文件。
3、搜索listen_addresses参数,将其值修改为:listen_addresses = '0.0.0.0'。
4、确认该行前面无#号注释符,若存在则删除#号以启用配置。
二、修改pg_hba.conf添加IP白名单规则
该步骤用于定义哪些远程IP地址允许通过指定认证方式连接指定数据库,是实现安全远程访问的核心控制机制。
1、在同一data目录下,打开pg_hba.conf文件。
2、在文件末尾新增一行,格式为:host all all 192.168.1.100/32 md5(将192.168.1.100替换为需授权的具体客户端IP)。
3、如需允许多个IP,可逐行添加;如需允许某网段,可写为192.168.1.0/24。
4、确保该行协议类型为host,数据库名与用户名均为all或按需指定,认证方法推荐使用md5。
三、重启PostgreSQL服务使配置生效
配置文件修改后必须重启服务,否则变更不会加载到运行中的PostgreSQL进程。
1、返回宝塔面板首页,点击左侧菜单“软件商店”。
2、在已安装软件列表中找到“PostgreSQL”,点击右侧“设置”按钮。
3、在弹出页面中点击“停止”按钮,等待状态变为“已停止”。
4、再次点击“启动”按钮,确认状态恢复为“正在运行”。
四、检查服务器防火墙是否放行5432端口
即使PostgreSQL已监听0.0.0.0,若系统防火墙拦截5432端口,远程连接仍会被拒绝。
1、在宝塔面板左侧菜单中点击“安全”选项。
2、查看“放行端口”列表中是否存在5432,若不存在则点击“添加端口”。
3、输入端口范围5432,协议选择TCP,备注可填写“PostgreSQL远程访问”。
4、点击“提交”保存规则,并确认防火墙状态为“已启动”。
五、验证远程连接权限与凭据有效性
远程客户端能否成功连接,不仅取决于网络与服务配置,还依赖于数据库用户是否具备登录权限及密码是否正确。
1、使用SSH登录服务器,执行su - postgres切换至postgres系统用户。
2、运行psql -U postgres进入本地数据库命令行。
3、执行\du查看用户列表,确认目标用户具有Login权限。
4、如需为用户设置密码,执行ALTER USER username WITH PASSWORD 'your_secure_password';(将username和密码替换为实际值)。










