2011-10-26 105 views
2

我最近在Ubuntu 11.10下安裝了一個虛擬機,現在我假設它使用NAT,它的內部地址是192.168.122.88。端口轉發到虛擬機qemu

我在我的虛擬機中安裝了一個Web服務器,我希望能夠在訪問192.168.122.88時訪問它。但是,現在它超時了。當我登錄到虛擬機並嘗試訪問本地主機時,它可以正常工作。

因此,由於某種原因,我的iptables阻止了從主機到虛擬機的流量(但不是相反)。

如何讓流量從我的主機流到我的虛擬機,以便我可以從主機看到網絡服務器?

我使用Ubuntu Virtual Machine Manager w/KVM和libvirt。

我想這樣做成才這樣

iptables -t nat -A PREROUTING -d 192.168.0.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.122.88:80 

與無濟於事。顯然它說沒有路線主辦?

回答

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地址,主機上的橋樑,並將它放在了:

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 
0

也許你需要允許轉發連接到虛擬機。試試這個:

iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT 

希望這會有所幫助。