有一个Linux机器(A)在防火墙后面的大学网络中运行pptpd,但具有真正的IP。我对这个网络中的IP分发没有任何访问或知识,所以我不能仅仅在pptpd配置中设置remoteip X.Y.Z.200-250,因为它可能会导致冲突。我想知道是否有可能为所有连接的VPN客户端创建一个虚拟集线器,然后是NATed到真正的网络。
这里有一些笨拙的ascii grpaphics,说明了我想要实现的目标:
PPTP-client ---\ ________________ ________________________
\ | 10.0.0.0/24 | |10.0.0.0/24 real ip|
PPTP-client ----->| Virt. hub (A) |----|ethX A eth0|----- Outside world
/ |_______________| |_______________________|
PPTP-client ---/谷歌显示,PacketiX.NET和UT具有这样的内置功能,但我不知道如何使用普通的pptpd。我尝试过创建虚拟接口,用静态IP配置它,然后给pptp客户端这个接口子网的IP,但没有成功。
其他vpn服务器的使用是有问题的,因为非常偏执的防火墙设置和我不得不使用wetware服务器在A上的任何操作。
发布于 2013-12-09 17:31:33
您可以使用PPTPd服务器(如果您的网络没有过滤GRE )。PPTD将为服务器上的每个客户端创建新的ppp接口。
例如,您指定
localip 192.168.101.1-100
remoteip 192.168.101.101-200因此,每个ppp*接口都将从192.168.101子网中获得新的IP。最后,您可以将所有的流量从这个子网到您真正的IP (别忘了net.ipv4.ip_forward=1)
# here could be full MASQUERADE or SNAT
iptables -t nat -I POSTROUTING -o real_interface0 -j MASQUERADE
# forward for all ppp + MSS tune, conntrack recommended
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtuhttps://serverfault.com/questions/333817
复制相似问题