凌晨两点,内网我在家里的穿透NAS上敲下最后一行配置,浏览器弹出公司内网GitLab的神器登录页。那一刻的内网感觉,比第一次翻墙还爽。穿透这不是神器什么黑客手段,就是内网内网穿透——把藏在路由器后面的设备,安全地暴露到公网上。穿透
传统做法是神器端口映射,但家里宽带没有公网IP,内网运营商把NAT套了好几层。穿透动态DNS也试过,神器没用。内网后来用frp,穿透在阿里云最便宜的神器轻量服务器上跑服务端,家里的树莓派跑客户端,把内网22端口和443端口映射出去。配置文件写清楚,token设好,十分钟搞定。现在我在任何地方都能SSH回家,也能访问NAS的Web界面。
frp的配置文件很直白。服务端frps.ini里指定bind_port,客户端frpc.ini里写server_addr、server_port,然后[[ssh]]段落里local_ip填127.0.0.1,local_port填22,remote_port填6000。启动后,公网服务器的6000端口就指向了家里树莓派的22端口。防火墙放行6000,完事。没有花哨的界面,但稳定得让人放心。我跑了半年,没掉过线。
后来发现更省事的方案:Tailscale。它基于WireGuard,不需要公网服务器,设备之间直接打洞。装完客户端,登录同一账号,所有设备自动组成虚拟局域网。我给每台机器起了好记的名字,比如“home-nas”“office-pc”。SSH直接写主机名就行,不用记IP。速度比frp中转快不少,看NAS里的4K电影不卡顿。缺点是依赖第三方协调服务器,但个人用免费版足够。
ZeroTier也是类似思路,不过配置稍微复杂点。我两个都试过,Tailscale的移动端体验更好,iOS上装完就能用,不需要额外设置。ZeroTier在Linux上偶尔要手动加路由,对新手不太友好。
如果你有公网IP,哪怕动态的,DDNS加端口映射是最简单的。但现实是,大多数家宽早就没了公网IPv4。IPv6倒是有,可公司网络不一定支持。所以内网穿透工具成了刚需。
安全方面不能马虎。frp的token要设复杂点,最好再套一层HTTPS。Tailscale默认加密,但设备丢了要记得在后台撤销授权。我见过有人把frp的dashboard直接暴露在公网,连密码都不设,等于把家门钥匙插在锁上。
成本上,frp需要一台有公网IP的服务器,最便宜的轻量云一年也就几十块。Tailscale免费版支持100台设备,个人用绰绰有余。ZeroTier免费版25台。看自己需求选。
现在我的工作流是这样的:公司电脑装Tailscale,家里NAS也装,随时随地访问文件。frp作为备用通道,万一Tailscale抽风还能切过去。两套方案互不干扰,成本几乎为零。
内网穿透不是什么高深技术,但确实能改变远程工作的体验。不用再把文件传来传去,不用再忍受TeamViewer的卡顿。自己的设备,自己掌控。凌晨两点那次调试成功后,我泡了杯茶,坐在椅子上看着终端里的连接日志,觉得这比打游戏通关还有成就感。