![]()
去年我在机场候机厅改了3小时代码,回来发现GitHub提交记录里多了条来自保加利亚的登录提醒。不是被黑了——是机场WiFi的透明代理在搞事情。
从那以后,我的所有移动设备都强制走一条加密隧道回家。不是传统VPN那种笨重方案,是Tailscale的exit node(出口节点)。这功能藏在设置里三年,大部分用户只拿它连NAS,没意识到它能把整个设备的网络流量打包寄回自家路由器。
为什么普通VPN不够用了
传统VPN的逻辑是"连上服务器,所有流量走那边"。但家用场景里,这设计很拧巴:你想安全,但不想把刷抖音的流量也绕去新加坡;你想隐私,但游戏延迟飙到200ms直接没法玩。
Tailscale的聪明之处在于分层。它的mesh网络(网状网络)默认只加密节点之间的通信——你的笔记本连家里的NAS,这段是密封的;但你去访问百度,流量还是从本地网络直接出去,裸奔。
这对家庭内网访问够用了。可一旦离开家,问题就来了:机场、酒店、星巴克的WiFi,管理员能直接看到你的浏览目标。不是内容加密就能解决的——SNI(服务器名称指示)字段会明文暴露你在访问哪个网站,DNS查询更是裸奔。
exit node就是这时候用的。开启后,设备的所有流量——包括原本走本地网络的互联网访问——都会被塞进Tailscale的加密隧道,一直跑到你家那台当exit node的设备上,再从你家宽带出去。
相当于你人坐在机场,但网络身份变成了"我家里的路由器"。咖啡馆的WiFi管理员只能看到一堆加密的Tailscale流量,像看一个上了锁的铁皮罐头。
我的配置:一台软路由,三台设备
我的exit node是台J4125软路由,常年开机,功耗6瓦。Tailscale的安装就一行命令,比Docker还省事。
关键配置在Tailscale后台的ACL(访问控制列表)文件里。默认情况下,exit node对全网开放,但我加了条规则:只有我的三台主力设备(工作笔记本、iPad、备用手机)能用它。家里其他人的设备走普通mesh,互不干扰。
这设计有个意外好处:流量审计。所有从我设备出去的请求,在软路由上都能查到目的地和时间戳。上个月我发现某App凌晨三点还在后台连新加坡的服务器,直接把它网络权限掐了。
延迟方面,我测过几个场景。北京机场连我家联通宽带,exit node模式下访问GitHub比直连慢40ms,但比某商业VPN快三倍;刷B站几乎没感知,因为视频流本来就有缓冲机制。真正难受的是实时游戏——FPS类建议切回普通模式,Tailscale的DERP中继(备用打洞服务器)在高压下会抖。
比"暴露服务"更隐蔽的用法
很多Tailscale教程停在"远程访问NAS",那是Funnel(漏斗)的功能。exit node的用法更个人化,也更少被提及。
比如我出差时常用的一个场景:酒店WiFi需要手机号认证,且限制每台设备一个账号。我的做法是,笔记本连WiFi完成认证,然后开热点给手机,手机走exit node。这样手机的所有流量对酒店网络来说,都"伪装"成了笔记本的Tailscale加密流,绕过了设备数量限制。
另一个用法是绕过本地DNS劫持。某些公共网络会污染特定域名的解析结果,exit node强制所有DNS查询走我家里的AdGuard Home,干净得多。
还有个更边缘的案例:我有个朋友做跨境电商,需要固定IP登录某些平台。他的exit node搭在阿里云轻量服务器上,月费24块,比商业静态IP代理便宜一个数量级。Tailscale的IPv4出口地址固定,平台风控认这个。
CGNAT用户的隐形福利
国内大部分家庭宽带是CGNAT(运营商级网络地址转换),没有公网IPv4。这意味着传统VPN服务器方案根本搭不起来——你连自家路由器都找不着。
Tailscale的NAT穿透(打洞)机制在这里派上用场。它优先尝试直连,失败时走DERP中继,全程不需要公网IP。我的软路由在移动大内网里,但exit node功能完全正常,延迟比直连多20ms左右,可接受。
这里有个细节:exit node和subnet router(子网路由)容易搞混。后者是让Tailscale设备访问你家整个内网,比如没装Tailscale的打印机;前者是让单个设备的所有流量从你家里出去。两者可以叠用,但ACL规则要写清楚,不然会出现环路。
我踩过的坑:曾经同时开了exit node和subnet router,结果笔记本连exit node后,想访问家里的打印机——流量从笔记本→exit node(软路由)→subnet router(还是软路由)→打印机,绕了一圈其实没事,但某次我手贱在软路由上开了反向路径过滤,直接把包丢了。调试了俩小时。
什么时候不该用它
exit节点不是万能药。它的本质是"把你不信任的网络,换成你信任的家的网络",但家的网络也有局限。
上行带宽是硬瓶颈。我家联通300M下行/30M上行,exit node模式下,我设备的出站速度被锁死在30M。看视频够,传大文件痛苦。有次我在客户现场传2GB的演示视频,忘了切模式,走了半小时。
地理限制也存在。我的exit node物理位置在北京,所以访问某些按地区分CDN的网站时,会被调度到北京节点。人在上海出差,访问腾讯系服务反而比直连慢——流量要先北上再南下。
最隐蔽的风险是家庭网络的攻击面。以前我的笔记本在机场被攻破,最多损失笔记本上的数据;现在笔记本连exit node,相当于在攻击者和我的NAS、智能家居之间搭了座桥。所以我给exit node设备单独划了VLAN,ACL规则里禁止它访问内网管理接口。
安全是个系统问题,不是单个功能能解决的。
配置清单:从0到能用
如果你看完想试试,这是我的最小可行配置。
硬件:任意能跑Linux的设备,树莓派、旧笔记本、软路由都行。我用J4125是因为它有双网口,顺便当主路由。
安装:curl -fsSL https://tailscale.com/install.sh | sh,然后tailscale up --advertise-exit-node。这行命令让当前设备宣告自己可作为exit node。
授权:在Tailscale控制台→Machines页面,找到这台设备,点击"Edit route settings",勾选"Use as exit node"。
客户端:手机或电脑的Tailscale App里,点击设备列表右上角的"…",选择"Use exit node",选你家那台。Done。
验证:打开whatismyipaddress.com,确认显示的IP是你家宽带地址,而非当前所在网络的IP。
进阶:在ACL文件里加条规则,限制哪些用户/设备能用这个exit node。我的配置长这样:
// 只允许我的tag:personal设备使用exit node "acls": [ { "action": "accept", "src": ["tag:personal"], "dst": ["autogroup:internet:*"], }, ]
这条的意思是:打上personal标签的设备,可以通过exit node访问互联网。其他设备连不上。
最后一步:在客户端设置里,把"Allow LAN access"关掉。不然你的设备会同时连酒店WiFi的内网和exit node,出现奇怪的分流问题。
写完这篇时,我查了下Tailscale的官方文档。exit node功能2020年就上线了,但直到2023年才在App里加了图形化开关。之前全靠命令行,难怪用的人少。
你现在用的远程方案是什么?如果是传统VPN,切到Tailscale后最直观的感受是什么——延迟、配置复杂度,还是突然发现家里上行带宽原来这么少?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.