连接是 ISP 路由器(DHCP) - eth0 192.168.1.91 - wlan0(NAT/DHCP)192.168.5.1
我正在使用hostapd
它来启动 AP、/etc/network/interfaces
创建接口和静态 IP、dnsmasq
用于 wlan0 的 DNS 和 DHCP,而 NetworkManager 负责 eth0 和两个静态 DNS 条目(用于测试)。
直到我在 NetworkManager 中启动 OpenVPN 之前,wlan0 都具有互联网连接。
这是我的 iptables:
user@server:~$ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i wlan0 -j ACCEPT
-A FORWARD -s 192.168.5.0/24 -i wlan0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
以下是一些之前/之后的输出。
前:
user@server:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
后:
user@server:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.119.72.109 0.0.0.0 UG 0 0 0 tun0
10.119.72.1 10.119.72.109 255.255.255.255 UGH 0 0 0 tun0
10.119.72.109 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
<ISP public IP> 192.168.1.254 255.255.255.255 UGH 0 0 0 eth0
我route
还可以,但我的iptables
很乱吗? iptables
很好但route
很乱?我是一个soup-sandwich
,一切都乱了?我觉得自己很成功,可以自己解决这个问题,直到我把 VPN 引入方程式后,我花了好几个晚上撞墙。
答案1
我相信你的 WiFi 需要一个透明的 VPN,对吗?
路由表正常,但 iptables 需要更新。
由于您的政策没有限制,因此您可以这样做:
iptables -A FORWARD -i wlan+ -o tun+ -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
请参阅https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4422.html作为MASQUERADE
目标,因为它在处理 NAT 时至关重要。