我现在正在使用安装了 debian8 的 pine64。我正在尝试使用 hostapd 设置热点,并且我想将 wlan0 的网络与热点 wlan2 共享。现在我已经设置了一个热点 (wlan2),客户端可以连接到它。我不打算使用 DHCP,我想手动设置所有 ip。现在的情况是,我可以将我的 ipod 连接到 pine64 并 ping 它,但无法连接到互联网。
我首先设置了 hostapd。
interface=wlan2
driver=nl80211
ssid=test
hw_mode=g
macaddr_acl=0
auth_alg=0
并设置 wlan2
iface wlan2 inet manual
hostapd /etc/hostapd/hostapd.conf
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
然后我设置了内核 IP 路由表。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 1024 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan2
通过上述设置,pine64 能够 ping 我连接的设备。然后我设置了 ipv4 ip 转发表。
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o wlan2 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan2 -o wlan0 -j ACCEPT
我的 pine64 连接到 IP 地址为 192.168.1.109 的路由器,然后我使用以下设置将我的 ipod 连接到 pine64。
IP Address 192.168.2.20
Subnet Mask 255.255.255.0
Router 192.168.1.109
DNS 192.168.1.109
但我发现我无法用我的 Ipod 上网,抱歉我的英语不好。希望有人能帮助我。非常感谢。
答案1
尝试从第一个 FORWARD 链规则中删除接口名称 ( -i wlan0 -o wlan2
)。此外,“state”扩展已被“conntrack”取代。
这应该有效:
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT