通过另一个子网上的计算机路由Internet通信

Ubuntu box 服务器有2个networking接口:

eth0 50.57.71.100 eth1 10.182.161.100 

Ubuntu的盒子客户端有1个networking接口:

 eth0 10.177.30.100 

服务器客户端已经可以相互通话了。 这里是客户路由表:

 10.176.0.0/12 via 10.177.0.1 dev eth0 10.177.0.0/17 dev eth0 proto kernel scope link src 10.177.30.100 10.208.0.0/12 via 10.177.0.1 dev eth0 

我在服务器的内核上启用了ipv4转发。 我如何设置这个,所以来自机器客户端的任何互联网stream量都通过服务器路由? (比如说,平8.8.8.8)

我尝试在客户端添加一个路由,但是直到我删除它,networking连接丢失:

 route add 10.182.161.100/32 dev eth0 

我尝试设置一个客户端的默认网关服务器,但是失败:

 # route add default gw 10.182.161.100 SIOCADDRT: No such process 

如果您希望路由器10.177.0.1之后的networking的stream量通过不同的路由(具体到服务器)出去,请将10.177.0.1的路由指向服务器

这将直接通过服务器通过10.177.0.1所有传出stream量,我不知道这是你想要的。

你可以在你的服务器上安装一个OpenVPN服务器,在你的客户端上安装一个客户端。 使用“redirect网关def1”,客户端的默认路由被redirect到你的服务器。
当你有一个工作的OpenVPN的设置,你必须部署NAT(伪装)来摆脱客户端在互联网上的私人IP。

更新:安德鲁舒尔曼斯评论后,我进一步研究。 因为你的目标不是隧道的安全性,所以GRE隧道将更好地适应你的需求,而且更容易设置。 在你的情况下,客户端的默认路由需要指向服务器,你必须做伪装:

 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

为了使iptables规则持久:

 service iptables save