如何通过另一台主机路由主机的网络流量?

Modified on: Sat, 09 Nov 2019 22:40:02 +0800

我不是公司网络的系统管理员,但是我有两个Linux工作站(主机A和B),可以同时访问它们。

两个主机都可以看到彼此正常(ssh,ping等从一个到另一个工作)。但是,只有主机A可以访问我们的公司防火墙并访问Internet等;主持人B不能。

问题:如何在主机B上通过主机A路由所有(而不仅仅是HTTP)传出和传入网络流量,而不涉及我的系统管理员?现在,我不知道是否需要为主机B使用NAT,和/或使主机A成为代理服务器,和/或使主机A成为路由器。

在主机B上,我尝试发出route add -host <HostA> gw <HostA's Gateway>命令,但它不起作用:我无法从主机B ping www.google.com。请原谅我对路由这个主题的无知/联网。

作者:Dave M,Harry

最佳答案

您有多种解决方案可以执行此操作:

更简单的方式:NAT

通过允许转发来建立路由器:sysctl net.ipv4.ip_forward=1
 将net.ipv4.ip_forward=1放在/etc/sysctl.conf中,使其永久化。

然后在A,nat trafic上键入:iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

最后在B:
 通过A:

路由所有流量

ip route del default  
ip route add default via IP_of_A

其他解决方案:Proxify

但您需要设置所有组件才能使用代理:

在B上,使用以下命令打开与A的SSH连接:

ssh -D8000 -N -f user@IP_of_A 

这将在B上打开代理袜子并通过A传递所有流量。
例如,如果您使用Web浏览器,则需要在端口8000上侦听127.0.0.1上的代理sock v5。
您无需设置ip转发或触摸路由。

作者:,DrGkill

相关问答

添加新评论