我正在使用以下命令为连接到笔记本电脑的路由器设置 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