Debian ホストに kvm win7 ゲスト仮想マシンを設定しました。しばらく運営されてきましたが、あまり多くのことはしませんでした。私がしたことは(もちろん)ダウンロードでしたputty
。
今日はパテがホストにアクセスできるようにしたいので、ファイアウォールルールを更新する必要があります。それ以来、ゲストのためのインターネット接続はありませんでした。変更を元に戻しても役に立ちません。それでは、なぜゲストからもはやインターネットにアクセスできないのだろうか。正直なぜなのか理解できません。
あなたが最も興味を持っているように、次の情報を添付しました。
現在のiptableルール:http://pastebin.com/pTnfs5sr
kvmゲストxml:http://pastebin.com/U0GhW0px
ゲストのqemu cmdを実行します。http://pastebin.com/htZ4R0FE
設定されている場合:http://pastebin.com/uGVN29VZ
Ifconfigには2つの仮想インターフェイスが表示されます。virbr0
これが私が期待したものですが、vnet0
設定方法と理由がわかりません。virbr0
実行して再起動するたびに破損して再表示されますvirst net-destroy default
。
助けてくれてありがとう。
編集:カーネルルーティングテーブルも追加します。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 <external IP of Host> 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
195.251.61.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ベストアンサー1
したがって、ゲストとインターネット接続を確立するには、以下を追加する必要があります。
nat
テーブル-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j SNAT --to-source <the host's ip>
そのため、ホストから出てくるすべての発信パケットをゲストサブネットのIPに偽装しました。
filter
テーブル-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
また、virbr0
インターネットからのパケットも許可します。その後、応答をvirbr0
(設定済み、関連)に戻すことができます。
filter
再表:-A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT
最後に、ゲストがホスト上で実行されているサービスにアクセスできるようにします。