我不是公司networking的系统pipe理员,但是我有两台Linux工作站(主机A和B),可以同时访问这两个工作站。
两个主机可以看到对方的罚款(SSH,平等从一个到另一个)。 但是,只有主机A可以访问我们的公司防火墙并访问互联网等。 主机B不能。
问题:如何让主机B通过主机A路由出去和接收的networkingstream量(不仅仅是HTTP),而不涉及系统pipe理员? 现在,我不知道是否需要为主机B使用NAT,和/或使主机A成为代理服务器,和/或使主机A成为路由器。
在主机B上,我尝试发出一个route add -host <HostA> gw <HostA's Gateway>命令,但是它不起作用:我无法从主机B ping www.google.com。请原谅我对此主题的无知路由/联网。
你有多个解决scheme来做到这一点:
更简单的方法:NAT
通过允许转发使路由器成为一个路由器: sysctl net.ipv4.ip_forward=1把net.ipv4.ip_forward=1放到/etc/sysctl.conf中使其成为永久的。
然后在A上input: iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE
最后在B:通过路由所有stream量A:
ip route del default ip route add default via IP_of_A
其他解决scheme:Proxify ,
但是您需要设置所有组件来使用代理:
在B上,使用以下命令打开与A的SSH连接:
ssh -D8000 -N -f user@IP_of_A
这将在B上打开代理服务器并通过A转发所有stream量。例如,如果您使用Web浏览器,则需要在127.0.0.1上监听端口8000上设置代理服务器sock v5。您不需要设置ip转发或触摸路由。
我相信你将需要禁用你的防火墙。
service iptables stop
不知道这是必要的主机A和主机B,但它确实让我通过“目标主机禁止”消息