
Bitte helfen Sie mir zu verstehen, warum FirewallD mir erlaubt, eine Verbindung zu einem Port herzustellen, den zweiten aber blockiert.
Es gibt einen Docker-Container mit Übertragung:
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
Beide Ports (9091 und 51413) sind nicht in den FirewallD-Regeln aufgeführt:
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:
Aber! Die Verbindung ist für Port 9091 erfolgreich, aber nicht für Port 51413. Port 51413 ist nur für 127.0.0.1 verfügbar
Antwort1
Sie sehen diese nicht in Firewalld, da Docker die Ports außerhalb von Firewalld selbst öffnet.
Um zu sehen, was Docker tut, führen Sie Folgendes aus:
iptables -L DOCKER
iptables -t nat -L DOCKER
Docker wirdFirewall-Ports selbst öffnenfür jeden Port Ihrer Container EXPOSE
, sofern Sie dies nicht ausdrücklich deaktivieren. Es ermöglicht auch Containern, die miteinander kommunizieren müssen, dies zu tun, daher sollten Sie dies aktiviert lassen, sofern Sie nichtWirklichwissen, was Sie tun.