使用 FirewallD 成功連接到關閉端口

使用 FirewallD 成功連接到關閉端口

請幫助理解為什麼 FirewallD 允許我連接到一個連接埠但阻止第二個連接埠。

有一個帶有傳輸的Docker容器:

5cf144eed6f2        maksim77/transmission   "/bin/sh -c 'transmis"   14 hours ago        Up 16 minutes       0.0.0.0:9091->9091/tcp, 0.0.0.0:51413->51413/tcp   transmission

這兩個連接埠(9091 和 51413)均未在 ​​FirewallD 規則中列出:

root@host:maksim #firewall-cmd --list-all-zones | grep active
public (default, active)
trusted (active)

root@host:maksim #firewall-cmd --list-all --zone trusted
  trusted (active)
  interfaces: docker0
  sources:
  services:
  ports: 4243/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

root@host:maksim #firewall-cmd --list-all --zone public
  public (default, active)
  interfaces: enp9s0
  sources:
  services: dhcpv6-client ftp http ssh
  ports: 41387/tcp 1900/udp 50213/tcp 8200/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

但!連接埠 9091 連線成功,但連接埠 51413 連線失敗。

答案1

您在firewalld 中看不到這些,因為Docker 在firewalld 之外自行開啟連接埠。

要查看 Docker 正在做什麼,請運行:

iptables -L DOCKER
iptables -t nat -L DOCKER

碼頭工人將開啟防火牆連接埠本身對於容器的任何端口EXPOSE,除非您明確停用它。它還允許需要相互通信的容器這樣做,因此您應該啟用此功能,除非您真的知道你在做什麼。

相關內容