![如何做路由](https://linux22.com/image/42968/%E5%A6%82%E4%BD%95%E5%81%9A%E8%B7%AF%E7%94%B1.png)
我已经设置了一台 Ubuntu 服务器,我想将其用作本地办公室的路由器。
- 问题是,我想建立 2 个到远程分支的 VPN 连接,然后我想通过 VPN 连接 ppp0 和 ppp1 将所有流量路由到这两个分支的子网,并将其余流量路由到 eth0 。
我怎样才能做到这一点?
- 我还想通过 ppp0 路由我的一部分互联网流量,因为我们有一些服务订阅,这是基于我们在一个分支机构的 IP,因此,我需要通过 ppp0 路由这部分互联网流量。
可以和问题1一样设置吗?
--- 已编辑 ---
好的。我在此页面上找到了答案:http://pptpclient.sourceforge.net/routing.phtml#lan-to-lan-via-adsl
这似乎有效:
route add -net 192.168.0.0 netmask 255.255.0.0 dev ppp0
iptables --insert OUTPUT 1 --source 0.0.0.0/0.0.0.0 --destination 192.168.0.0/16 --jump ACCEPT --out-interface ppp0
iptables --insert INPUT 1 --source 192.168.0.0/16 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface ppp0
iptables --insert FORWARD 1 --source 0.0.0.0/0.0.0.0 --destination 192.168.0.0/16 --jump ACCEPT --out-interface ppp0
iptables --insert FORWARD 1 --source 192.168.0.0/16 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp0 --jump MASQUERADE
iptables --append FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
答案1
OP编辑:
好的。我在此页面上找到了答案:http://pptpclient.sourceforge.net/routing.phtml#lan-to-lan-via-adsl
这似乎有效:
route add -net 192.168.0.0 netmask 255.255.0.0 dev ppp0
iptables --insert OUTPUT 1 --source 0.0.0.0/0.0.0.0 --destination 192.168.0.0/16 --jump ACCEPT --out-interface ppp0
iptables --insert INPUT 1 --source 192.168.0.0/16 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface ppp0
iptables --insert FORWARD 1 --source 0.0.0.0/0.0.0.0 --destination 192.168.0.0/16 --jump ACCEPT --out-interface ppp0
iptables --insert FORWARD 1 --source 192.168.0.0/16 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp0 --jump MASQUERADE
iptables --append FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu
答案2
假设 VPN 全部启动并运行,您需要向路由表添加一个条目,指定通过哪个接口将流量发送到 X 和 Y 网络。
如何做到这一点可能因 Linux 发行版而异,但这会给您一个想法 - 例如,让我们假设您希望通过 ppp0 到达 192.168.255.0/24
route add -net 192.168.255.0 netmask 255.255.255.0 gw 192.168.255.2 dev pp0
或者
route add -net 192.168.255.0/24 dev ppp0
这应该通过特定接口将流量路由到特定网络。