У меня есть установка apache2 контейнера LXC (контейнер прослушивает 192.168.122.179:80).
Хост 10.138.141.216.
Если я туннелирую через ssh: ssh -L 45678: 192.168.122.179: 80 myuser@10.138.141.216 с моего компьютера я получаю страницу apache2 (браузер на http://localhost:45678)
НО, если я отключаю туннель ssh и использую только iptables http://10.138.141.216:45678 won 't работа:
[~]$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9 564 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:45678 to:192.168.122.179:80
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 192.168.122.0/24 224.0.0.0/24
2 656 RETURN all -- * * 192.168.122.0/24 255.255.255.255
606 36360 MASQUERADE tcp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
725 101K MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24
Я могу видеть, как меняются номера pkts и байтов всякий раз, когда я обновляю страницу в браузере, но все, что я получаю, это "Этот сайт недоступен".
Так что туннель ssh работает, а правило iptables не работает ...
ОБНОВЛЕНИЕ:
с помощью tcpdump я вижу "tcp port eba unreachable", почему ???
14:46:40.672318 IP 10.79.41.37.57504 > mymachine.eba: Flags [S], seq 2646922897, win 8192, options [mss 1360,nop,wscale 8,nop,nop,sackOK,unknown-33 0x21cc167ee1203a070000], length 0
14:46:40.672402 IP mymachine > 10.79.41.37: ICMP mymachine tcp port eba unreachable, length 72
wget http://192.168.122.179 работает изнутри хоста ...