LINUX.ORG.RU

История изменений

Исправление fraer, (текущая версия) :

вообщем вы правильно сказали, если делать сеть через bridge то iptables lxc не перекрывает lxc хоста.

Не пойму только как открыть для docker порты из мира. С хоста ip докеров не пингуются. А из lxc конечно есть пинг. Дело наверняка в iptables.

iptables-host ∨∨∨∨∨∨∨∨∨∨∨

iptables-save
# Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021
*mangle
:PREROUTING ACCEPT [59111:185061933]
:INPUT ACCEPT [4420:343076]
:FORWARD ACCEPT [54691:184718857]
:OUTPUT ACCEPT [3552:549871]
:POSTROUTING ACCEPT [58243:185268728]
-A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Thu Apr 29 18:49:45 2021
# Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021
*nat
:PREROUTING ACCEPT [867:50713]
:INPUT ACCEPT [584:34878]
:OUTPUT ACCEPT [166:12470]
:POSTROUTING ACCEPT [388:24645]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT
# Completed on Thu Apr 29 18:49:45 2021
# Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021
*filter
:INPUT ACCEPT [4279:332456]
:FORWARD ACCEPT [333:18475]
:OUTPUT ACCEPT [3557:550915]
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT
-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT
COMMIT
# Completed on Thu Apr 29 18:49:45 2021

iptables-lxc ∨∨∨∨∨∨∨∨∨∨∨

iptables-save
# Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021
*mangle
:PREROUTING ACCEPT [8475:51005444]
:INPUT ACCEPT [8474:51005113]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [7104:415867]
:POSTROUTING ACCEPT [7104:415867]
COMMIT
# Completed on Thu Apr 29 16:54:03 2021
# Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 2222 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 172.17.0.2:2222
COMMIT
# Completed on Thu Apr 29 16:54:03 2021
# Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 2222 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Thu Apr 29 16:54:03 2021

Как мне открыть порт 2222, для того что бы я зашел из мира в докер с ипом 172.17.0.2 ?

Исходная версия fraer, :

вообщем вы правильно сказали, если делать сеть через bridge то iptables lxc не перекрывает lxc хоста.

Не пойму только как открыть для docker порты из мира. С хоста ip докеров не пингуются. А из lxc конечно есть пинг. Дело наверняка в iptables.

iptables-save # Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021 *mangle :PREROUTING ACCEPT [59111:185061933] :INPUT ACCEPT [4420:343076] :FORWARD ACCEPT [54691:184718857] :OUTPUT ACCEPT [3552:549871] :POSTROUTING ACCEPT [58243:185268728] -A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT # Completed on Thu Apr 29 18:49:45 2021 # Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021 *nat :PREROUTING ACCEPT [867:50713] :INPUT ACCEPT [584:34878] :OUTPUT ACCEPT [166:12470] :POSTROUTING ACCEPT [388:24645] -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE COMMIT # Completed on Thu Apr 29 18:49:45 2021 # Generated by iptables-save v1.4.21 on Thu Apr 29 18:49:45 2021 *filter :INPUT ACCEPT [4279:332456] :FORWARD ACCEPT [333:18475] :OUTPUT ACCEPT [3557:550915] -A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT -A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT -A FORWARD -o lxcbr0 -j ACCEPT -A FORWARD -i lxcbr0 -j ACCEPT COMMIT # Completed on Thu Apr 29 18:49:45 2021

iptables-save # Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021 *mangle :PREROUTING ACCEPT [8475:51005444] :INPUT ACCEPT [8474:51005113] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [7104:415867] :POSTROUTING ACCEPT [7104:415867] COMMIT # Completed on Thu Apr 29 16:54:03 2021 # Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :DOCKER - [0:0] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE -A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 2222 -j MASQUERADE -A DOCKER -i docker0 -j RETURN -A DOCKER ! -i docker0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 172.17.0.2:2222 COMMIT # Completed on Thu Apr 29 16:54:03 2021 # Generated by iptables-save v1.8.2 on Thu Apr 29 16:54:03 2021 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :DOCKER - [0:0] :DOCKER-ISOLATION-STAGE-1 - [0:0] :DOCKER-ISOLATION-STAGE-2 - [0:0] :DOCKER-USER - [0:0] -A INPUT -p tcp -m tcp --dport 22 -j DROP -A INPUT -p tcp -m tcp --dport 22 -j DROP -A FORWARD -j DOCKER-USER -A FORWARD -j DOCKER-ISOLATION-STAGE-1 -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -o docker0 -j DOCKER -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT -A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 2222 -j ACCEPT -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2 -A DOCKER-ISOLATION-STAGE-1 -j RETURN -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP -A DOCKER-ISOLATION-STAGE-2 -j RETURN -A DOCKER-USER -j RETURN COMMIT # Completed on Thu Apr 29 16:54:03 2021

Как мне открыть порт 2222, для того что бы я зашел из мира в докер с ипом 172.17.0.2 ?