我有一个 4G 路由器,通过 OpenVPN 连接到 VPS。
当我通过 VPS 发送所有互联网流量时,吞吐速度太低而无法使用,但当我不通过 VPN 路由任何内容时,我的 ISP 会限制 DNS 请求的数量。因此,我希望仅通过 VPN 传递端口 53,其余流量直接通过 4G 连接传递。
我认为可能有一种方法可以使用 IPTABLES 来做到这一点,但我找不到它...如能得到任何帮助,我将不胜感激,谢谢!
答案1
“普通”路由是通过目标地址完成的。您可以决定仅使用 Google DNS:
- IPv4:8.8.8.8, 8.8.4.4
- IPv6:2001:4860:4860::8888,2001:4860:4860::8844
然后例如针对 ipv4 发出以下命令:
ip route add 8.8.8.8/32 via 172.16.1.1 dev tun0
ip route add 8.8.4.4/32 via 172.16.1.1 dev tun0
无论目标端口是什么,到 8.8.8.8 和 8.8.4.4 的网络流量都将通过您的 VPN 发送,假设 172.16.1.1 是您的隧道网关,并且 tun0 是您的隧道设备。
请注意,发出 ipv6 路由命令有点棘手,但您可能不需要这样做。
或者,可以使用策略路由(ip 规则添加)根据防火墙标记(iptables 中的 fwmark)进行路由。但设置起来有点复杂,并且可能会增加路由器的工作负载。