前言

前言

前言

这个问题可以看作是关联

设置

  • 系统:运行启用 netfilter 和 iptables 的内核的嵌入式 Linux 系统。
  • 接口数量:2
  • eth0:连接到 NAT,进而可以访问互联网。
  • WLAN0:AP 模式,配置静态 IP(192.168.10.1),客户端可以连接到

客观的

为连接到 AP(通过 wlan0)的无线客户端提供 Internet 访问(通过 eth0)。

IP 配置和路由输出

wlan0     
    inet addr:192.168.10.1  
    Bcast:192.168.10.255  
    Mask:255.255.255.0

eth0:
    inet addr:10.102.8.93
    Bcast:10.102.11.255
    Mask:255.255.252.0

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.102.8.1      0.0.0.0         UG    0      0        0 eth0
10.102.8.0      0.0.0.0         255.255.252.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

尝试的步骤(通过引用的脚本关联

EXTIF="eth0"
INTIF="wlan0"
echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"

echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward

echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo "   Clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT 
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT 
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD 
$IPTABLES -t nat -F

echo "   FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
#$IPTABLES -A FORWARD -j LOG

echo "   Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

观察结果

通过上述步骤,我能够10.102.X.X从连接到 AP 的任何无线客户端(通过范围内的 wlan0 192.168.X.X)ping 网络中连接的节点,但无线客户端没有 Internet 连接。

问题

对于没有互联网的问题,我的猜测是系统将到达 wlan0 的目标地址在10.102.X.Xeth0 范围内的数据包转发,但不会将到达 wlan0 的目标地址除10.102.X.Xeth0 之外的任何其他地址的数据包转发。请让我们知道您的想法,我是否应该添加任何其他规则来实现这一点。

答案1

您缺少 wifi 网络的 DNS。在文件中添加/etc/dhcpd.conf如下行

  option domain-name-servers 8.8.4.4, 8.8.8.8;

在所有option行之间,然后重新启动 dhcp 服务器,您就完成了。无需其他操作。

相关内容