我有带有 nginx 的 centos7 docker 容器。
尽管此端口未在 firewalld 中打开,但端口 80 仍可从外部使用。这里公共区域的规则:
# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eno3
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
但在链 DOCKER 中有一个针对此端口的自动规则:
# iptables -L DOCKER
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http
如何从外部关闭此端口?我已经运行了命令,但没有帮助:
# firewall-cmd --zone=public --remove-port=80/tcp --permanent
Warning: NOT_ENABLED: 80:tcp
success
我已阅读文档 - https://docs.docker.com/engine/userguide/networking/ 但仍然不明白。实际上我只需要为我指定的网络 1.2.3.4/24 打开此端口 80。