kvm 来宾没有互联网连接。有什么问题?

nas*_*ass 2 networking kvm internet

我在 debian 主机上设置了 kvm win7 来宾。它已经启动并运行了一段时间,但我没有做太多。我所做的(当然)是下载putty.

今天我想尝试让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
Run Code Online (Sandbox Code Playgroud)

nas*_*ass 6

所以为了让客人连接互联网,我必须添加以下内容

  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>
    
    Run Code Online (Sandbox Code Playgroud)

所以我伪装了所有离开主机的传出数据包,这些数据包带有来自来宾子网的 ip。

  1. filter 桌子

    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
    
    Run Code Online (Sandbox Code Playgroud)

我也允许来自virbr0互联网的数据包。然后允许回复转发回virbr0(已建立,相关)。

  1. filter 再次表:

    -A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT
    
    Run Code Online (Sandbox Code Playgroud)

最后,允许来宾访问主机上运行的服务。

  • 优秀。我希望我能再次为你点赞。 (2认同)