无法使用 docker 连接到 ipv6 中的 postgres
can't connect to postgres in ipv6 using docker
我的情况如下:我在 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
我已经在 postgres pg_hba.conf.
中设置了 listen_address = '*' 和“host all all md5”
编辑:
我意识到我的网络适配器正在使用两个 IPv6,一个是我在 netplan 中定义的静态的,另一个是在我的网络范围内的,但我没有分配它。
在您的 netplan 配置中,尝试添加:
accept-ra: 没有
示例:
network:
version: 2
ethernets:
ens192:
accept-ra: no
addresses: ...
我的情况如下:我在 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
我已经在 postgres pg_hba.conf.
中设置了 listen_address = '*' 和“host all all md5”编辑:
我意识到我的网络适配器正在使用两个 IPv6,一个是我在 netplan 中定义的静态的,另一个是在我的网络范围内的,但我没有分配它。
在您的 netplan 配置中,尝试添加:
accept-ra: 没有
示例:
network:
version: 2
ethernets:
ens192:
accept-ra: no
addresses: ...