Networking

kvm 來賓沒有網際網路連接。有什麼問題?

  • April 6, 2017

我在 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

因此,要獲得與客人的網際網路連接,我必須添加以下內容

  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 偽裝所有離開主機的傳出數據包。

  1. filter桌子
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT

我也允許來自virbr0網際網路的數據包。然後允許將回復轉發回virbr0(已建立,相關)。

  1. filter再次表:
-A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT

最後,允許客人訪問主機上執行的服務。

引用自:https://unix.stackexchange.com/questions/158077