通过PPTP连接到主机时访问虚拟networking上的访客

我正在build立一个运行Ubuntu 12.04和KVM虚拟化的开发机器。 我有一个运行Ubuntu 12.04的客户机,可以通过由libvirt分配的IP地址从主机访问。 客人也可以访问互联网,没有问题。

但是,现在我要设置PPTP,以便可以连接到主机(从运行Windows 7的工作站),并且无需依赖SSH端口转发即可直接访问guest虚拟机。

我可以从我的W7机器连接到主机(PPTP),但是我无法访问任何虚拟机(可直接从主机访问)。

相关的configuration文件

cat /etc/network/interfaces

 auto lo iface lo inet loopback # device: eth0 auto eth0 iface eth0 inet static address xxxx broadcast xxxx netmask xxxx gateway xxxx # default route to access subnet up route add -net xxxx netmask xxxx gw xxxx eth0 

virsh net-edit default

 <network> <name>default</name> <uuid>xxxxxxxx-72ce-3c20-af0f-d3a010f1bef0</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' /> <mac address='52:54:00:xx:xx:xx'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254' /> <host mac='52:54:00:yy:yy:yy' name='web1' ip='192.168.122.11' /> </dhcp> </ip> </network> 

cat /etc/pptpd.conf (注释行删除)

 # TAG: option # Specifies the location of the PPP options file. # By default PPP looks in '/etc/ppp/options' # option /etc/ppp/pptpd-options # TAG: logwtmp # Use wtmp(5) to record client connections and disconnections. # logwtmp #(Recommended) localip 192.168.122.1 remoteip 192.168.122.234-238,192.168.122.245 

cat /etc/ppp/chap-secrets *

 # Secrets for authentication using CHAP # client server secret IP addresses xxxxx * yyyyyyyyyy 192.168.122.100 

当连接我的W7机器时,我得到了正确的IP地址,但是当我尝试ping 192.168.122.11的虚拟机时,我得到

Reply from 192.168.122.1: Destination port unreachable.

这可能是一些微不足道的东西,但我不能为了我的生活而弄清楚它是什么。 所以我转向你,serverfault。

连接到VPN后,只需通过cmd在Windows计算机上添加路由

例如。 开始>运行> cmd.exe

 route ADD 192.168.122.0 MASK 255.255.255.0 192.168.122.100 METRIC 0 destination^ ^mask ^gateway metric^ ^ 

只要设置参数是必要的。

您还需要确保您在主机系统上相应地路由stream量。 iptables是一个坚实的select。

例如。

 iptables -t nat -I POSTROUTING -o ppp+ -s 192.168.122.0/24 -j MASQUERADE 

如果你想通过它也访问互联网(即使用远程网关)

 iptables -t nat -I POSTROUTING -o eth+ -s 192.168.122.0/24 -j MASQUERADE 

OpenVPN的

OpenVPN有一个很好的function,主机可以推送路由到客户端,但委托人是一样的。 如果你想沿着这条路走下去,我已经写了一个很好的指导, https://serverfault.com/a/403016/113375

我相信你需要设置一个虚拟接口,将你路由到你的服务器的networking。 我在OpenVPN中得到了这个工作,但PPTP设置应该是类似的。

以下是我发现的一个看起来是你所需要的:

http://pptpclient.sourceforge.net/routing.phtml#client-to-lan