我正拼命尝试设置一个网关服务器,将所有本地流量转发到 ppp0 连接,但仍可通过本地网络上的 ssh 访问。
点对点连接建立良好,IP 转发已启用,并且
route add -net 0.0.0.0/0 ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
我几乎实现了我想要的。但是一旦设置了“路由”,就无法再通过 ssh 访问网关服务器。
我对“route”和“iptables”还很陌生,还不完全了解它们的工作原理,但我的问题一定有一个非常简单的解决方案。
请帮忙!
一个非常相似的问题,没有适当的解决方案:如何在不丢失 SSH 访问权限的情况下通过 VPS 上的 PPTP VPN 连接路由传出流量?
编辑:下面是更详细的例子
本地主机(192.168.0.1)-->网关(192.168.0.2)-->VPN(93.184.216.34)
GATEWAY 应为通过 VPN 连接到互联网的本地网关。这是一个非常简单的设置,如上所述:启用 IP 转发,在 GATEWAY<>VPN 之间建立 PPTP 连接,然后通过 ppp0 设置默认路由。
LOCALHOST 现在可以使用 GATEWAY 通过 VPN 的 IP 地址访问互联网但一旦建立 PPTP 连接,就无法再通过 SSH 访问本地网络 (192.168.0.X) 内的 GATEWAY。
编辑2:ifconfig 和 route 输出(192.168.0.10 是“常规”本地网关)
eth0 Link encap:Ethernet Hardware Adresse 12:34:56:78:90:ab
inet Adresse:192.168.0.1 Bcast:192.168.1.255 Maske:255.255.255.0
ppp0 Link encap:Punkt-zu-Punkt-Verbindung
inet Adresse:10.10.1.1 P-z-P:93.184.216.34 Maske:255.255.255.255
-
Ziel Router Genmask Flags Metric Ref Use Iface
default * 0.0.0.0 U 0 0 0 ppp0
default 192.168.0.10 0.0.0.0 UG 0 0 0 eth0
93.184.216.34 192.168.0.10 255.255.255.255 UGH 0 0 0 eth0
93.184.216.34 * 255.255.255.255 UH 0 0 0 ppp0
localnet * 255.255.255.0 U 0 0 0 eth0
答案1
/etc/ppp/peers/配置:
...
defaultroute
replacedefaultroute
/etc/ppp/ip-up.d/配置:
#!/bin/bash
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.0.10 dev eth0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE