Networking
kvm 來賓沒有網際網路連接。有什麼問題?
我在 debian 主機上設置了一個 kvm win7 來賓。它已經啟動並執行了一段時間,但我並沒有做太多。我所做的(當然)是下載
putty
.今天我想嘗試讓 putty 訪問主機,所以我不得不更新防火牆規則。在那之後,我再也沒有來自客人的網際網路連接了。還原更改也無濟於事。所以我想知道為什麼我不再可以從客人那裡訪問網際網路了。老實說,我不知道為什麼。
我在此處附加以下很可能會感興趣的資訊:
目前 iptable 規則: http: //pastebin.com/pTnfs5sr
kvm 來賓 xml: http: //pastebin.com/U0GhW0px
執行來賓的 qemu cmd:http: //pastebin.com/htZ4R0FE
ifconfig: 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
因此,要獲得與客人的網際網路連接,我必須添加以下內容
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
最後,允許客人訪問主機上執行的服務。