惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
S
SegmentFault 最新的问题
博客园 - Franky
博客园_首页
T
Tailwind CSS Blog
雷峰网
雷峰网
罗磊的独立博客

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 手机上的全能智能体,Auto小二正式开源 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间
开了 TUN 模式还是直连?90% 的人都踩过这个坑
freephp · 2026-04-12 · via 博客园_首页

网络问题是做技术绕不开的三座大山之一,而且往往排第一。所以遇到tun模式失效,我们该怎么火速解决呢?


先说结论

根本原因只有一个:代理客户端没有系统级权限,TUN 虚拟网卡压根没创建成功。

解决方法也只有一个:安装服务模式(Service Mode)

设置 → 服务模式 → 安装 → 重启客户端 → 重新开启 TUN

就这一步。下面的内容是帮你搞清楚为什么,以及怎么确认问题真的修好了。


你以为开了 TUN,其实没有

很多人的状态是这样的:

  • 全局模式 ✅ 打开了
  • TUN 模式 ✅ 打开了
  • 终端跑一下 curl ipinfo.io,IP 还是国内的

直觉反应是配置有问题,或者客户端 bug。

其实不是。UI 上的开关只是个开关,背后的 TUN 网卡根本没建起来。


怎么确认 TUN 没生效

第一招:看路由表

netstat -rn | grep default

有问题的输出长这样:

default   192.168.3.1   UGScg   en0
default   fe80::%utun0  UGcIg   utun0
default   fe80::%utun1  UGcIg   utun1

看到没有——IPv4 的 default 路由指向的是 en0,也就是你的物理网卡。utun 接口全部是 fe80:: 开头的 IPv6 地址,跟代理一点关系没有。

正常接管后应该是这样:

default   198.18.0.1   UGScg   utunX   ← IPv4 走 TUN 虚拟网卡
default   192.168.3.1  UGScg   en0

第二招:看有没有 198.18 地址

ifconfig | grep -B1 "198.18"

没有任何输出 = TUN 网卡不存在。

代理客户端正常创建 TUN 网卡后,会有一个 utun 接口持有 198.18.0.1 这个地址。如果找不到,说明客户端根本没有成功创建这张虚拟网卡。

那些 utun0utun1utun2……全是 macOS 系统自己的,跟你的代理客户端无关。


为什么会这样

macOS 管得很严。

向系统路由表写条目、创建虚拟网卡,都需要管理员级别的系统权限。

普通应用进程没有这个权限。客户端 UI 可以显示"TUN 已开启",但实际的系统操作全部失败了——静默失败,没有任何报错提示。


解决方法:装服务模式

服务模式会把客户端的核心组件注册为系统服务,以足够高的权限运行,才能真正操作路由表和网卡。

步骤:

  1. 打开 *** Verge
  2. 进「设置」
  3. 找「服务模式(Service Mode)」,点安装
  4. 系统会弹出授权窗口,输入管理员密码
  5. 安装完成后,完全退出客户端(Cmd+Q,不是关窗口)
  6. 重新启动,开启 TUN

装完之后验证一下:

# 看 TUN 网卡有没有建起来
ifconfig | grep -B1 "198.18"

# 看 IPv4 默认路由是不是走 utun 了
netstat -rn | grep "^default.*utun"

# 最终验证
curl ipinfo.io

如果 ifconfig 里出现了 inet 198.18.0.1 的 utun 接口,路由表里 IPv4 default 指向 utun,就说明完全修好了。


还有几个附带问题

TUN 配置不对

服务模式装好了,也别忘了检查 TUN 的配置文件,有两个字段最容易漏:

tun:
  enable: true
  stack: system
  auto-route: true              # 漏了这个,路由表不会写入
  auto-detect-interface: true   # 漏了这个,网卡出口识别不了
  inet4-address: 198.18.0.1/16
  dns-hijack:
    - any:53

auto-route: true 是最常见的漏填项。没有它,即使 TUN 网卡创建成功,IPv4 流量也不会走进去。

DNS 泄漏

流量走了 TUN,但 DNS 查询没被接管,一样会暴露真实位置:

scutil --dns | grep nameserver

正常情况下应该能看到 198.18.0.2(*** 的虚拟 DNS 地址),如果还是运营商的 DNS 就说明 DNS 没被劫持,需要检查 dns-hijack 配置。

终端环境变量干扰

有时候终端里设了代理相关的环境变量,会干扰测试结果:

env | grep -i proxy

如果有输出,先清掉再测:

unset ALL_PROXY HTTP_PROXY HTTPS_PROXY
curl ipinfo.io

一句话总结

TUN 模式不生效,99% 是没装服务模式。装好、重启、重开 TUN,三步搞定。配置文件记得加 auto-route: true