私のUbuntu 12.04(正確な)ラップトップには3つのネットワークインターフェイスがあります。
eth0
:有線インターフェイスが時々インターネットに接続することがあります。wlan0
:無線インターフェースが時々インターネットに接続されるvboxnet0
:他のコンピュータ(実際にはホスト専用モードでネットワーク接続されたVirtualBox仮想マシン)に接続されている有線インターフェイス(実際にはVirtualBox仮想インターフェイス)
iptables
NAT / IPマスカレーディング設定を使用して、アクティブなインターネット接続を他のコンピュータと共有したいと思います(両方が有効な場合は有線接続が優先されます)。
eth0
挿入後、次の操作を実行できます。
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward &&
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE &&
sudo iptables -A FORWARD -i eth0 -o vboxnet0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT &&
sudo iptables -A FORWARD -i vboxnet0 -o eth0 -j ACCEPT
有線から無線への切り替えは明らかに動作を停止します。
私は試した:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward &&
sudo iptables -t nat -A POSTROUTING -o '!vboxnet0' -j MASQUERADE &&
sudo iptables -A FORWARD -i '!vboxnet0' -o vboxnet0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT &&
sudo iptables -A FORWARD -i vboxnet0 -o '!vboxnet0' -j ACCEPT
しかし、うまくいきません。インターフェイスが機能しているか無効になったときにルールを変更するためにいくつかのネットワーク管理者スクリプトを実行することもできますが、iptables
これらの問題を経験することなく可能であると思います。
どんな提案がありますか?
答え1
シンプル
iptables
すべてを覆う非常に単純なルールセットです。これは多くの簡単な設定に適用されます。完全なルーターとして機能すると、ボックスは機能しません。潜在的に不快なNAT習慣があります。みんなコンピュータから出るトラフィックです。
iptables -A POSTROUTING -o eth+ -t nat -j MASQUERADE
iptables -A POSTROUTING -o wlan+ -t nat -j MASQUERADE
いっぱい
単純なソリューションが機能しない場合、または構成がより複雑な場合は、次のルールセットが役に立ちます。
NATIF='vboxnet+'
MARK=1
iptables -A PREROUTING -t mangle -i $NATIF -j MARK --set-mark $MARK
iptables -A POSTROUTING -o eth+ -t nat -m mark --mark $MARK -j MASQUERADE
iptables -A POSTROUTING -o wlan+ -t nat -m mark --mark $MARK -j MASQUERADE
インターフェイスを介しvboxnet*
て着信パケットを表示しeth*
、wlan*
発信パケットまたはタグ付きパケットをスプーフィング(SNAT)します。
返品…
iptables
ルールに加えて、パケット転送を有効にしてホストをルーターに切り替える必要があります。置く:
net.ipv4.ip_forward=1
で/etc/sysctl.conf
、それから言う
sudo sysctl -p /etc/sysctl.conf.
または:
echo 1 | sudo tee /proc/sys/net/ipv4_ip_forward
ゲストには、ホストの外部インターフェイスを介してパケットをゲートウェイへのデフォルトパスも必要です(ホスト専用モードはこれに対して機能しない可能性があります)。ルーティングテーブルを確認してください(ゲストOSによって異なります)。
また、パケットを検査するためにインストールまたはwireshark
使用tshark
します。このような一般的なネットワーク問題を解決するためのこれ以上の方法はありません。
個人的にゲストを使用するように変更することをお勧めします。ブリッジモードネットワークそして、ホストの両方のインターフェイスを使用できるようにします。その後、ルータの DHCP サービスを使用して独自に接続して、自分でローカル アドレスを取得できます。 NATは必要ありません。