私のワイヤレスネットワークアダプタはブリッジングをサポートしていないので、ゲストVMをオープンインターネットに接続し、ホストと同じネットワークにIPアドレスを持つことは本当に難しいです。 Ubuntu 10.10を使用していますが、KVMのバージョンがvdeをサポートしていないため、より困難になりました。この問題をどのように解決できますか?
@stribikaのアイデアは素晴らしいですが、VMをホストと同じネットワークに接続することを好みます。たとえば、私のホストネットワークは192.168.1.0で、私の仮想マシンネットワークも同じになりたいです。
答え1
ユーザーモードのネットワークスタックが利用可能である必要があります。次のようにqemuを起動します。
qemu-system-x86_64 \
-smp 1 -m 1024 \
-net user,net=10.0.0.0/8,host=10.0.0.1,hostfwd=tcp:127.0.0.1:2222-10.0.0.2:22 \
-net nic \
-cdrom systemrescuecd-x86-2.0.1.iso -boot d
重要なオプション:
-net nic
:ゲストの仮想ネットワークカードを表示します。-net user
:ホストのqemuプロセスが他のプロセスと同じように物理ネットワークを介して通信できるようにします。net=10.0.0.0/8
: 仮想ネットワークのサブネットhost=10.0.0.1
:仮想ネットワークのホストIPアドレスhostfwd=tcp:127.0.0.1:2222-10.0.0.2:22
:ホストのqemuプロセスは、ポート2222でlocalhostのTCP接続をリッスンし、それを仮想ネットワーク10.0.0.2:22に転送します(新しい仮想マシンでsshできるように)。
ゲストラン
ifconfig eth0 10.0.0.2 up
ip route add default via 10.0.0.1 dev eth0
ホストからゲストへのSSHテスト
ssh 127.0.0.1 -p 2222
ゲストからホストへ
ssh 10.0.0.1
ゲストインターネットアクセシビリティテスト
wget google.com
ホストプロセスはNATルータのように動作します。 TCPおよびUDPトラフィックのみ有効です。特に、pingはゲストとホストの間でのみ機能し、google.com(私が一般的に使用するネットワークテスト方法)ではpingを実行できません。この方法の利点は、root権限でさえ必要ないことです。
答え2
注意-22:インターネット接続の完全な目的がゲストにopenssh-serverをインストールすることである場合、ホストはゲストにSSHを介して接続できません。