问题描述
我的情况如下:我在ubuntu 20.04服务器上安装了一个postgres 12,并在另一个启用了ipv6的主机上运行了一个docker容器。
我无法使用ipv6从docker容器内部访问Postgres服务器。
这些命令可在容器内使用:
$ ping POSTGRES_SERVER_IPv4
$ ping POSTGRES_SERVER_IPv6
$ telnet POSTGRES_SERVER_IPv4 5432
但这在容器内部不起作用(但在docker主机上有效):
$ telnet POSTGRES_SERVER_IPv6 5432
我已经设置了listen_address ='*'并在postgres pg_hba.conf中“托管所有md5”。
编辑:
我意识到我的网络适配器正在使用两个IPv6,一个是我在netplan中定义的静态适配器,另一个是在我的网络范围内的适配器,但是我没有分配它。
解决方法
在您的netplan配置中,尝试添加:
accept-ra:否
示例:
network:
version: 2
ethernets:
ens192:
accept-ra: no
addresses: ...