在连接的路由器上设置 NAT 以访问互联网

在连接的路由器上设置 NAT 以访问互联网

我正在使用以下命令为连接到笔记本电脑的路由器设置 NAT(已启用 IP 转发):

sudo iptables -t nat -A POSTROUTING -s 192.168.47.0/24 -o eth0 -j MASQUERADE

因此,基本上我有一个 eth0,即我的笔记本电脑的 LAN,以及一个从我的笔记本电脑到无线路由器(即 eth1)的基于 USB-CAT5 的连接。我使用以下命令为我的 eth1 接口(即连接到无线路由器)分配一个静态 IP:

sudo ifconfig eth1 192.168.47.1 netmask 255.255.255.0 up

然后我运行 ifconfig 以确保 eth1 具有此 IP 地址:

eth0  Link encap:Ethernet  HWaddr 28:d2:44:77:39:0e  
      inet addr:129.46.79.72  Bcast:129.46.79.255  Mask:255.255.254.0
      inet6 addr: 2002:c023:9c17:118:f5ea:ed5a:6c19:138d/64 Scope:Global
      inet6 addr: fe80::2ad2:44ff:fe77:390e/64 Scope:Link
      inet6 addr: 2002:c023:9c17:118:2ad2:44ff:fe77:390e/64 Scope:Global
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:289511 errors:0 dropped:324 overruns:0 frame:0
      TX packets:103659 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:87784569 (87.7 MB)  TX bytes:26739445 (26.7 MB)
      Interrupt:20 Memory:f0600000-f0620000 

eth1  Link encap:Ethernet  HWaddr 00:50:b6:0a:4c:5e  
      inet addr:192.168.47.1  Bcast:192.168.47.255  Mask:255.255.255.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:2268 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:104328 (104.3 KB)  TX bytes:0 (0.0 B)

路由器的设置已完成。我的问题是,当我连接到路由器时,我没有任何互联网连接。有人能帮我解决这个问题吗?

答案1

您还需要告诉充当路由器的机器转发它收到的包并配置默认网关,使用以下命令:

sudo sysctl net/ipv4/ip_forward=1

要添加默认网关,还需添加:

sudo route add -net default gw X.X.X.X

其中 XXXX 是您的无线路由器的 IP。

答案2

测试一下:

sudo su

iptables -F

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -s 192.168.47.0/24 -i eth1 -j ACCEPT

iptables -t  nat  -A POSTROUTING -s 192.168.47.0/24 -o eth0 -j MASQUERADE

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

相关内容