# macOS 客户端使用指南

> 本文档说明如何在 macOS 上使用 V2BOX 或 NekoRay 接入自建的 Xray VLESS-Reality 代理。

---

## 准备工作

部署完成后，服务端脚本会输出类似以下内容的 VLESS 分享链接，**请提前保存**：

```
vless://<UUID>@<VPS_IP>:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=<PublicKey>&sid=<ShortId>&type=tcp#VPS-Reality
```

如已遗失，可在 VPS 上执行以下命令重新查看 `.env` 文件：

```bash
cat /opt/vps-xray/.env
```

---

## 方案一：V2BOX（推荐）

V2BOX 是免费的 iOS / macOS 原生客户端，界面友好，完整支持 VLESS + Reality。

### 下载

V2BOX 为闭源应用，**仅通过 App Store 官方分发**，无 GitHub 仓库，请勿从第三方渠道下载以避免安全风险。

- **Mac App Store**：[V2Box - V2ray Client](https://apps.apple.com/app/v2box-v2ray-client/id6446814690)（开发者：Oddba11）
- **iOS / iPadOS** 同一链接，iPhone / iPad 均可安装
- 需要 macOS 12 Monterey 或更高版本

> **⚠️ 中国大陆 Apple ID 无法下载**  
> Apple 已将代理类 App 从中国区 App Store 下架，使用中国大陆账号搜索不到 V2BOX。  
> 需要切换到**非中国大陆地区的 Apple ID**（如美区、港区、台区）才能搜索并安装。  
>
> **获取非中国区 Apple ID 的方式：**
> 1. 注册一个新 Apple ID，注册时将"国家/地区"选为**美国**或**香港**（无需信用卡，可选"无"付款方式）
> 2. 在 App Store → 点击右上角头像 → 退出登录 → 用非中国区账号重新登录
> 3. 搜索并下载 V2BOX 后，可切回原中国区 Apple ID，已安装的 App 不受影响

### 导入方式一：粘贴 VLESS 链接（最快）

1. 复制服务端输出的 `vless://` 链接
2. 打开 V2BOX → 点击右上角 **+** → 选择 **Import from Clipboard**
3. 链接自动解析后点击 **Save**
4. 回到主界面，点击刚添加的节点旁的 **Connect** 开关，等待变绿

### 导入方式二：扫描二维码

1. 将 `vless://` 链接粘贴到任意二维码生成网站（如 [qr-code-generator.com](https://www.qr-code-generator.com/)）生成图片
2. V2BOX → **+** → **Scan QR Code** → 用摄像头扫描

### 导入方式三：手动填写

1. V2BOX → **+** → **Add Config** → 选择 **VLESS**
2. 按下表填写各字段：

| 字段 | 值 |
|------|----|
| Address | `<VPS_IP>` |
| Port | `443` |
| UUID | `<UUID>` |
| Flow | `xtls-rprx-vision` |
| Transport | `TCP` |
| Security | `Reality` |
| SNI | `www.microsoft.com`（或部署时输出的实际值） |
| Fingerprint | `chrome` |
| PublicKey | `<PublicKey>` |
| ShortId | `<ShortId>` |

3. 点击右上角 **Save**

### 连接与代理模式

V2BOX 在 macOS 上通过系统 **VPN 扩展**（Network Extension）工作，而非传统的 HTTP/SOCKS 系统代理，因此在"系统设置 → 网络"中不会看到代理条目，而是会多出一个 VPN 连接。

**首次连接步骤：**

1. 在节点列表中点击要使用的节点，确认已选中（节点行高亮）
2. 点击主界面底部的大按钮（或顶部的开关）开始连接
3. macOS 首次使用时会弹出提示：**"V2BOX 想要添加 VPN 配置"**，点击 **允许** 并通过 Face ID / 密码确认
4. 状态变为已连接后即可使用

**切换代理模式：**

主界面底部有模式切换（不同版本位置略有差异，也可在"设置"或"更多"中找到）：

| 模式 | 说明 |
|------|------|
| `Rule`（规则） | 按内置规则分流，国内直连、国外走代理，**日常推荐** |
| `Global`（全局） | 全部流量走代理 |
| `Direct`（直连） | 全部直连，相当于关闭代理 |

> 若连接后在主界面找不到模式切换，可进入 **Settings（设置）** 查找 **Proxy Mode** 或 **Route Mode** 选项。

### 只加速国外网站（国内直连）

这是日常最推荐的使用方式：国内网站走本地网络（速度快、不占用 VPS 流量），国外网站自动走代理。

#### 第一步：导入分流规则

复制以下完整链接（包含 `v2box://` 开头）：

```
v2box://routes? 
```

然后在 V2BOX 中导入：

1. 打开 V2BOX → 底部导航点 **Home**
2. 进入 **Routing（路由）** 页面
3. 点右上角**导入图标**（⍗ 箭头朝下）
4. 在弹出框中粘贴上方链接 → 点 **Import**

导入成功后会出现三条规则：

| 规则名 | 说明 |
|--------|------|
| 直连（国内） | geoip:CN + geosite:cn，国内流量直连 |
| 代理（国外） | 其余流量走 VPS 代理 |
| 阻止（广告） | 屏蔽常见广告域名 |

#### 第二步：设置域名策略（关键）

在 **Routing** 页面找到 **Domain Strategy（域名策略）**，下拉选择：

> ✅ **IPIfNonMatch** —— 国内直连最准确，白名单专用

| 选项 | 是否推荐 | 说明 |
|------|---------|------|
| **IPIfNonMatch** | ✅ 推荐 | 域名无法判断时解析 IP 再匹配，准确率最高 |
| AsIs | ❌ 不选 | 仅匹配域名字符串，国内网站可能误走代理 |
| IPOnDemand | ❌ 不选 | 每次都解析 IP，耗电且无必要 |

同时确认开启：

- ✅ **Enable Routing**（路由总开关）
- ✅ **Apple on direct**（App Store / iCloud 直连，避免更新走代理）

#### 第三步：连接并验证

1. 回到 **Home**，选择节点后开启连接
2. 验证分流是否正常：
   - 访问百度 / 淘宝 / B 站 → IP 应为本地运营商 IP（直连）
   - 访问 [https://www.ip.sb](https://www.ip.sb) → IP 应为 VPS IP（走代理）
   - 访问 Google / YouTube → 能正常打开

**流量消耗提示：**

Rule 模式下，只有境外流量计入 VPS 月流量，国内视频、音乐、购物等不消耗 VPS 带宽，可大幅节省流量配额。

**常见问题：**

- **导入没反应**：确认链接完整（开头 `v2box://` 不能丢），并更新 V2BOX 至最新版
- **国内网站仍走代理**：确认 Domain Strategy 已选 **IPIfNonMatch**，修改后重启连接

### 验证连接

连接后访问 [https://www.ip.sb](https://www.ip.sb)，显示的 IP 应为 VPS 的 IP，说明代理成功。

---

## 方案二：NekoRay

NekoRay 是开源的跨平台图形客户端（基于 Qt），适合需要更精细路由控制的用户。

### 下载

- **GitHub Releases**：[github.com/MatsuriDayo/nekoray/releases](https://github.com/MatsuriDayo/nekoray/releases)
- 下载文件名含 `macos` 的 `.dmg` 包（如 `nekoray-3.x.x-macos.dmg`）
- 需要 macOS 11 Big Sur 或更高版本

> **注意**：首次打开时 macOS 可能提示"来自未知开发者"，需在  
> **系统设置 → 隐私与安全性 → 安全性** 中点击"仍要打开"。

### 导入方式一：粘贴 VLESS 链接

1. 复制 `vless://` 链接
2. NekoRay 菜单栏 → **程序** → **从剪贴板添加**（或快捷键 `Ctrl+V`）
3. 节点出现在列表中，右键 → **启动**

### 导入方式二：手动添加

1. NekoRay 右键空白处 → **新建配置** → **VLESS**
2. 按下表填写：

| 字段 | 值 |
|------|----|
| 地址 | `<VPS_IP>` |
| 端口 | `443` |
| UUID | `<UUID>` |
| 流控 | `xtls-rprx-vision` |
| 传输层 | `tcp` |
| TLS 类型 | `reality` |
| SNI | `www.microsoft.com` |
| uTLS 指纹 | `chrome` |
| Reality PublicKey | `<PublicKey>` |
| Reality ShortId | `<ShortId>` |

3. 点击 **OK** 保存

### 启用代理

- **系统代理**：NekoRay 菜单栏 → **系统代理** → **启用系统代理**  
  自动设置 macOS HTTP/SOCKS 代理（端口默认 `2080`）
- **TUN 模式**（全局透明代理，需要管理员密码）：  
  菜单栏 → **VPN** → **启用 TUN**  
  适合需要代理所有应用流量（包括不走系统代理的 CLI 工具）的场景

### 路由模式

菜单栏 → **路由** 可切换：

| 模式 | 说明 |
|------|------|
| 绕过局域网和中国大陆 | 国内直连，推荐日常使用 |
| 绕过局域网 | 仅局域网直连，其余全走代理 |
| 全局代理 | 所有流量走代理 |

---

## 常见问题

### 连接后网页无法打开

1. 确认节点状态显示"已连接"
2. 检查系统代理是否生效：**系统设置 → Wi-Fi → 详细信息 → 代理**，应能看到 HTTP/SOCKS 代理条目
3. 访问 [http://www.ip.sb](http://www.ip.sb) 测试（注意用 http 而非 https，部分情况下更直接）

### 速度慢

- 在客户端切换到延迟最低的节点（如有多节点）
- 确认 Flow 设置为 `xtls-rprx-vision`（避免双重加密导致性能下降）
- 尝试切换路由模式为**绕过局域网和中国大陆**，减少不必要的代理流量

### 提示 "TLS handshake failed" 或连接超时

- 检查 PublicKey、ShortId、SNI 是否与服务端完全一致
- 检查 VPS 443 端口防火墙是否开放：`ss -tlnp | grep 443`
- 检查服务端 Xray 是否正常运行：`systemctl status xray`

### macOS 15+ 系统代理不生效

macOS Sequoia（15+）对系统代理权限有更严格限制：

- 使用 **TUN 模式**代替系统代理（需要管理员授权）
- 或改用 **Proxifier** 等工具强制指定应用走 SOCKS5 代理（`127.0.0.1:1080`）

---

## 两款客户端对比

| 特性 | V2BOX | NekoRay |
|------|-------|---------|
| **安装方式** | App Store 一键安装 | GitHub 手动下载 DMG，需绕过 Gatekeeper |
| **系统要求** | macOS 12 Monterey+ | macOS 11 Big Sur+ |
| **iOS 支持** | ✅ 同一 App Store 链接 | ❌ 无 iOS 版 |
| **界面风格** | 简洁，移动端原生风格 | 桌面程序风格，信息更丰富 |
| **代理内核** | 内置（闭源） | 可选 Xray-core 或 v2fly-core |
| **VLESS Reality** | ✅ | ✅ |
| **VMess / Trojan / SS** | ✅ | ✅ |
| **TUN 模式** | ✅（全局透明代理） | ✅（全局透明代理） |
| **系统代理** | ✅ 自动设置 | ✅ 自动设置，端口可自定义 |
| **路由规则** | 内置预设（CN 直连/全局），不可自定义 | 支持自定义规则集，可加载 geoip / geosite |
| **多节点管理** | 基础列表 | 支持分组、批量导入订阅链接 |
| **订阅链接** | ✅ 支持 | ✅ 支持 |
| **日志 / 调试** | 简单状态显示 | 详细日志面板，便于排查问题 |
| **开源** | ❌ 免费但不开源 | ✅ GPL-3.0（[github.com/MatsuriDayo/nekoray](https://github.com/MatsuriDayo/nekoray)） |
| **维护状态** | 持续更新 | 原仓库已归档（停止维护），建议评估替代方案 |
| **适合人群** | 普通用户，快速上手 | 进阶用户，精细控制 |

### 选择建议

- **只需快速可用**：选 **V2BOX**，App Store 安装，粘贴链接即用，维护活跃。
- **需要自定义路由 / 多节点管理**：选 **NekoRay**（注意原项目已停止维护，可关注社区 fork）。
- **同时使用 iPhone**：选 **V2BOX**，iOS / macOS 共用同一 App，配置可通过 iCloud 同步。
- **在意开源审计**：选 **NekoRay**，代码公开可查。
