返回列表 发布新帖

[用户教程] NAS内网穿透-Tailscale让NAS虚拟局域网网关

1384 8
发表于 2026-3-31 15:14:09 | 查看全部 阅读模式 IP:–浙江–绍兴

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
NAS内网穿透-Tailscale让NAS虚拟局域网网关

场景:

绿联 NAS的位置和我的工作不在一个位置,原来靠Lucky设置了反代,但服务端口越来越多,设置的反代也越来越多,其中大部份都只是我自己使用,越来越不方便,而且想SSH连接的时候也很麻烦。

这次的目标很明确:

不想把 SSH 和 Web 服务直接暴露到公网
不想每个服务单独做端口映射
不想出门以后再改访问地址
希望在外网的时候,依然像在家里一样,直接访问:

   ssh 用户名@192.169.x.x
   http://192.169.x.x:5445
   http://192.169.x.x:6806

最终的思路,让绿联 NAS 跑 Tailscale,把它变成 192.169.x.0/24 这段网段的子网路由器。这样一来,我的 Mac 只要也登录到同一个 Tailscale 网络,就可以随时访问原始内网地址。

最终方案

1. 在绿联 NAS 上通过 Docker 运行 Tailscale
2. 把这台 NAS 配置成 Subnet Router
3. 由它对外广告 192.169.x.0/24
4. 我的 Mac 也登录同一个 Tailscale 网络
5. 之后在 Mac 上直接访问 192.169.x.x

最终网络关系下面这样:
  1. flowchart LR
  2.     A["MacBook(外网)"] --> B["Tailscale Tailnet"]
  3.     B --> C["绿联 NAS(子网路由器)"]
  4.     C --> D["192.169.x.x:22"]
  5.     C --> E["192.169.x.x:5445"]
  6.     C --> F["192.169.x.x:6806"]
  7.     C --> G["192.169.x.0/24 其它设备"]
复制代码

Tailscale 的工作原理

如果你之前没接触过 Tailscale,我建议先把它理解成一句话:

它是一个把多台设备拉进同一个“私有覆盖网络”的工具。

你可以把它想象成:

Mac 和 NAS 先都加入一个虚拟局域网
NAS 再告诉这个虚拟局域网:“192.169.x.0/24 这段网络我负责带路”
之后 Mac 要访问 192.169.x.x,流量会先到 Tailscale 网络,再通过 NAS 转到这段内网

步骤

1. TSAUTHKEY 申请

TSAUTHKEY 是容器第一次接入 Tailscale 时使用的认证密钥。

打开 Tailscale 管理后台的 Keys 页面:

https://login.tailscale.com/admin/settings/keys

iShot_2026-03-31_10.45.43-20260331145054-t3xshzb.jpg

iShot_2026-03-31_10.46.33-20260331145106-sygx2vn.jpg

iShot_2026-03-31_10.53.40-20260331145115-zz2yeja.jpg

二、Docker 部署compose文件

直接新建一个 docker-compose.yml,内容如下:
  1. version: "3.8"
  2. services:
  3.   tailscale:
  4.     image: tailscale/tailscale:latest
  5.     containername: tailscale-subnet-router
  6.     hostname: ugreen-nas
  7.     networkmode: host
  8.     restart: unless-stopped
  9.     environment:
  10.       - TSAUTHKEY=这里替换成你自己的tskey
  11.       - TSAUTHONCE=true
  12.       - TSSTATEDIR=/var/lib/tailscale
  13.       - TSUSERSPACE=false
  14.       - TSROUTES=192.169.x.0/24
  15.       - TSACCEPTDNS=false
  16.     volumes:
  17.       - /volume1/docker/tailscale/tun:/var/lib/tailscale
  18.     devices:
  19.       - /dev/net/tun:/dev/net/tun
  20.     capadd:
  21.       - NETADMIN
  22.       - SYSMODULE
复制代码

三、部署后操作

开启 NAS 的 IP 转发:
  1. sudo sysctl -w net.ipv4.ipforward=1
  2. sudo sysctl -w net.ipv6.conf.all.forwarding=1
复制代码

这一步很关键,如果 IP 转发没打开,NAS 就算加入了 Tailscale,也只是一台普通节点,没法替你把流量转进 192.169.3.0/24 这段内网。

这两个 sysctl NAS重启后可能失效,建议加入启动

最稳妥的做法是新建一个单独配置文件,例如:
  1. /etc/sysctl.d/91-tailscale-router.conf
复制代码

可以直接这样执行:
  1. cat >/etc/sysctl.d/91-tailscale-router.conf <<'EOF'
  2. net.ipv4.ipforward=1
  3. net.ipv6.conf.all.forwarding=1
  4. EOF
