10.0.3.2
ホストでLXCコンテナ()を実行しています。ポート上のコンテナー内でサービスが実行されています7000
。
ホスト(10.0.3.1
、lxcbr0
)から、サービスにアクセスできます。
$ telnet 10.0.3.2 7000
Trying 10.0.3.2...
Connected to 10.0.3.2.
Escape character is '^]'.
コンテナー内で実行されているサービスを、外部の世界からアクセスできるようにしたいと思います。したがって、7002
ホストのポート7000
をコンテナのポートに転送したいと思います。
iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000
結果は(iptables -t nat -L
)になります:
DNAT tcp -- anywhere anywhere tcp dpt:afs3-prserver to:10.0.3.2:7000
それでも、転送されたポートを使用してホストからサービスにアクセスできません。
$ telnet 10.0.3.1 7002
Trying 10.0.3.1...
telnet: Unable to connect to remote host: Connection refused
ここでバカなことを見逃しているような気がします。確認すべきことは何ですか?これらの状況をデバッグするための良い戦略は何ですか?
完全を期すためiptables
に、ホストでの設定方法を次に示します。
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o lxcbr0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000
ACCEPT
FORWARD
チェーンを意味していました。また、IP転送が有効になっているかどうかを確認しますcat /proc/sys/net/ipv4/ip_forward
。
ip_forward
に設定されています1
FORWARD
ポリシーもACCEPT
INPUT
チェーンをチェックしましたか?たぶんポリシーはREJECT
そこにあります。