![从连接到 AP 的设备访问互联网](https://linux22.com/image/225774/%E4%BB%8E%E8%BF%9E%E6%8E%A5%E5%88%B0%20AP%20%E7%9A%84%E8%AE%BE%E5%A4%87%E8%AE%BF%E9%97%AE%E4%BA%92%E8%81%94%E7%BD%91.png)
我的嵌入式 Linux 设备中有两个接口uap0
。充当其他设备连接到 Linux 设备的接入点。接口连接到我的路由器。我的路由器已连接到互联网。eth0
uap0
eth0
有关接口的详细信息:
uap0
- 172.24.100.1/24连接到 AP 的设备的 DHCP 范围:172.24.100.50 - 172.24.100.100
eth0
- 192.168.1.26/24路由器IP(即网关):192.168.1.253
route add default gw 192.68.1.253
因为这是路由器的IP。我也尝试过 172.24.100.1。但它也不起作用。
我已在sysctl.conf
文件中允许 IPv4 转发。我还在 iptables 中添加了以下条目:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o uap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i uap0 -o eth0 -j ACCEPT
平结果:
ping 172.24.100.50 -I uap0
---> 成功(.50是连接AP的设备之一)ping 8.8.8.8 -I uap0
---> 失败ping 192.168.1.26 -I uap0
---> 失败ping 172.24.100.1 -I eth0
---> 失败
每当我有设备连接到 AP 时,该设备就无法访问互联网。我在网上遇到的几乎每个解决方案都建议将条目添加到我已经完成的 iptables 中。
我之前在树莓派中实现过AP+STA模式。我必须在 RPi 中配置 dnsmasq 和 hostapd。但由于这是一个最小的 Linux 系统,我没有预安装 dnsmasq。此外,包管理器无法按预期工作。
绿色部分是linux设备。
sysctl 的输出: