端口转发 + 与 Ubuntu 共享连接

Joe*_*ams 5 ethernet port-forwarding ubuntu-9.10 crossover-cable ubuntu

因为我的无线路由器的以太网端口有缺陷,我通过交叉以太网电缆设置了从我的笔记本电脑(有 wifi)到我的 eMac(没有)的共享无线连接。笔记本电脑在路由器后面192.168.1.131,eMac 在笔记本电脑后面10.42.43.1

笔记本电脑运行的是 Ubuntu 9.10 (Karmic)。我通过 NetworkManager Applet 实现了共享连接。我右键单击右上角的网络图标,转到“编辑连接”,选择名为“Auto eth0”的有线连接,单击“编辑...”,转到“IPv4 设置”选项卡,然后选择方法“共享”到其他计算机”。eMac 现在可以访问 Internet。

现在我想启用端口转发。我想玩一个游戏,它需要转发端口 6112(TCP 和 UDP)才能托管游戏。我设置了路由器以启用192.168.1.131(笔记本电脑)的端口转发,但在 eMac 上仍然无法使用端口转发。

我想我需要假装我的笔记本电脑是一个路由器并在它上面配置端口转发,这表明到笔记本电脑的传入连接 ( 192.168.1.131) 应该通过共享连接 ( 10.42.43.1)转发到 eMac 。因此,通过端口 6112 进入路由器的数据包将被重定向到笔记本电脑(由路由器),然后再重定向到 eMac(由笔记本电脑)。

我的问题是,我将如何在 Ubuntu 上做到这一点(鉴于 NetworkManager 的存在)?另外,如果我不能让它工作,有人介意主持一个comp stomp吗?:D

gog*_*iel 0

对 Ubuntu config utils 一无所知,但这是经典的方法:

echo 1 > /proc/sys/net/ipv4/ip_forward # enable forwarding
iptables -I FORWARD -p tcp -d 192.168.1.131 --dport 6112 -j ACCEPT #just to be sure firewall doesn't block
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 6112 -j DNAT --to 10.42.43.1 #actual forward
#same for UDP
iptables -I FORWARD -p udp -d 192.168.1.131 --dport 6112 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 6112 -j DNAT --to 10.42.43.1 
Run Code Online (Sandbox Code Playgroud)

您必须将 -i eth0 更改为您的 wlan 连接名称。一般来说

iptables -t nat -A PREROUTING [-p protocol] --dport [external port on router] -i ${WAN} -j DNAT --to [ip/port to forward to]
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看Frozentux iptables 指南