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

修改PostgreSQL pg_hba.conf的IPv6地址后服务启动失败是什么原因?

报错原因分析
  • 核心原因:IPv6地址缺失子网前缀长度
    原来的默认配置里::1/128的/128是IPv6的子网前缀长度,属于必填参数。你替换地址时没有保留该后缀,PostgreSQL解析配置行时会把后一个字段md5当成子网掩码读取,自然触发invalid IP mask "md5"的报错。
    如果是仅允许对应单个IPv6地址访问,修正后写法应为:
    host    all             all             1111:2222:a111:a11:b222:11a:abcd:efg/128                md5
    
    如果是允许整个家庭IPv6网段访问,通常家庭IPv6前缀为/64,可修改为:
    host    all             all             1111:2222:a111:a11::/64                md5
    
  • 次要原因:IPv6地址格式非法
    你示例中的IPv6地址末尾段为efgs,而IPv6是十六进制地址,仅允许出现0-9、a-f/A-F的字符,出现g这类非法字符也会导致地址解析失败。
  • 额外注意事项
    如果仅需要家庭内网设备访问,不需要填写从谷歌查到的公网IPv6地址,直接填写内网网段即可;也可以直接新增IPv4内网访问规则,比如家庭内网网段为192.168.1.0/24,新增如下规则更稳定,不会随公网IP变动失效:
    host    all             all             192.168.1.0/24            md5
    
    另外修改pg_hba.conf后需要确认postgresql.conf中的listen_addresses参数配置为*或者你服务器对应的网卡地址,默认仅监听localhost的话,外部设备依然无法连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:45:04