很多刚接触 Tailscale 的朋友都会遇到这样一个经典问题:
把家里或宿舍的电脑设为 Exit Node(出口节点)后,连上去虽然能正常上网,但却死活打不开这台电脑所在局域网的其他设备(比如路由器后台、内网 NAS,甚至挂在它背后的校园网资源)。很多人以为只要开启了客户端上的 "Allow LAN access" 就可以了,但其实这是一个非常普遍的误区。今天我们以 Windows 作为 Exit Node 为例,一步步教你把底层的网络通道彻底打通!
为什么连上 Exit Node 无法访问其局域网?
在 Tailscale 的设计中,这是预期行为。原因在于它将两个功能拆分开了:
- Exit Node(出口节点):仅负责接管你的公网流量(即全局代理 0.0.0.0/0)。它默认不会把节点自身的局域网路由暴露给客户端。
- Subnet Router(子网路由器):专门负责打通特定内网网段(比如 192.168.x.x 或 10.x.x.x)的组件。
至于客户端界面的 "Allow LAN access" 开关,它的真实作用是:让你在连上全局代理时,依然能访问你当前身边的局域网(比如身边的打印机),而不是远端的局域网。
解决方案
很简单:将该节点同时配置为 Exit Node 和 Subnet Router。
核心配置步骤(以 Windows 节点为例)
假设你的 Windows 物理机局域网是 192.168.3.0/24,且它的路由器背后还连着庞大的校园网/公司内网(比如 10.0.0.0/8 和 172.16.0.0/12)。
第一步:在 Windows 节点发布混合路由
最新版的 Tailscale 已经支持在 Windows 上直接做子网路由,并会自动尝试开启 IP 转发。
- 点击 Windows 开始菜单,搜索 PowerShell。
- 右键选择“以管理员身份运行”(非常重要!非管理员权限会失败)。
- 复制并执行以下命令,把你需要访问的所有网段和 Exit Node 一并宣告出去:
tailscale up --advertise-exit-node --advertise-routes=192.168.3.0/24,10.0.0.0/8,172.16.0.0/12注:每次运行
tailscale up都会覆盖旧配置,所以要把所有需要的网段写在同一行里。请根据你的实际情况修改 IP 段。
第二步:在控制台批准这条“网线”
出于安全机制,仅仅在客户端发布是不够的,必须由管理员在网页端放行:
- 登录 Tailscale Admin Console。
- 在设备列表中找到这台 Windows 节点,点击右侧的 ... 菜单,选择 Edit route settings。
- 找到 Subnet routes,将你刚刚发布的网段(192、10、172 等)全部勾选开启。
第三步:客户端接收路由
- 图形界面端(Win/Mac/iOS/Android):默认自动接收,直接连接该 Exit Node 即可畅游内网。
- Linux / 命令行端:连接时必须显式加上参数:
sudo tailscale up --exit-node=<IP> --accept-routes进阶排障指南:路由通了但依然连不上?
如果你严格执行了上述步骤,发现 192 网段通了,但某些特定的内网资源(如校园网的 10 段或 172 段)依然打不开,请重点排查以下三大“嫌疑人”:
嫌疑一:Windows 防火墙拦截(最常见)
即使 Tailscale 通道建好了,Windows 自带的防火墙默认会拦截跨网段的转发流量。如果你想访问该网段下的另一台 Windows 电脑,那台目标电脑的防火墙默认会拒绝来自 Tailscale 网段(100.64.x.x)的连接,需要手动在目标机器上放行端口或允许 Ping。
嫌疑二:经典的 172 网段冲突
如果你发现 10 网段能通,唯独 172 网段不通,99% 是因为本地网段冲突。
- iPhone 热点陷阱:苹果手机的热点默认网段就是 172.20.10.x。如果你的客户端连着手机热点,系统会认为 172 就在本地,根本不会把流量交给 Tailscale 隧道。
- Docker 虚拟网卡:Docker 默认占用 172.17.x.x 等网段,极易产生路由冲突。
解决办法:客户端换一个网络环境(如切换到不冲突的 Wi-Fi),或者在宣告路由时,把 172 网段写得更加精确(精确路由优先级更高)。
嫌疑三:DNS 没有走内网解析(打不开域名)
如果输入 IP 能打开内网网页,但输入学校/公司的域名却打不开,说明 DNS 解析走偏了。
解决办法(配置 Split DNS):
- 查出 Windows 节点所在内网的 DNS 服务器 IP。
- 登录 Tailscale 控制台的 DNS 页面,添加 Custom nameserver。
- 填入内网 DNS IP,并务必勾选 Restrict to domain,填入你的内网域名后缀(如 edu.cn)。这样只有内网域名的请求才会发给专用 DNS。
总结:
Tailscale 的强大之处在于其极高的自定义能力。遇到跨网段访问不通的情况,牢记“发布路由 -> 控制台打勾 -> 解决本地冲突 -> 配置 DNS 分流”的排查链路,就能轻松驾驭这把内网穿透的瑞士军刀!
版权属于:soarli
本文链接:https://blog.soarli.top/archives/821.html
转载时须注明出处及本声明。