我有一個 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)進行路由。但這設定起來有點複雜,並且可能會為您的路由器帶來工作負載開銷。