一个基于 SwiftUI 的 macOS V2Ray/Xray 图形客户端,支持一键连接、自动系统代理、状态栏控制、可视化日志与多路由模式。支持 Xcode 调试环境与用户环境分离存储,提供一键下载 Xray 二进制与 GitHub Actions 打包。

- 支持订阅
- vless、ssr 待测试
- vmess连接
- 一键连接/断开:主界面和状态栏均可控制连接。
- 自动系统代理:连接后自动启用 HTTP/HTTPS/SOCKS 代理;断开/退出自动关闭。
- 多协议:
vmess、vless、trojan、shadowsocks。 - 路由模式:全局、绕过大陆、直连;支持自定义代理/直连/拦截规则。
- 日志面板:捕获核心输出,自动滚动与筛选,支持导出。
- 设置项:端口/地址、UDP、日志级别、Dock 显示、开机启动、自动连接等。
- 状态栏:快速查看状态、配置与一键连接。
- Xcode 开发隔离:在 Xcode 调试运行时,应用数据写入
Application Support/<bundleId>/dev。
- macOS(Apple Silicon 或 Intel)
- Xcode 15+(开发/构建)
资源目录优先读取:v2rayMui/Resources/xray-core/xray(兼容 v2rayMui/Resources/xray)。
下载脚本(自动识别架构并安装到 Resources/xray-core/xray):
./scripts/download_xray.sh- Xcode 打开
v2rayMui.xcodeproj→ 选择 schemev2rayMui。 - 运行(⌘R)。首次运行可能出现网络/系统设置权限提示;请允许。
GitHub Actions(手动触发):.github/workflows/build-macos.yml
- 构建未签名 Release
.app,并打包可拖拽安装的.dmg。 - 工作流会(可选)执行脚本下载 Xray 并写入资源目录(当前步骤默认注释,可按需放开)。
- “配置”页添加或选择一个服务器配置。
- “设置”页确认本地监听:HTTP
127.0.0.1:1087,SOCKS127.0.0.1:1088(可改)。 - 在主界面或状态栏点击“连接”。成功后:
- 生成并写入
config.json; - 启动 Xray;
- 自动为当前网络服务启用系统代理。
- 生成并写入
- 点击“断开”或退出应用自动清理代理并停止进程。
- 优先通过 SystemConfiguration 写入当前主网络服务的 HTTP/HTTPS/SOCKS 代理;失败则回退
networksetup。 - 断开、进程异常退出或应用退出时,自动关闭上述代理。
- 首次写入可能需要一次管理员授权;同一会话后续复用,尽量减少弹窗。
自检命令(以 Wi‑Fi 为例):
/usr/sbin/networksetup -listallnetworkservices | cat
/usr/sbin/networksetup -getwebproxy Wi-Fi
/usr/sbin/networksetup -getsecurewebproxy Wi-Fi
/usr/sbin/networksetup -getsocksfirewallproxy Wi-Fi终端不读系统代理时可临时设置:
export http_proxy=http://127.0.0.1:1087
export https_proxy=http://127.0.0.1:1087
export all_proxy=socks5://127.0.0.1:1088- 自动连接:
- 启动时若开启且存在选中配置,会自动连接;
- 修改“自动连接”或“选中配置”时按状态自动连接/断开;
- 设置加载完成后二次检查,保证时序正确。
- Dock 显示:
- “显示在Dock”开关实时控制;
- 关闭窗口时,如设置关闭 Dock,则仅保留状态栏图标。
- 路由:全局/绕过大陆/直连,支持自定义规则(域名/IP/CIDR,每行一条)。
- 日志:级别筛选、来源筛选、搜索、清空与导出;避免“先显示再消失”的闪烁问题。
v2rayMui/Managers/V2RayManager.swift:连接、进程、配置生成、代理清理。v2rayMui/Managers/ProxyManager.swift:系统代理开关(SystemConfiguration 优先,networksetup回退;会话授权复用)。v2rayMui/Managers/SettingsManager.swift:设置读写与通知(自动连接、Dock 等)。v2rayMui/Managers/ConfigManager.swift:配置管理、导入、选中项持久化。v2rayMui/Managers/LogManager.swift:日志采集、合并、持久化,避免闪烁。v2rayMui/Managers/AppEnvironment.swift:Xcode/调试/预览环境检测。v2rayMui/Views/*:SwiftUI 界面与状态栏弹窗、日志页等。v2rayMui/Resources/xray-core/xray:Xray 可执行文件(如存在)。scripts/download_xray.sh:下载最新 Xray 并安装到资源目录。
- 代理端口不一致:若系统代理端口为 10808 等,可能被其他代理工具覆盖;请统一端口或手动清理后再连接。
- 需要授权:修改系统网络设置通常需要管理员权限;本应用仅在会话首次写入时提示一次,后续自动。
- 无法修改代理:企业/MDM 环境可能限制;请手动在系统设置里调整或联系管理员。
见根目录 LICENSE。