内网穿透方案之tailscale+cloudflare tunnel

很多homelab玩家拿到机器遇到的第一个问题就是怎么把服务部署到公网。

有的人会选择frp，但考虑到国内服务器带宽和价格的情况下frp效果实在太差。也有人使用tailscale这种p2p方案，但这种并没有把服务暴露到公网。这里分享一个我的解决方案。

首先你需要在本地机器和一台海外vps上都部署tailscale并且完成登录。关于vps的选择，推荐使用新加坡的vps（可以做到一机多用，能够正常代理ChatGPT，大多直连效果也不错），不推荐使用国内的vps，因为后面还要连接cloudflare。

此时你可以在tailscale中看到本地机器的tailscale ip。

之后在vps部署cloudflare tunnel，支持docker和主流操作系统安装。

在cloudflare tunnel中添加tailscale中本地机器的内网ip，映射到域名上。

在这种方案下，你可以同时保护本地机器、vps的IP不暴露，又可以保证服务稳定性（国内直连cloudflare tunnel稳定性很差），同时不会牺牲很多速度。

此外，你可以使用国内服务器自部署derp节点（tailscale的中继节点）来保障服务的稳定性。