PostgreSQL 16.6无法远程连接:配置pg_hba.conf后仍仅监听localhost
问题根源及解决步骤
你只修改了控制连接权限的pg_hba.conf,但没调整PostgreSQL的监听地址配置——这才是导致服务仅监听本地回环地址的核心原因。
具体操作步骤
确认postgresql.conf路径
登录PostgreSQL执行命令:SHOW config_file;通常路径为
/etc/postgresql/16/main/postgresql.conf修改监听地址配置
打开该配置文件,找到listen_addresses项:#listen_addresses = 'localhost' # 默认值,仅监听本地注释掉原行,改为:
listen_addresses = '*' # 监听所有可用网络接口重启PostgreSQL服务
执行系统命令:sudo systemctl restart postgresql@16-main或者用service命令:
sudo service postgresql restart验证监听状态
再次执行:ss -nlt | grep 5432此时应该看到
0.0.0.0:5432和[::]:5432的监听记录。
额外注意事项
- 若服务器启用了防火墙(如ufw),需要开放5432端口:
sudo ufw allow 5432/tcp - 确保用于远程连接的数据库用户拥有登录权限,且允许从外部主机访问(例如创建用户时指定:
CREATE USER your_user WITH PASSWORD 'your_password' LOGIN;)
内容的提问来源于stack exchange,提问作者Orthodox
相关产品推荐
相关产品推荐

