私はubuntu/xenial64
VMをポート転送でセットアップしました(config.vm.network "forwarded_port", guest: 80, host: 8080
)。 VMの内部で私はLXCコンテナ(ubuntu/trusty
)を作成し、iptables
ルールを追加しました:virtualbox VM内で実行されているlxcコンテナにポートを転送する方法は?
iptables -t nat -A PREROUTING -i lxcbr0 -p tcp --dport 80 -j DNAT --to-destination 10.0.3.153:80
をそして、VM内で実行されている、LXCコンテナ内のVM内の1 nginx
、および1つをインストールしました。 VMの外部からは、VM内で実行されているnginxにアクセスできますが、lxcコンテナ内で実行されているものにはアクセスできません。私は(VMの外)を使用確認するには:
curl -sSv localhost:8080
または:
w3m http://localhost:8080
をどのようにして応答する1わかりますか?私は、VMの内部で実行されているものを停止し、応答を得ません。しかし、私はVM内のlxcコンテナ内で実行されているnginxにアクセスできます。
私は間違っています(VMの内部でlxcコンテナを実行する場合を除く)。 :)
はここiptables-save
の出力です:
# iptables-save [9/858]
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016
*mangle
:PREROUTING ACCEPT [293:22775]
:INPUT ACCEPT [261:20343]
:FORWARD ACCEPT [32:2432]
:OUTPUT ACCEPT [174:19243]
:POSTROUTING ACCEPT [206:21675]
-A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Mon Jul 18 22:04:52 2016
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i lxcbr0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.3.153:80
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT
# Completed on Mon Jul 18 22:04:52 2016
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016
*filter
:INPUT ACCEPT [256:19487]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [176:19491]
-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 Mon Jul 18 22:04:52 2016