目标是将无线用户会话从同一 LAN 上的 TP-Link TL-WR902AC Wifi 旅行路由器路由到虚拟机中的 OpenVPN 客户端。
我的尝试是基于之前在另一个系统中的 hostapd wlan0 和 OpenVPN tun0 客户端之间成功的 iptable 路由。
对于 TP-Link 路由器和 OpenVPN 客户端,修改后的 iptable 命令不起作用,我不明白为什么。毫不奇怪,我猜测在几个领域。这是设置。
192.168.0.1 Netgear LAN router to WAN
192.168.0.4 Linux Mint 19.3 Virtualbox host
192.168.0.6 Linux Mint Xfce VM with OpenVPN Client
192.168.0.7 TP-Link TL-WR902AC travel router
TP-Link路由器WAN设置
ip addr 192.168.0.7
gateway 192.168.0.6
DNS svr 192.168.0.6
TP-Link路由器LAN ip地址是192.168.1.1
在虚拟机 /etc/sysctl.conf 中启用 IPv4 转发
192.168.0.6 虚拟机上的路由:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.3.1 128.0.0.0 UG 0 0 0 tun0
default _gateway 0.0.0.0 UG 100 0 0 enp0s3
10.7.3.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
128.0.0.0 10.7.3.1 128.0.0.0 UG 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3
185.225.234.1 _gateway 255.255.255.255 UGH 0 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
不起作用的 iptables 命令 [除了能够从无线笔记本电脑 ping 10.7.3.1 之外 - 如果没有加载 iptables,ping 会失败]:
sudo /sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo /sbin/iptables -A FORWARD -i enp0s3 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo /sbin/iptables -A FORWARD -i tun0 -o enp0s3 -j ACCEPT
答案1
ping 10.7.3.1 成功让我觉得 TP-Link 路由器 WAN 设置中的 DNS 服务器地址可能是问题所在。
通过将其更改为 VPN 服务器 DNS 地址 103.86.96.100 进行测试,然后它可以工作。
还不错,但我知道对于 iptables 我还是个初学者。