Docker 阻止来自远程的单个特定端口的连接?

Docker 阻止来自远程的单个特定端口的连接?

我有一台带有两个 Docker 容器的服务器,每个容器都有自己的 PostgreSQL 数据库。一个容器映射到端口 32772,另一个映射到端口 32771。这两个数据库以前可供远程用户访问,并且可以同时完美运行。直到我们强制关闭机器。

前任管理员设置了一个系统,这样 docker 就会在启动时启动,32771 的容器也会启动。我使用 手动重启了 32772 容器docker start。现在,怪事开始了。

psql当前计算机可以访问这两个nc数据库,而远程计算机只能访问数据库 32771。

两个容器都使用官方的 postgres 映像,它们之间的唯一区别(除了数据库数据之外)是它们位于不同的 docker 网络中,所以我不知道是什么导致了这种行为的改变。

我查看了一下iptables,没有发现任何奇怪的行为。两个端口都标记为在 ipv4 和 ipv6 中监听。32772pga_conf.hba并且postgresql.conf配置正确。数据库日志中没有失败的连接尝试。知道是什么导致了这种行为吗?

一些日志:

iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (2 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             172.18.0.2           tcp dpt:postgresql
ACCEPT     tcp  --  anywhere             172.18.0.3           tcp dpt:http
ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:7687
ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:7474
ACCEPT     tcp  --  anywhere             172.17.0.3           tcp dpt:postgresql

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (2 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

docker ps

CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS        PORTS                                            NAMES
3d001590ef69   postgis/postgis   "docker-entrypoint.s…"   12 months ago   Up 2 hours    0.0.0.0:32772->5432/tcp, :::32772->5432/tcp      postgis
6273d983556f   postgres          "docker-entrypoint.s…"   20 months ago   Up 2 months   0.0.0.0:32771->5432/tcp, :::32771->5432/tcp      pg_container
3714a16b6263   dpage/pgadmin4    "/entrypoint.sh"         20 months ago   Up 2 months   443/tcp, 0.0.0.0:5050->80/tcp, :::5050->80/tcp   pgadmin4_container

docker 网络列表

49a50a34254d   bridge            bridge    local
db7b6beb29cd   host              host      local
cc7bc4c85bbd   none              null      local
36ae3773e28d   pgadmin_default   bridge    local

相关内容