这个项目能做什么

vpnonly是一款轻量级macOS分流工具,仅将通过WireGuard VPN隧道路由您指定的应用程序。与普通VPN客户端不同,vpnonly将浏览器、银行应用和流媒体服务保持在正常互联网连接上,只让选定的应用通过VPN出口。 该工具利用macOS内置的PF防火墙,后者可以根据Unix组成员身份(而非应用程序)来匹配数据包。当您通过vpnonly启动应用时,它会在分配特殊组后运行该应用程序,然后PF规则将该组的流量路由到WireGuard接口,而其余流量则正常通行。 该项目由约350行shell脚本和一个小C语言启动器文件组成。它不需要内核扩展、不需要Network Extension权限,也不会修改/etc/pf.conf或默认路由。规则存放在专用锚点中,关闭VPN只会清除这些规则。 对于WireGuard支持,它捆绑了Homebrew自带的wireguard-go。CLI版本可即插即用配合NordVPN使用,但对于使用加密密钥路由的提供商(如Mullvad、Proton、自建服务器),则需要经过修补以重写内部源地址的wireguard-go——该补丁包含在编译后的Mac应用中,但尚未包含在CLI公式中。 已知限制包括:Safari和其他WebKit应用(它们通过不携带该组的单独系统进程处理连接)、DNS查询(未隧道化,因此查找仍正常退出)以及IPv6(对已分组的应用程序进行阻止而非隧道传输)。此外,服务器断开时也没有自动重连功能。 通过Homebrew安装:brew tap kanishkdan/vpnonly && brew install vpnonly。vpnonly.app还提供付费Mac应用版本(2台Mac设备19美元),具备更多功能,如无需重启即可切换单个应用、自动更新和国家选择器等。 app-engine/下的源代码已发布并附带校验和,以便用户在信任前先审核哪些部分以root权限运行。所有特权脚本篇幅简短,五分钟即可阅读完毕。