← 交接首页 工具首页 远程开发链路 (VPN) · Project Handoff
VPN / 上海 Mac ⇄ 日本 VPS 远程开发

远程开发链路 — 项目交接

目标:上海的 Mac(MacBook2019,短期,一年回来几趟)远程到日本(东京)VPS43.153.159.102)做开发,并按需翻墙。 最终形态:开发走直连 SSH(VSCode 连 vps,活儿都在日本 VPS 上干,稳态编码不需要 VPN); 翻墙走 sing-box,菜单栏一个图标三态切换(直连 / HTTP代理 / 全局TUN)。V2rayU 已从本机退役,Tailscale 降为可选备胎。

sing-box 三态菜单栏开关 全局 TUN 覆盖所有 App VSCode 直连 vps · 两地同一套 稳态编码不需 VPN V2rayU 本机退役 晚高峰直连 SSH 待观察

怎么用(机主日常)

🧭 心法:VPN 是给"本机翻墙"的,不是给"写代码"的

  • 日常编码:保持 🌐 直连即可,不用开 VPN。SSH 直连日本 VPS 就通;git / npm / 装远程扩展 / 甚至 Copilot 都在日本那头出网,没有墙。
  • Remote-SSH 的活几乎全在远端 VPS 上跑,你 Mac 客户端本身很少要外网。

🔌 什么时候才点开 VPN

  • VSCode 建立连接的那一下(首连 / 装客户端侧扩展 / VSCode 更新后)——客户端要查 marketplace、update、GitHub 登录,撞墙会卡;先点 🔒 或 🌍 再连。
  • 连上之后可切回 🌐,稳态编码照常。
  • 在 Mac 上浏览器 / Telegram / 本地 CLI 要访问墙外时。
  • 境外(曼谷等):全程 🌐 直连,什么都不用开。

菜单栏三态(SwiftBar 图标,点开即切)

🌐 直连什么都不走(境外 / 稳态编码用这个)
🔒 HTTP代理只浏览器等认系统代理的走(轻量),走本机 127.0.0.1:2080
🌍 全局 TUN所有 App 全走(Telegram、codex/claude CLI、UDP 全包,像 iPhone v2box)

菜单栏图标没出来怎么办 · 三层保险

系统更新后,菜单栏 SwiftBar 图标偶尔起不来(GUI app 启动要过 Apple 公证检查,连不上 Apple 就卡)。这时有两条不依赖菜单栏的后路:

① 菜单栏正常时点顶部 🌐/🔒/🌍 图标切换
② 桌面 VPN.command双击 → 弹选择框选模式,或选「↻ 重启菜单栏图标」把 SwiftBar 拉回来。由系统自带的终端执行,不吃 GUI 公证卡顿,最稳
③ 终端命令最底层:~/sing-box/setmode.sh direct|http|tun

②③ 都不依赖会因连不上 Apple 而卡的 GUI 启动,系统更新后照样能切。VPN.command~/Desktop/,可拖进 Dock。

已做 / 未做

✅ 已完成

  • sing-box 三态菜单(SwiftBar,开机自启):🌐直连 / 🔒HTTP代理 / 🌍全局TUN,一键切、显示当前态。切换脚本 ~/sing-box/setmode.sh
  • 全局 TUN:root LaunchDaemon com.singbox.tun(config /etc/singbox-tun/config.json),菜单切换免密(sudoers 只放行两个助手 singbox-tun-up/down),开机默认禁用,只由菜单显式开启。
  • 全局下的排除(保 VSCode):VPS IP 43.153.159.102 + tailnet 100.64/10 + 内网 → 直连;所以 VSCode 的 SSH 仍走直连、快,不受全局影响。实测:全局下 curl google 200、ssh vps 直连 OK。
  • HTTP代理:用户级 LaunchAgent sing-box(mixed 2080)+ 系统代理。
  • VSCode 连 vps(直连公网 IP),曼谷/上海同一套配置,三种模式都快(实测直连 63ms、10MB/6.2s)。
  • V2rayU 本机退役(删 app+登录项);VPS Xray 服务端保留不动(MacBook Air 的 V2rayU、iPhone v2box 仍用)。
  • 诊断闭环:上海 VSCode 时好时坏 = 客户端撞 github/marketplace 间歇抽风,非通道问题(Tabby 纯 SSH 一直稳可佐证)。

⬜ 未做 / 备选

  • 晚高峰直连 SSH 若变烂:备胎 = Tailscale(vps-jp 100.78.89.95,但实测比直连慢)或 japan-vpn(SSH 套 sing-box 2080)。日常不用。
  • 全局=全量走日本:国内站也绕日本会略慢;如要"国内直连、仅墙外走代理",后续加 geoip 分流规则。
  • 若某 App 全局下仍不通(少见),单独排查。

环境信息

拓扑Mac MacBook2019(上海,主力)· Win11(曼谷)· VPS(日本/东京 43.153.159.102 / VM-0-5-ubuntu / Ubuntu 22.04)· iPhone · MacBook Air(仍用 V2rayU)
开发通道VSCode Remote-SSH → host vps直连公网 IP),稳态编码不需 VPN
翻墙客户端Mac sing-box 1.13.14~/sing-box/)。HTTP代理=用户 LaunchAgent com.singbox.proxy(2080);全局=root LaunchDaemon com.singbox.tun(默认禁用,菜单开)
菜单栏SwiftBar 插件 ~/sing-box/swiftbar-plugins/vpn.5s.sh(显示 🌐/🔒/🌍,点击切);切换脚本 ~/sing-box/setmode.sh {direct|http|tun}
VPS 服务端Xray VLESS+Reality :808(flow xtls-rprx-vision,SNI www.apple.com,shortId 6d9ebf4aca87bbb5),config /usr/local/etc/xray/config.json保留(MacBook Air + iPhone 仍连)
Tailscale可选备胎,vps-jp 100.78.89.95。实测比直连慢,日常可关
远程运维CC 在 VPS 上,经 void-webui/void/api/local-agent/exec → daemon system.run 遥控 Mac(MacBook2019.local

手动命令(一般用不到,菜单已封装)

# 切模式(菜单点击即调用这个)
~/sing-box/setmode.sh direct    # 直连
~/sing-box/setmode.sh http      # HTTP 代理(系统代理→2080)
~/sing-box/setmode.sh tun       # 全局 TUN

# 全局 TUN 守护(免密,菜单已用)
sudo /usr/local/bin/singbox-tun-up      # 起(enable+bootstrap)
sudo /usr/local/bin/singbox-tun-down    # 停(bootout+disable,开机不自起)

# VSCode SSH(直连,任何模式都走直连,不受全局影响)
Host vps → HostName 43.153.159.102 (User ubuntu, id_rsa)
本页由 The Void 的「VPN / 远程开发链路」工作会话生成,反映截至 2026-07-02 的最终状态。 结论:开发走直连 SSH(稳态不需 VPN);翻墙走 sing-box 三态菜单(境外全关、上海按需);V2rayU 本机退役、VPS 服务端保留;Tailscale 降为可选备胎。 注:VPS 位于日本(东京),早期 coding-session 摘要误记为「新加坡」,以本页为准。