PPTP 的奇怪用法。您的 ISP 必须是中国电信上海。
如果将 VPS1 中的所有网络流量路由到 VPS2,则必须知道用户的 IP 地址并设置例外。否则用户将永远不会收到回复包。
也许您可以使用 iptables 来启用 DNAT。将 VPS1 设为路由器,将 VPS2 设为 内部 pptp 服务器。
首先,你应该检查内核模块ip_nat_pptp和ip_conntrack_pptp是否被加载。 PPTP 使用 TCP 端口 1723 传输控制命令,使用 GRE 传输数据。由于 GRE 没有端口,服务器必须使用 CallID 来跟踪端点并实现 NAT。这称为PPTP Passthrough。
# lsmod | grep pptp
如果没有加载,则加载它们。
# modprobe ip_nat_pptp
# modprobe ip_conntrack_pptp
那么你需要开启 IPv4 网络转发:
# sysctl -w net.ipv4.ip_forward=1
现在您可以创建 iptables 规则来接受传入和转发请求:
# iptables -A INPUT -d $VPS1_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A INPUT -d $VPS1_IP_ADDR -p gre -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p gre -j ACCEPT
最后设置 DNAT 规则:
# iptables -A PREROUTING -d $VPS1_IP_ADDR -p tcp --dport 1723 -j DNAT --to-destination $VPS2_IP_ADDR
# iptables -A POSTROUTING -d $VPS2_IP_ADDR -p tcp --dport 1723 -j MASQUERADE
您现在可以使用 VPS2 上 pptpd 的用户名/密码连接 VPS1。