Openwrt-安装tailscale及组网优化

参考文档 在 OpenWrt 上使用 Tailscale - 唐长老日志

[[20251114-PVE安装FRP和Tailscale组网]]
[[20251115-tailscale组网]]

GitHub - chenmozhijin/turboacc: 一个适用于官方openwrt(22.03/23.05/24.10) firewall4的turboacc

文章基于大佬文章参考并结合实践所写.

注意

R2S软路由/硬路由的 CPU 根本跑不动 WireGuard 的高强度加密。 除非你的软路由是x86或别的性能较好设备

为什么放弃是正确的?

  1. 算力差距:

    • Tailscale 使用 ChaCha20 算法加密。

    • 路由器的 CPU(通常是 ARM 架构,如 MT798x 或 IPQ系列)处理加密流量的极限通常就在 20Mbps - 50Mbps (即 2~5MB/s) 左右。一旦跑满,CPU 占用率飙升至 100%,甚至会影响家里其他设备上网。

    • 电脑/NAS CPU(通常是 x86 架构,或者苹果 M 系列)拥有强大的指令集,处理这个速度可以达到 1000Mbps 以上,CPU 占用率可能还不到 5%。

  2. 木桶效应:

    有 400M 的宽带,有高性能的 NAS,有高端笔记本。但是让一个“孱弱”的路由器充当了所有流量的加密解密网关。它瞬间成了那个最短的木板,把速度锁死在了 3MB/s。


最佳替代方案:让终端自己跑 (Client-to-Site)

既然目标主要是让笔记本电脑访问 NAS,最完美的方案是去中心化

1. 笔记本电脑直接安装 Tailscale 客户端

不要让路由器做中转了,直接在 Windows 上运行 Tailscale。

  • 优势:

    • 利用电脑 CPU: 笔记本的 CPU 极其强大,轻松跑满 400M 带宽。

    • 路由器解脱: OpenWrt 只需要做它最擅长的事——转发 UDP 数据包(NAT)。这对于路由器来说零负载,因为它不需要拆包解密。

    • IPv6 直连: 既然 OpenWrt 已经配置好了 IPv6 中继,笔记本直接获得的 IPv6 地址可以直接和 NAS 建立 P2P 连接。

2. 访问方式

在笔记本上开启 Tailscale 后:

  • 访问 NAS IP: 直接访问 123.123.123.123 (Tailscale IP)。

  • 访问内网 IP: 因为 NAS 已经开启了子网路由 (--advertise-routes=192.168.50.0/24),笔记本上的 Tailscale 会自动学习到这条路由。直接访问 192.168.50.201 也是通的


进阶方案:如果家里其他“终端”也要访问 NAS

如果家里的电视、打印机(无法安装 Tailscale 的设备)也需要访问异地 NAS,需要一个高性能的子网路由网关

不要用 OpenWrt 路由器做网关,用局域网下别的设备, 例如PVE中的UbuntuServer!

  • 如果是跑在 x86 机器或者高性能盒子上的 Docker,它的性能远超路由器。

  • 做法:

    1. 在 Ubuntu 上开启 IP 转发和子网路由 (--advertise-routes=192.168.6.0/24)。

    2. 在 OpenWrt 上添加一条静态路由:

      • 目标:192.168.50.0/24

      • 网关:UbuntuServer 的局域网 IP

  • 效果: 流量路径变为 电视 -> OpenWrt(指路) -> Ubuntu(加密) -> 互联网 -> NAS。性能会有巨大提升。

配置

配置过程

1. 安装 Tailscale

需要先在软件包中安装 Tailscale, tailscale up 需要设置 --netfilter-mode=off 来禁用tailscale的防火墙设置。

这一步直接通过软件包商店安装就行, 或查看参考文章进行安装。

Tailscale up 命令示例

tailscale up --accept-routes --accept-dns=false --advertise-exit-node --advertise-routes=192.168.6.0/24 --netfilter-mode=off

