You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置PostgreSQL以接受指定IPv6地址的传入连接

PostgreSQL pg_hba.conf IPv6配置及连接问题解决

1. IPv6规则的斜杠后缀说明

  • 斜杠后的数值是IPv6的CIDR前缀长度,必须保留斜杠和后缀,逻辑和IPv4的CIDR规则完全一致:
    • 仅允许单个指定IPv6地址访问时,后缀填128,你的示例规则应写为:
      host  all  all   1:2:3:4:5:6:7:8/128  md5
      
    • 如需开放连续的IPv6地址段,根据实际网段的前缀长度填写即可,比如常用的/64就是开放整个/64网段下的所有地址访问。

2. trust规则配置后仍登录失败的解决方法

按以下顺序排查即可:

  • 先检查规则匹配顺序:pg_hba.conf的匹配逻辑是从上到下匹配,命中第一条符合条件的规则就终止匹配。请确认你写的IPv6 trust规则上方,没有更早命中的同网段/同IP的其他认证规则(比如md5、scram-sha-256规则),如果有就把当前trust规则挪到同IP规则的最上方。
  • 核对客户端实际出口IPv6地址:不要直接填内网IPv6地址,在客户端所在设备上执行curl 6.ipw.cn或者ifconfig/ip addr命令,确认公网出口IPv6地址和你配置的xxxx:xxxx:xxxx:ccc:xxxx:xxxx:xxxx完全一致。
  • 重载PostgreSQL配置使其生效:修改pg_hba.conf后必须重载配置才会生效,执行对应系统的重载命令即可,比如Debian/Ubuntu系统执行sudo systemctl reload postgresql,源码安装的可以执行pg_ctl reload。
  • 确认用户密码状态:检查postgres用户是否真的设置了空密码,执行SQL SELECT passwd FROM pg_shadow WHERE usename = 'postgres';,如果passwd字段不为空,即使配置了trust也无法用空密码登录,你可以先把规则的trust改成md5,填写正确的postgres用户密码测试连通性,确认没问题后再调整认证方式。
  • 查看PostgreSQL日志定位具体错误:日志默认存放在/var/log/postgresql/目录下,日志会明确标注是规则未命中、密码错误还是权限限制导致的连接失败。

内容的提问来源于stack exchange,提问作者thefonso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:15:08