通过另一个子网上的计算机路由互联网流量

通过另一个子网上的计算机路由互联网流量

Ubuntu 盒子服务器 有 2 个网络接口:

eth0 50.57.71.100
eth1 10.182.161.100

Ubuntu 盒子客户有 1 个网络接口:

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 转发 服务器的内核。我该如何设置,以便任何来自机器的互联网流量客户被路由到 服务器?(例如,ping 8.8.8.8)

我尝试添加路线 客户但失去了所有网络连接,直到我删除它:

route add 10.182.161.100/32 dev eth0

我尝试设置 客户的默认网关 服务器但这失败了:

# route add default gw 10.182.161.100
SIOCADDRT: No such process

答案1

如果您希望路由器后面的网络流量10.177.0.1通过不同的路由(特别是到服务器)出去,请设置10.177.0.1指向的路由服务器

这将引导通过服务器的所有传出流量10.177.0.1,但我不确定这是否是您想要的。

答案2

您可以安装一个OpenVPN服务器上有一个服务器,客户端上有一个客户端。使用“redirect-gateway def1”,客户端的默认路由将重定向到服务器。
在设置了有效的 OpenVPN 后,您必须部署 NAT(伪装)以摆脱互联网端的客户端私有 IP。

更新: 在 Andrew Schulman 的评论之后,我做了进一步的研究。因为你的目标不是隧道的安全,研究生入学考试 (GRE)隧道更适合您的需求,并且更易于设置。 在您的例子中,客户端的默认路由需要指向服务器,并且您必须进行伪装:

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

要使 iptables 规则持久:

service iptables save

相关内容