折腾了一天,终于初步理解并实现了iptables的FORWARD转发。
手里有一个Beaglebone Black,虽然可以插网线ssh但是还是不如直接ssh 192.168.7.2方便。但是有一个问题是192.168.7.2的时候BBB不能访问Internet,所以Google借鉴了下别人的方法,决定用iptables来转发数据使得BBB可以连接网络。
具体设置如下:
在电脑上先修改/etc/sysctl.conf文件,将其中被注释掉的
#net.ipv4.ip_forward = 1
取消注释,然后
sysctl -p
使得ipv4转发功能生效。
然后修改iptables添加转发命令。
sudo iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o wlan0 -j SNAT --to-source 192.168.11.x
# 将来自192.168.7.0/24网段的请求从wlan0向Internet发出并且将源地址改为192.168.11.x
然后修改BBB的网络设置,
IP: 192.168.7.2
DNS: /etc/resolv.conf中将nameserver改为192.168.11.x网段内的DNS服务器地址。
接着执行
sudo ip route add default via 192.168.7.1 dev usb0
Enjoy.