返回列表 发布新帖

[交流讨论] NAS内网穿透-Tailscale让NAS虚拟局域网网关

534 0
发表于 2026-3-31 15:12:23 | 查看全部 阅读模式 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 管理后台

---


评论

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

本版积分规则

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