在macOS上开启Clash VPN的TUN模式需要安装Service Mode,让Clash内核获得创建虚拟网卡和修改路由表所需的系统级权限。安装方法为在终端中导航至Clash Verge的Resources目录(/Applications/Clash Verge.app/Contents/Resources/resources/),执行sudo ./clash-verge-service-install命令并使用管理员密码确认。若首次启动时系统提示“无法验证开发者”或“应用已损坏”,在访达中右键点击应用选择“打开”绕过公证检查,或执行xattr -d com.apple.quarantine /Applications/Clash\ Verge.app移除隔离属性。验证Service Mode是否成功安装可通过ps aux | grep clash-verge-service查看服务进程是否存在。若TUN模式无法正常工作,在系统日志中查看log show --predicate "process == 'clash-verge-service'"输出的权限错误信息,常见错误包括”failed to create tun device: operation not permitted”和”failed to modify routing table: permission denied”,需重新安装Service Mode。卸载Service Mode需执行sudo ./clash-verge-service-uninstall,卸载后重启系统可完全清理虚拟网卡和路由表残留配置。

macOS TUN模式的系统级权限要求
安装服务模式是TUN模式运行的前提
在macOS上开启TUN模式,首先需要安装Service Mode(服务模式),让Clash内核以系统级服务身份运行。普通用户权限下无法创建虚拟网卡和修改系统路由表,这是macOS系统安全机制对网络层的保护。Service Mode安装后,Clash内核获得了创建TUN虚拟网卡、修改网络路由表以及处理网络数据包重定向所需的高级权限。若不安装Service Mode,TUN模式开关将无法启用,或在启用后无法正常接管流量。
安装Service Mode时需要使用sudo命令
在macOS上安装Service Mode需要通过终端执行sudo命令,以超级用户权限完成系统服务的安装。用户需打开终端,导航至Clash应用的Resources目录(如/Applications/Clash Verge.app/Contents/Resources/resources/),执行sudo ./clash-verge-service-install命令安装服务。执行过程中系统会提示输入当前用户的登录密码,输入后服务安装完成。卸载服务时同样需要使用sudo命令执行sudo ./clash-verge-service-uninstall,确保系统服务的完整移除。
权限不足时TUN模式无法正常工作的现象
当macOS上TUN模式因权限不足而无法正常工作时,会表现为多种异常状态。TUN模式开关虽然可以开启,但实际流量并未经过虚拟网卡,浏览器和应用的网络请求仍然直连,Clash的连接面板中看不到任何流量记录。部分用户可能在Clash日志中看到”failed to create tun device: operation not permitted”或”permission denied”等错误信息。执行ping等命令时网络正常,但Clash未代理任何流量,说明TUN模式因权限不足未能成功创建虚拟网卡或修改路由表。
首次运行时需要确认的系统安全提示
“无法验证开发者”提示的处理
macOS首次运行未通过Apple公证的Clash应用时,系统会提示“无法验证开发者”或“无法打开应用,因为无法验证开发者”。这不是权限问题,而是macOS的Gatekeeper安全机制对未公证应用的拦截。解决方法是在访达中右键点击Clash应用,选择“打开”,在系统弹窗中再次点击“打开”即可绕过该提示。若右键打开无效,可进入「系统设置→隐私与安全性→安全性」,在“允许从以下位置下载的应用”中点击“仍要打开”并确认。
“已损坏”提示的常见误解
部分macOS用户启动Clash时看到“应用已损坏”的提示,这通常不是应用文件真的损坏,而是应用未通过Apple公证时系统的一种误导性警告。解决方法同样是在访达中右键点击应用选择“打开”并确认,或使用终端命令xattr -d com.apple.quarantine /Applications/Clash\ Verge.app移除应用的隔离属性。移除隔离属性后,应用可以正常打开,TUN模式的Service Mode安装和运行也不受影响。
应用未在“隐私与安全性”中显示时的处理
在macOS Ventura及更高版本中,部分用户安装Service Mode后可能在「系统设置→隐私与安全性」中找不到Clash的相关权限选项。这是因为Service Mode作为系统服务运行,不会像普通应用那样出现在隐私权限列表中。如果TUN模式无法正常工作,可在终端中执行sudo /Applications/Clash\ Verge.app/Contents/Resources/resources/clash-verge-service-install重新安装服务,并检查系统日志(log show --predicate "process == 'clash-verge-service'")查看是否存在权限相关的错误信息。
Service Mode的安装与验证
通过终端执行安装命令的具体步骤
在macOS上安装Clash的Service Mode需要用户手动通过终端执行安装脚本,具体操作步骤较为固定。首先打开终端(Terminal)应用,使用cd命令导航至Clash Verge应用内的Resources目录:cd /Applications/Clash\ Verge.app/Contents/Resources/resources/。然后执行安装命令sudo ./clash-verge-service-install,系统会提示输入当前用户的密码。输入正确密码后,终端显示服务安装成功的提示信息。安装完成后,启动或重启Clash Verge,在设置中开启TUN模式即可正常使用。
验证Service Mode是否成功安装
安装Service Mode后,用户可通过多种方式验证服务是否成功运行。在终端中执行ps aux | grep clash-verge-service查看系统进程中是否存在Clash服务进程,若存在则说明服务已成功安装并运行。检查TUN模式开启后Clash的连接面板中是否有流量经过,或通过ifconfig命令查看系统中是否出现了TUN虚拟网卡设备(通常显示为utun或类似名称)。若以上验证均通过,说明Service Mode已正确安装,TUN模式具备完整权限。
卸载Service Mode的方法
当需要卸载Clash或停止使用TUN模式时,建议正确卸载Service Mode以避免系统残留服务。在终端中导航至Resources目录,执行sudo ./clash-verge-service-uninstall命令即可卸载服务。卸载后,TUN模式将因权限不足而无法工作,系统路由表和虚拟网卡也会被移除。若卸载后系统中仍残留Clash的虚拟网卡设备,可在系统重启后自动清理,或通过sudo ifconfig utunX destroy手动删除对应的虚拟网卡接口。
TUN模式权限问题的常见排查与解决
使用终端命令移除隔离属性
当Clash应用因Apple公证限制而无法正常启动或TUN模式权限异常时,使用xattr命令移除应用的隔离属性是有效的解决方法。在终端中执行xattr -d com.apple.quarantine /Applications/Clash\ Verge.app移除应用上的隔离标记,让macOS不再对该应用执行严格的公证检查。移除隔离属性后,重新启动Clash Verge,TUN模式的Service Mode安装和权限获取应恢复正常。该操作不会影响应用的安全性,只是绕过了Gatekeeper对未公证应用的限制。
检查系统日志定位权限错误
当TUN模式在macOS上无法正常工作时,系统日志可帮助定位具体的权限错误。在终端中执行log show --predicate "process == 'clash-verge-service'" --last 1h查看Clash服务进程最近一小时的日志输出,重点关注包含”permission denied”、”operation not permitted”或”failed to create tun”等关键词的条目。若日志中出现”failed to create tun device: operation not permitted”,说明Service Mode未正确安装或权限不足,需重新安装服务。若日志显示”failed to modify routing table: permission denied”,则说明路由表修改权限受限。
重启系统解决权限状态异常
部分情况下,安装Service Mode后TUN模式仍无法正常工作,但检查日志未发现明确权限错误。此时可能是系统网络扩展的权限状态尚未完全刷新,重启系统可让新的系统服务配置生效。重启后,Clash的Service Mode以系统服务身份启动,TUN模式的相关权限被完整加载,虚拟网卡的创建和路由表的修改均可正常完成。若重启后TUN模式仍无法工作,建议卸载并重新安装Service Mode。
常见问题FAQ
macOS上开启TUN模式需要安装什么额外组件?
需要安装Service Mode(服务模式),让Clash内核以系统级服务身份运行,获得创建虚拟网卡和修改路由表所需的权限。安装方法是在终端中导航至Clash Verge的Resources目录,执行sudo ./clash-verge-service-install命令。安装完成后重启Clash,TUN模式即可正常启用。
TUN模式开关在macOS上无法开启怎么办?
首先确认Service Mode已正确安装,在终端执行ps aux | grep clash-verge-service检查服务进程是否存在。若服务未安装,按上述步骤安装后再试。若服务已安装但开关仍无法开启,检查Clash应用是否被macOS的Gatekeeper限制,在访达中右键点击应用选择“打开”绕过公证检查,或执行xattr -d com.apple.quarantine移除隔离属性。
安装Service Mode时提示“Permission denied”或“Operation not permitted”?
提示权限被拒绝通常是因为未使用sudo命令或以非管理员用户身份执行。确保命令以sudo开头,系统会提示输入当前用户的登录密码,输入正确密码后安装才能继续。若在恢复环境或系统完整性保护(SIP)启用的情况下仍无法安装,检查SIP配置(csrutil status),但通常不建议关闭SIP。
卸载Service Mode后TUN模式仍然有残留影响怎么办?
卸载Service Mode后,建议重启系统确保虚拟网卡和路由表配置被完全清理。若重启后仍有Clash的虚拟网卡残留,在终端中执行sudo ifconfig utunX destroy(X为虚拟网卡编号)手动删除。重启后系统的网络配置将恢复到未安装Clash Service Mode前的状态。