无法使用 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: ...