这个命令用于启动 Tailscale,并配置一些特定的选项。以下是每个选项的解释:

  • tailscale up: 启动 Tailscale。
  • --accept-routes: 接受其他节点通过 Tailscale 网络提供的路由。
  • --accept-dns=false: 不接受 Tailscale 网络提供的 DNS 设置。
  • --advertise-exit-node: 将当前节点作为出口节点进行广告,使其可以作为其他节点的互联网出口。
  • --advertise-routes=192.168.40.0/24: 将当前节点的 192.168.40.0/24 子网进行广告,使其可以通过 Tailscale 网络访问。
  • --netfilter-mode=off: 关闭 netfilter 模式,不对流量进行过滤。

这个命令配置了 Tailscale 以便在网络中共享特定的路由和出口节点,同时不接受外部的 DNS 设置。
image
并且在管理页面允许访问:
image

2. 添加接口

通过 LuCI 创建一个新的非托管接口:网络→接口→添加新接口

  • 名称:tailscale

  • 协议:Unmanaged(不配置协议)

  • 设备:tailscale0

image

3. 创建防火墙

在 LuCI 中创建新的防火墙区域:网络→防火墙→区域→添加

  • 名称: tailscale

  • 入站数据: ACCEPT (default)

  • 出站数据: ACCEPT (default)

  • 转发: ACCEPT

  • IP 动态伪装: on

  • MSS 钳制: on

  • 涵盖的网络: tailscale

  • 允许转发到目标区域:选择 LAN(以及其他内部区域或 WAN,如果计划使用此设备作为出口节点)

  • 允许源区域转发:选择 LAN(以及其他内部区域或如果不想将 LAN 流量路由到其他 Tailscale 主机,则留空)

image

在连接跟踪设置 TAB中,允许“无效”流量: on (测试:只有开启这个开关,Tailscale从外部才能访问)

image

单击保存并应用

到这一步, 以及配置成功, 但是还不能和异地连接.

强制唤醒连接

第一步:强制唤醒连接 (Wake up)

OpenWrt 现在的状态是“昏睡”的。需要踢它一脚,强制它去和异地设备握手。

iStoreOS 的终端 (SSH) 里,输入:ping Tailscale中另一端设备的地址 ,并等待一会

ping 123.123.123.123
  • 观察: 它能通吗?

    • 如果 通了:请立即再次输入 tailscale status,看看 nas 的状态是不是变成了 active,并且后面有没有出现 offers: ...

    • 如果 不通:说明 OpenWrt 连 NAS 的 Tailscale 内网 IP 都连不上,防火墙或网络有问题。

请 SSH 登录iStoreOS 的终端 (SSH) ,输入:

tailscale status

Tailscale 为了不弄乱 OpenWrt 原本的路由设置(防止冲突),它非常聪明地把自己的路由规则写在了一张“私有路由表”里(通常是 table 52)。

如何看到这条“隐形”的路由?

请在 iStoreOS 终端里输入以下命令,就能看到它了:


ip route show table 52

或者查看所有表的路由:

ip route show table all | grep 192.168.50

最后在笔记本电脑浏览器中输入nas的局域网地址,等待一会就能访问。

效果

配置成功后,就可以在路由和子网的任意一台机器访问到Tailscale中的机器,Tailscale子网中的机器。

路由表

image

组网优化

设置upnp宣告速度

设置为100000,
这里的“下载速度”和“上传速度”并不是用来限制你路由器总网速的(不是限速功能),而是“宣告”功能。

它的具体含义:

  1. 信息通报: 当局域网内的设备(例如迅雷、BitTorrent 下载软件、Xbox/PS5 游戏机)通过 UPnP 协议向路由器申请端口映射时,它们有时会顺便问路由器一句:“咱们的宽带有多大?”

  2. 影响应用策略: 路由器会把这里填写的数值回复给这些软件。

    • 如果填得太小(比如截图里的默认值 1024KB/s,约等于 8Mbps),某些“老实”的软件可能会以为你家网速很慢,从而主动降低自己的连接数或上传下载速率,以防止网络拥堵。

    • 如果填得很大(或者填 0),软件就会放开手脚跑满带宽。
      总结: 目前的默认值(1024 和 512)对于光纤宽带来说太小了。虽然现代大多数软件可能会忽略这个参数自己测速,但为了避免某些软件“误判”导致降速,建议把这两个数字改大,填成实际带宽的数值即可。

image

posted @ 2025-11-19 15:04  舟清颺  阅读(665)  评论(0)    收藏  举报