我最近在Ubuntu 11.10下安装了一台虚拟机,我现在假设它正在使用NAT,其内部地址是192.168.122.88。
我已经在我的虚拟机中设置了一个Web服务器,我希望能够在访问192.168.122.88时访问它。但是,现在它超时了。当我登录到虚拟机并尝试访问localhost时,它可以正常工作。
因此,出于某种原因,我的iptables
阻止了从主机到虚拟机的流量(但不是相反)。
如何允许流量从我的主机流向我的虚拟机,以便我可以从主机看到网络服务器?
我使用了带有KVM和libvirt的Ubuntu虚拟机管理器。
我尝试过这样的事情
iptables -t nat -A PREROUTING -d 192.168.0.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.122.88:80
无济于事。显然它说没有主机的途径??
答案 0 :(得分:0)
'没有到主机的路由'意味着主机没有可以匹配您尝试访问的网络的IP地址(您甚至没有默认路由),确保您有两个网络主机。
例如:
$ ip route show
default via 192.168.1.254 dev p3p1 src 192.168.1.103
default via 172.16.128.1 dev p3p1
169.254.0.0/16 dev p3p1 scope link metric 1003
172.16.128.0/17 dev p3p1 proto kernel scope link src 172.16.128.2
192.168.1.0/24 dev p3p1 proto kernel scope link src 192.168.1.103
在KVM主机上,我将虚拟接口连接到某个网桥。例如:
<interface type='bridge'>
<mac address='01:02:03:04:05:06'/>
<source bridge='br4'/>
<target dev='vnet4'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
然后,我为主机上的网桥分配IP地址,并将其设置为up:
ip address add 192.168.0.1/24 dev br4
ip link set up dev br4
在我的虚拟机上,我在子网上分配了一些IP地址,如192.168.0.2,然后ping之间应该成功。
ping 192.168.0.1
答案 1 :(得分:0)
也许您需要允许转发到虚拟机的连接。试试这个:
iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
希望这有帮助。