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)
所以为了让客人连接互联网,我必须添加以下内容
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。
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(已建立,相关)。
filter 再次表:
-A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)最后,允许来宾访问主机上运行的服务。
| 归档时间: |
|
| 查看次数: |
17875 次 |
| 最近记录: |