
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에는 연결되지 않았습니다. 포트 51413은 127.0.0.1에만 사용할 수 있습니다.
답변1
Docker는 방화벽 외부에서 포트 자체를 열기 때문에 방화벽에서는 이러한 항목을 볼 수 없습니다.
Docker가 수행하는 작업을 보려면 다음을 실행하세요.
iptables -L DOCKER
iptables -t nat -L DOCKER
도커는방화벽 포트 자체를 엽니다.EXPOSE
명시적으로 비활성화하지 않는 한, 모든 포트에 대해 컨테이너입니다 . 또한 서로 통신해야 하는 컨테이너가 그렇게 할 수 있도록 허용하므로,정말당신이 무엇을하고 있는지 알아요.