
Tailscale + 海外VPS:在家搞AI编程的终极网络方案
用Tailscale组网、荷兰VPS做Exit Node,彻底解决HuggingFace连不上、GitHub拉不动的问题。附远程AI编程的完整工作流和WSL2优化指南。
Tailscale + 海外VPS:在家搞AI编程的终极网络方案
在家搞AI开发,最痛苦的往往不是显卡不够强,而是HuggingFace连不上、GitHub拉不动、Conda只有几KB/s。
我最近折腾了一圈,发现手里有台海外VPS的话,配合Tailscale,基本能解决所有网络问题。这篇记录一下心路历程,也当教程用。
痛点:网络是AI开发的隐形杀手
你肯定遇到过这些场景:
pip install transformers卡在 Resolving 好几分钟git clone一个 5GB 的模型仓库,下了一晚上断了- 调用 OpenAI API 各种 timeout
- HuggingFace 的
.safetensors文件下到一半 Connection reset
我家里有台 Linux 主机,配置不差,但网络环境不行。后来买了一台荷兰 VPS(主要是便宜),发现同样的代码在那边跑得飞快。
问题就变成了:怎么让家里的机器"借用"荷兰的网络?
方案一:Tailscale Exit Node(最推荐)
这是我现在用的方案。原理很简单:让荷兰 VPS 做 Tailscale 的出口节点,家里的 Linux 主机把所有流量都转发到那边出去。
对外网来说,你家里的机器就等于在荷兰。
第一步:两边都装好 Tailscale
如果你还没装,先去 Tailscale 官网 注册账号,然后两边都跑一遍安装命令:
curl -fsSL https://tailscale.com/install.sh | sh装完后登录:
sudo tailscale up会弹出一个链接让你在浏览器里授权。完成后 tailscale status 应该能看到两台机器都在线。
第二步:在荷兰 VPS 上配置 Exit Node
在荷兰 VPS 上执行:
# 启用 IP 转发(必须)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
# 告诉 Tailscale 这台机器愿意做出口
sudo tailscale up --advertise-exit-node然后去 Tailscale Admin Console,找到你的荷兰机器,点 Edit route settings,把 Use as exit node 勾上。
第三步:在家里 Linux 上使用 Exit Node
假设你的荷兰机器在 Tailscale 里叫 dutch-vps:
sudo tailscale up --exit-node=dutch-vps搞定。现在你访问任何网站,流量都会从荷兰出去。
验证一下
curl ipinfo.io如果返回的 IP 和地区是荷兰,说明配置成功。
切换模式的小技巧
我写了两个 alias 放在 .bashrc 里:
# 出国模式
alias vpn-on='sudo tailscale up --exit-node=dutch-vps'
# 回国模式
alias vpn-off='sudo tailscale up --exit-node='想翻墙就 vpn-on,想访问国内网站快一点就 vpn-off。
方案二:HuggingFace 镜像站(下载最快)
如果你的主要痛点是下载 HuggingFace 的大模型,其实不用挂代理,用国内镜像站最快。
在终端或 .bashrc 里加一行:
export HF_ENDPOINT=https://hf-mirror.com然后用 huggingface-cli download 或者 Python 里的 transformers 库,都会自动走镜像站。速度能跑满你的宽带。
注意:这只解决 HuggingFace 下载问题,解决不了 OpenAI API 或 GitHub 的问题。
方案三:精准代理(Proxychains)
如果你不想全机走代理,只想让某一个脚本走,可以用 Proxychains。
假设你本地有个代理客户端(比如 Clash)开在 7890 端口:
方法 A:临时环境变量
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
python my_ai_script.py方法 B:Proxychains 强制接管
有些库(比如底层用 C++ 的)不听环境变量。这时候用 Proxychains:
sudo apt install proxychains4编辑 /etc/proxychains4.conf,最后一行改成:
http 127.0.0.1 7890然后这样跑脚本:
proxychains4 python my_ai_script.py远程 SSH 服务器适合 AI 编程吗?
这是我最近思考的另一个问题。答案是:非常适合。
为什么远程服务器更香
-
24/7 永不掉线:用 tmux 在服务器上跑 AI 任务,你关电脑它继续跑。醒来代码写完了。
-
环境隔离:AI 生成的代码往往需要装大量依赖。在服务器上装不会污染本地系统。
-
网络优势:海外服务器调用 OpenAI、Anthropic 的 API 更稳定,不会动不动 timeout。
-
VS Code Remote SSH:本地只负责 UI,所有代码和计算都在服务器上跑。体验和本地开发几乎一样。
推荐的工具组合
| 工具 | 用途 |
|---|---|
| Aider | 终端里的 AI 编程助手,直接编辑文件、提交 Git |
| Claude Code | Anthropic 官方 CLI,适合复杂任务 |
| tmux | 会话保持,断网也不怕 |
| VS Code Remote SSH | 本地 UI + 远程执行 |
10+ 个 VS Code 窗口怎么搞?
我还在纠结一个问题:如果要同时处理十多个 Next.js 项目,用什么方案?
试了四种:
| 方案 | 内存/性能 | 开发体验 | 稳定性 | 结论 |
|---|---|---|---|---|
| 2017 iMac | 极差 | 本地零延迟 | 风扇起飞 | 淘汰 |
| 高性能 Windows | 优秀(需要64GB RAM) | 极佳 | NTFS 扫描 node_modules 慢 | 推荐 |
| Windows WSL2 | 优秀 | 接近本地 | 容易断连 | 备选(需配置) |
| 半个地球外的服务器 | 最强算力 | 200ms+ 延迟 | SSH 不稳定 | 不建议 |
为什么 10+ 个 Next.js 这么吃资源?
每个 Next.js (App Router) 开发模式会吃 500MB - 1.5GB 内存。10 个项目意味着:
- 内存:至少 16-24GB 只给 Node.js,加上 VS Code 和浏览器,32GB 起步,64GB 才稳
- 文件监听:10 个项目的 file watcher 会消耗大量系统句柄
WSL2 断连的解法
如果你用 WSL2,最常见的坑是断连。在 Windows 用户目录创建 .wslconfig:
[wsl2]
memory=48GB
processors=12
networkingMode=mirrorednetworkingMode=mirrored 是关键,能解决大部分莫名其妙的网络断连问题。
另外,绝对不要把项目放在 /mnt/c/,必须放在 WSL 内部路径(如 /home/user/projects)。这能提速 10 倍以上。
我的工作流总结
经过这一圈折腾,我现在的工作流是这样的:
- 日常开发:家里 Linux 主机 + Tailscale Exit Node(荷兰 VPS)
- 下载模型:
export HF_ENDPOINT=https://hf-mirror.com,镜像站跑满宽带 - 长时间任务:SSH 到 VPS,tmux 里跑 Aider 或 Claude Code,睡觉去
- 多项目并行:Windows + WSL2,配置好
.wslconfig限制内存
核心原则:让网络问题消失在基础设施层,这样写代码的时候就不用操心了。
资源汇总
如果你也在搞远程 AI 编程,可以加我交流。这套东西折腾起来有点门槛,但配好了真的省心。
作者
分类
更多文章
需要定制方案?
遇到问题或想让我帮你完成繁重的工作?给我发条消息,我会在24小时内回复——简单咨询永远免费。
邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新