复制代码

然后执行:
  1. sysctl --system
复制代码

再检查:
  1. sysctl net.ipv4.ipforward
  2. sysctl net.ipv6.conf.all.forwarding
复制代码

如果输出仍然是:
  1. net.ipv4.ipforward = 1
  2. net.ipv6.conf.all.forwarding = 1
复制代码

说明已经持久化成功。后面 NAS 重启时,systemd-sysctl 会自动重新加载这两个参数。

最容易漏掉的一步:去后台批准子网路由

后台入口:

https://login.tailscale.com/admin/machines

iShot_2026-03-31_11.03.32-20260331150025-xt1y47g.jpg

iShot_2026-03-31_11.03.53-20260331150040-e4a8rym.jpg 这一步没做的话

TSAUTHKEY 最多只有 90 天,需设置Expiry

还是进入刚刚的后台地址

iShot_2026-03-31_10.58.03-20260331150241-r2yg2w2.jpg

最后本机下载安装 Tailscale 客户端,登陆同一个帐户,就能看到你在线的客户端了,这时就把NAS当成局域网访问就好了,访问的地址这些都不变

image-20260331150853-5gx97dz.png

官方参考链接

Tailscale Docker 官方文档
Tailscale Subnet Routers 官方文档
Tailscale Auth Keys 官方文档
Tailscale Key Expiry 官方文档
Tailscale 管理后台

---


评论8

qHZKDCLv.1绿联NAS社区会员用户 发表于 2026-4-14 11:18:35 | 查看全部 IP:墨西哥–墨西哥城 CloudFlare节点
本帖最后由 qHZKDC 于 2026-4-14 13:39 编辑

我也是用的这个方案,使用下来遇到一些问题
背景
1. 平板(192.168.68.188) 上开了一个 HTTP 文件服务器,并用 Lucky 反代
2. 电脑(192.168.68.199)从 HTTP 文件服务器下载文件

表现1,通过域名访问下载
1. 电脑上下载速度 50MB/s
2. Nas上显示 上传100MB/s,下载 50MB/s

表现2,通过IP+端口访问下载
1.  电脑上下载速度 50MB/s
2.  Nas上显示 上传50MB/s,下载 50MB/s

然后我发现电脑和 Nas 上的 Tailscale 进程,cpu占用都+3%
关了tailscale之后,下载速度达到100MB/s
网上找了个方法是 tailscale 子网路由 /24 -> /23,范围更大
这样局域网本身因为是 /24,网段更小,优先级更高

JMiJxKLv.1 发表于 2026-5-11 10:45:49 | 查看全部 IP:–江西–南昌
docker-compose.yml文件中的变量的下划线都被去掉了,配置内容是错误的。
zy0508Lv.1 发表于 2026-5-11 11:55:54 | 查看全部 IP:–江苏–苏州
有没有对方不需要配置任何软件的内网穿透
JujqZMLv.1 发表于 2026-5-11 13:42:50 | 查看全部 IP:–广东–佛山–高明区
三、部署后操作
这个去哪里操作啊,小白求问
JujqZMLv.1 发表于 2026-5-11 13:48:15 | 查看全部 IP:–广东–佛山–高明区
请问第三步 【三、部署后操作】 在哪里操作啊
HkJWg1Lv.1 发表于 5 天前 | 查看全部 IP:–四川–成都
JMiJxK 发表于 2026-5-11 10:45
docker-compose.yml文件中的变量的下划线都被去掉了,配置内容是错误的。

因为这个问题我被困住一晚上,最后还是gpt发现的😭
HkJWg1Lv.1 发表于 5 天前 | 查看全部 IP:–四川–成都
HkJWg1 发表于 2026-6-14 00:20
因为这个问题我被困住一晚上,最后还是gpt发现的😭

其他的都加上了,但是有一个环境变了名称是错的一直没发现
大可米Lv.1 发表于 4 天前 来自手机 | 查看全部 IP:–广东–佛山–高明区
早玩烂球了,没有自己的derp,效果一般般,阿里云买个香港200兆不限量当derp,nginx,🪜都有了,100块钱买个10年的域名,赛博大善人做解析,通过香港的机器穿透到家里做nginx反代,给狐朋狗友开启自己的各种站点用。手机上装个singbox或者clash,配置一个tailscale 节点,配置好路由和内网站点dns,随时随地玩,还不用来回切vpn,最好整个虚拟机当旁路,开启ipv6,整个ss或者socks5节点,配上去,配好路由分流,只要网络有ipv6,就是直连,反正手机移动网络一定是ipv6

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表