TUN 起不来,几乎都卡在权限那一环
TUN 要建一块虚拟网卡并接管路由,这是系统级动作,普通用户权限做不到。所以它失败的方式很单调:开关点下去,转一下,自己弹回原位,界面上什么都不说。
真正的信息在日志页。开关弹回的那一瞬间,日志里通常会留下一行关于创建网卡或权限的记录,先去把它找出来,再对照下面四条。
先把其它代理客户端全部退出
虚拟网卡是独占资源,两个程序抢会互相顶掉,这一步能省掉一半排查。
四个嫌疑,按顺序排除
- 1
服务没装,或者版本对不上
最常见。客户端升级过、服务还是旧的,就会点了没反应。去设置里把服务卸载再重装一次,装完重启客户端。Windows 上装服务要管理员权限,macOS 会弹窗要密码。
- 2
授权失效
macOS 系统大版本升级之后,之前给的授权可能不再有效,需要重新授权一次。这不是出 bug,是系统换代后对辅助工具的要求变了。
- 3
安全软件拦了虚拟网卡
创建虚拟网卡在杀毒软件眼里是可疑行为,会被直接阻断,日志里能看到创建失败。把客户端主程序和它的服务一起加进白名单,不要只加主程序。
开起来了却全网不通
这是另一类问题,不要再去折腾服务。先把系统代理关掉只留 TUN,两个一起开会让判断变得很乱。还不行就换一种协议栈实现,换完要关掉 TUN 再重新打开才生效。仍然不通,就去看严格路由一类的选项,某些网卡驱动和它不兼容。
- 客户端异常退出后,去系统的网络适配器列表确认虚拟网卡已经消失
- 残留的虚拟网卡会导致关掉程序也上不了网,删掉或重启即可
- 公司内网域名解析不了时,在配置里给这些后缀单独放行
常见问题
提示服务未安装,重装了好几次还是这句话,怎么办?
大概率是安装动作本身被拦下了。Windows 上以管理员身份运行客户端再装一次;同时检查杀毒软件的拦截记录,服务安装程序被静默删掉的情况并不少见。
开了 TUN 之后局域网里的设备访问不了了,怎么修?
TUN 把 DNS 也接管了,局域网设备名和内网域名会被送去外面解析,自然查不到。在配置里给内网后缀指定本地 DNS,或者把它们放进不做假 IP 的名单里。