我在 CentOS 6 机器上设置了一个 PPTP 服务器。
多个客户端(Windows 和 Linux)连接到此服务器。
所有客户端使用相同的子网。
所有客户端(Win 或 Lin)都可以使用 VPN 成功上网。Windows
客户端可以 ping 通连接到 VPN 的任何其他 Windows 客户端(XP/Vista/7)。Linux 客户
端(KVPNC)可以 ping 通连接到 VPN 的任何 Windows 客户端(XP/Vista/7)。
到目前为止一切顺利。但有一个奇怪的问题,我一直在努力解决,但没有成功:
没有客户端可以 ping(成功)连接到 VPN 的 Linux 客户端。是的,防火墙已完全禁用。
我会非常感激任何提示/想法。TIA,
编辑:这样做的最终目的是通过 VPN 共享服务,比如从 Windows 客户端访问在 Linux 机器上运行的 HTTPD。
答案1
在VPN 服务器,需要做以下工作:
启用 tcp/ip 转发
Linux TCP/IP 堆栈默认不转发数据包(无论是在接口之间还是在 IP 网络之间重新路由)。必须启用它
echo 1 > /proc/sys/net/ipv4/ip_forward
如果没有该规则,VPN 服务器将在本地接受 VPN 客户端数据包,并根据 NAT 规则路由客户端数据包,但不会将流量路由到包括其他 vPN 客户端在内的本地网络。
iptables 目录
Iptables 默认阻止所有流量。您需要制定规则来允许流量通过。
$IPTABLES -A FORWARD -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT
改变192.168.1.0/24与您的 VPN 网络 IP 地址匹配。这将允许您的 VPN 网络计算机之间的通信。
/etc/pptp.conf
当 vpn 客户端需要互相通信时,vpn 服务器充当路由点,并且需要在同一个网络上。
localip 192.168.1.1
remoteip 192.168.1.2-254
根据您的网络设置修改上述内容。