上面我们给树莓派安装了 hostapd 热点服务 和 dnsmasq DHCP 服务,已经可以让手机连接 WiFi 热点并分配到动态 IP 了,但仍不能联网,所以现在就剩最后一步:给树莓派配置 IP 包转发,让手机连接 WiFi 后能正常上网。 首先,开启 Linux 内核的 ip 转发功能。打开 /etc/sysctl.conf 系统配置文件,去掉 net.ipv4.ip_forward=1 这个配置项的注释:
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。
要让Linux系统具有路由转发功能,需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况;其值为0时表示禁止进行IP转发;如果是1,则说明IP转发功能已经打开。
Linux ip_forward 数据包转发
然后,修改 Linux 防火墙规则,完成报文源地址目标转换。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE接着,设置开机自动导入防火墙规则。
sudo sh -c &#34;iptables-save > /etc/iptables.ipv4.nat&#34;编辑 /etc/rc.local,把 iptables-restore < /etc/iptables.ipv4.nat 加到最后一行 exit 0 的前面: