聪明的玩法不是二选一,而是两个都要。国内机负责面向用户的 Web 服务,海外机负责不需要备案的后端、API、代理流量。这篇文章讲清楚怎么把它们串起来。
方案一:国内机 Web + 海外机 API(最简单)
适合场景:国内机备案建站,海外机跑数据密集型的后端服务。
架构
用户浏览器
│
▼
国内云服务器(Nginx 前端, 备案域名)
│ 静态文件直接返回
│ 动态请求 proxy_pass
▼
海外 VPS(后端 API / 数据库 / Python 脚本)
国内机 Nginx 配置
server {
listen 80;
server_name example.com;
# 静态文件直接返回
location / {
root /var/www/html;
}
# API 请求转发到海外机
location /api/ {
proxy_pass https://api.overseas.example.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
优点:实现简单,一条 proxy_pass 搞定。缺点:API 请求走国内→海外,延迟 100-200ms,不适合实时性要求高的场景。
方案二:海外机建站 + 国内 CDN(需备案)
适合场景:你的主站在海外,但想让国内用户访问更快。
架构
用户(国内)
│
▼
国内 CDN 节点(缓存静态资源)
│ 回源请求
▼
海外 VPS(源站)
操作步骤
- 海外 VPS 正常搭建网站,绑定域名
- 域名在国内 CDN 厂商完成备案(这一步需要国内服务器辅助)
- CDN 配置回源到海外 VPS IP
- 域名 CNAME 指向 CDN 加速域名
核心逻辑:静态资源(图片、CSS、JS)缓存到国内 CDN 节点,用户访问时从最近的节点拉取,只有动态请求才回源海外。对于内容型网站,缓存命中率可以到 90% 以上,实际体验接近国内机。
方案三:Tailscale 异地组网
适合场景:个人开发者、小团队,想用最简单的方式打通国内外机器。
搭建(3 步搞定)
# 每台机器上都执行
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
# 国内机
tailscale up --advertise-routes=10.0.1.0/24
# 海外机
tailscale up --advertise-routes=10.0.2.0/24
# 在 Tailscale 管理后台启用 subnet routes
配好后,国内机和海外机可以通过 Tailscale 内网 IP 直接通信,延迟虽然受物理距离影响但连接稳定。你可以:
- 海外机的数据库只监听 Tailscale IP,国内机通过内网 IP 直连,不用暴露公网端口
- 用 Tailscale SSH 远程管理,不需要开放 22 端口
- 海外机下载的文件通过 Tailscale 直接传到国内机
方案四:frp 内网穿透 + Nginx 反代
适合场景:你需要把海外机的某个服务"搬"到国内域名下,让用户感觉不到跨境的延迟。
架构
用户(国内)
│
▼
国内云服务器(frp 客户端 + Nginx, 备案域名)
│ 通过 frp 加密隧道
▼
海外 VPS(frp 服务端, 实际服务)
海外机 - frp 服务端
# frps.toml
bindPort = 7000
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 8080
国内机 - frp 客户端 + Nginx
# frpc.toml
serverAddr = "海外机IP"
serverPort = 7000
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 8080
# 国内机 Nginx
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
用户访问国内域名,Nginx 反代到 frp 隧道,数据加密传输到海外 VPS 的真实服务。
方案选型总结
| 方案 | 复杂度 | 延迟 | 适用场景 |
|---|---|---|---|
| 国内 Web + 海外 API | 低 | 中(100-200ms) | 前端国内、后端海外 |
| 海外站 + 国内 CDN | 中 | 低(静态资源) | 内容型网站,需要备案 |
| Tailscale 组网 | 低 | 取决于线路 | 个人/小团队,内网互通 |
| frp + Nginx 反代 | 中 | 中 | 特定服务对外暴露在国内域名 |
安全提醒
- 海外机和国内机之间的通信尽量走加密隧道(frp 自带加密,Tailscale 用 WireGuard)
- 海外机不要开放 22 端口到公网,用 Tailscale SSH 管理
- Nginx 反代时配置好限流和 IP 白名单,防止海外端口被扫
- 定期检查 frp 和 Tailscale 版本更新,这些工具修漏洞很快