我有wlan0和eth0。Eth0连接到互联网,而wlan0是一个接入点。我用“--拉-过滤器忽略重定向网关”选项连接到一个OpenVPN服务器,这样它就不会自动通过VPN路由所有流量,这不是我想要做的。
我正在尝试将所有流量从wlan0 (接入点)路由到tun0。这样,任何连接到我的接入点的客户端都将使用VPN。我试着用iptable来做这个:
iptables -A POSTROUTING -t nat -o wlan0 -j MASQUERADE
iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
这不起作用(计数器也不更新)。我尝试将tun0替换为eth0 (但ofc完全绕过了VPN),所以我假设问题在于tun0。我还在某个地方读到,IP路由表更适合这样做。如果是真的,我该怎么做?
发布于 2021-02-13 11:27:06
假设您的wlan子网为192.168.1.0/24,而tun0 IP为10.10.10.99:
在VPN网关上执行以下命令
如果尚未启用,则启用路由:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
删除您已经拥有的前两个NAT规则,同时保留前向规则:
sudo iptables -t nat -L -n --line-numbers
sudo iptables -t nat -D POSTROUTING 1
一旦NAT规则被删除,以正确的格式添加一个NAT规则。
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -o tun0 -j MASQUERADE
最后一步是使用“策略路由”来处理路由表:
sudo ip rule add from 192.168.1.0/24 table 99
sudo ip route add 0.0.0.0/0 via 10.10.10.99 dev tun0 table 99
https://unix.stackexchange.com/questions/634261
复制