You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WiFi Dongle的互联网流量通过uvpn0 VPN接口路由至10.87.0.1?

如何将WiFi Dongle的互联网流量通过uvpn0 VPN接口路由至10.87.0.1?

看起来你遇到的是典型的VPN路由黑洞问题——当你直接把默认路由切换到uvpn0后,连VPN服务器本身都ping不通了,核心原因是:VPN隧道的基础连接是通过wlan0建立的(你需要先访问VPN服务器的公网IP才能维持uvpn0隧道),但修改默认路由后,所有流量(包括去VPN服务器的流量)都被导向了uvpn0,这就形成了逻辑上的“死循环”,导致隧道无法维持。

下面是一步步的解决思路和操作:

1. 先保留VPN服务器公网IP的路由走wlan0

首先你需要找到VPN服务器的公网IP地址(不是10.87.0.1这个内网虚拟地址),可以通过修改路由前执行traceroute 10.87.0.1,或者查看VPN客户端的配置文件获取。

假设VPN服务器公网IP是X.X.X.X,同时先找到wlan0的默认网关(执行ip route show default | grep wlan0,比如输出是default via 10.117.176.1 dev wlan0,网关就是10.117.176.1)。

添加这条关键路由,确保访问VPN服务器的流量仍走wlan0:

ip route add X.X.X.X/32 via 10.117.176.1 dev wlan0

2. 替换默认路由到uvpn0(而非新增)

你之前用ip route add default只是新增了一条默认路由,系统可能会优先选择旧的wlan0路由,或者导致路由冲突。正确的做法是先删除原默认路由,再添加新的:

# 删除原wlan0默认路由
ip route del default via 10.117.176.1 dev wlan0
# 添加uvpn0作为默认路由
ip route add default via 10.87.0.1 dev uvpn0

3. 调整NAT规则(覆盖所有需要走VPN的网段)

你当前的NAT规则只覆盖了10.117.176.0/24(wlan0所在网段),但你的dongle还有usb0接口的10.0.0.0/24网段,如果主机也需要通过VPN上网,需要把这个网段也加入NAT:

# 保留原有规则(针对wlan0网段)
iptables -t nat -A POSTROUTING -s 10.117.176.0/24 -o uvpn0 -j MASQUERADE
# 添加usb0网段的NAT规则
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o uvpn0 -j MASQUERADE

4. 验证VPN服务器端的路由配置

别忘了确认VPN服务器(10.87.0.1)那边是否配置了正确的反向路由:需要有一条指向10.117.176.0/24和10.0.0.0/24的路由,下一跳是你的dongle的VPN地址10.87.0.3,同时服务器要开启IP转发(执行sysctl net.ipv4.ip_forward=1)。

5. 验证路由表和连通性

执行ip route show查看路由表,确认:

  • 到VPN服务器公网IPX.X.X.X的路由指向wlan0
  • 默认路由指向uvpn0

然后尝试ping10.87.0.1,再访问外网(比如ping 8.8.8.8),确认流量是否通过uvpn0。

备注:内容来源于stack exchange,提问作者Ragavan Kalatharan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:39:31