通过ssh将Internet连接转发到远程计算机

我正在努力从远程计算机访问互联网。 我想通过ssh访问远程计算机,并有互联网连接可用于安装包等。

它看起来像这样:

 (Internet)  ((Local Computer))  ((Remote Computer)) 

在两台计算机上,运行Ubuntu trusty的Linux。
计算机的IP是:

本地电脑:

 wlan0: 10.2.217.213 eth0: 192.168.1.10 (fixed) 

远程计算机:

 eth0: 192.168.1.13 (fixed) 

我可以转发我在本地计算机上接收到Internet连接的端口吗? 我该如何确定这个端口?

我很高兴你的帮助! 我不是网络专家,已经谷歌搜索了几个小时,尝试转发,桥接,sshuttle等没有成功。

非常感谢你,
乔纳斯

使用这组iptables规则将本地计算机设置为NAT路由器:

 iptables -P INPUT DROP # drop every INPUT iptables -P FORWARD DROP # drop every FORWARD iptables -A INPUT -i lo -j ACCEPT # accept loopback-INPUT iptables -A INPUT -i eth0 -j ACCEPT # accept eth0 INPUT iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE # NAT-Translation iptables -A FORWARD -i eth0 -j ACCEPT # accept FORWARD-Traffic from eth0 iptables -A FORWARD -i wlan0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # accept FORWARD-Traffic as reply for existing connections iptables -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT # allow the local computer to access the internet iptables -A INPUT -i wlan0 -p icmp --icmp-type echo-request -j ACCEPT # allow pings on wlan0 echo "1" > /proc/sys/net/ipv4/ip_forward 

如果不先检查这些规则,请不要复制它们。 使用root-Shell(例如sudo -s )将这些规则应用于iptables。

请记住将本地计算机设置为远程计算机的网关。

建议两者都是linux机器,你必须在本地计算机上设置路由,这意味着至少设置这个内核参数:

 echo "1" > /proc/sys/net/ipv4/ip_forward 

(这是一个非永久性的设置,它在重新启动后消失。例如,将此行放入/etc/rc.local ,以便在启动时始终执行此操作。)

远程计算机需要将本地计算机配置为其默认网关。

根据本地计算机的配置,您可能必须将iptables配置为某些内容,例如NAT。 但基本上不应该这样做。 此外,互联网和本地计算机之间的路由器可能需要知道到eth0-network的路由( 192.168.1.0/24 ?)

编辑:我忘了主要的事情:假设您在互联网和本地计算机之间有一个NAT路由器,并且您已经将该路由器设置为您的eth0-network ,您可以将ssh的端口直接配置为192.168.1.13

我希望这有帮助!