相比于其他的几种内网穿透方案,这个应该看起来很简单而且完全免费。
相比官方的内网穿透,还是有以下优点的:
- 相比官方的小水管,打洞成功的tailscale能跑满你家的上行带宽
- 能访问你部署的docker服务,例如aria2、alist等
1、注册tailscale
网址在这里,基本上有手就行,tailscale官网

2、登陆
在你的设备(pc、mac、android、ios)上下载对应的客户端,登陆就行,然后在浏览器打开网页版控制台,就这个网址
https://login.tailscale.com/admin/settings/keys
生成一个key,复制它,你只有一直机会后续就不再出现了

3、docker部署
这里有docker的官方介绍,有兴趣的可以瞅一眼。https://hub.docker.com/r/tailscale/tailscale,看不看都行
然后在你的docker仓库搜索 tailscale,下载它

然后添加到容器,这里需要注意的的是有两个挂载路径,对应填上就行
/var/lib
/dev/net/tun

网络选择host

环境需要加一个 TS_AUTH_KEY,把你在tailscale控制台获取的key粘贴在这里就行了
再加一个TS_ROUTES,后面就是你家路由器的局域网地址,后面的/24固定的,不用改

然后启动就行了
4、获取ip
打开tailscale控制台 machines下面应该就能看到你新加入的设备了,记得打开subnet routes,这样无论内外访问都是相同的ip地址


5、访问
上一步获取到的ip,其实就可以替代你原来nas的 内网ip了
比如,你之前 alist的访问方式是 192.168.1.200:5244,那现在你远程访问的就是 tailscale的ip:5244。
此外,如果你开启了subnet routes,外网的访问地址还是192.168.1.200:5244,是不是更方便了

6、关于重启
测试后发现,每次重启都会导致节点变更,还需要手动开启subnet,后来查看官方文档后,可以进行一下额外配置。
首先在Acls里面添加这两个
- 添加tag
- 设置autoApprovers
{
"tagOwners": {
"tag:docker": ["换成你的账户邮箱"],
},
"autoApprovers": {
// Alice can create subnet routers advertising routes in 10.0.0.0/24 that are auto-approved
"routes": {
"192.168.32.0/24": ["换成你的账户邮箱"],
},
// A device tagged security can advertise exit nodes that are auto-approved
"exitNode": ["tag:docker"],
},
}
那个192.168.32.0记得换成你自家的局域网链接,然后点save保存

在重新去生成一个key,需要注意的是 resuable、Ephemeral都需要打开,tag选你刚刚在acl配置的那个tag,简单说明下
Reusable打开可以让你的key在重启后也能再次使用
Ephemeral打开可以在设备离线的时候,自动移除节点,重启的时候在生成一个,避免出现Z4-1、Z2-2、Z4-3这种情况
Tags选择后,能通过autoApprovers,在设备回复上线后,自动配置subnet




















