网络穿透软件
去年冬天我在老家过年,网络想从客厅的穿透NAS里拷几部电影到笔记本上,结果死活连不上。软件家里宽带是网络运营商送的光猫,默认开了NAT,穿透外网根本进不来。软件当时试了端口映射,网络折腾半天才发现光猫的穿透管理后台被运营商锁了,超级密码早改了。软件那一刻我意识到,网络普通用户想从外网访问自己家里的穿透设备,比想象中难得多。软件
网络穿透软件就是网络解决这类问题的。它的穿透核心任务只有一个:让两个原本互相看不见的设备,穿过层层路由和防火墙,软件建立直接连接。听起来简单,做起来麻烦。因为绝大多数家庭网络都处在NAT后面,设备没有公网IP,外面的请求进不来,里面的请求出去后也找不到回来的路。
早期大家用端口映射,手动在路由器上把某个端口指到内网某台机器。这招在自家路由器能管理的时候还行,一旦遇到运营商级NAT就彻底没戏。后来有了UPnP,软件可以自动请求路由器开端口,但很多路由器默认关闭UPnP,或者开了一阵子又莫名其妙失效。我见过一台华硕路由器,UPnP租约到期后不续,端口就断了,得重启路由器才恢复。
真正让穿透变得靠谱的是打洞技术。原理不复杂:两台设备先通过一台公网服务器交换各自的公网地址和端口,然后同时向对方发包。NAT设备看到内部设备主动往外发,就会在映射表里开一个临时通道,对方的包正好从这个通道进来。这个过程叫UDP打洞,成功率取决于NAT类型。对称型NAT最难搞,因为每次向外请求都会分配不同的端口,打洞基本失败。我测过十几种家用路由器,全锥型NAT打洞成功率能到九成以上,对称型直接掉到两成。
打洞失败怎么办?那就走中继。数据不直接传了,全部经过公网服务器转发。速度受服务器带宽限制,但至少能连上。Tailscale和ZeroTier这类软件就是打洞加中继的组合拳。它们会先尝试直连,不行再切中继。我用Tailscale远程连家里的群晖,大部分时候能打洞成功,延迟在30毫秒左右,看4K视频没问题。偶尔打洞失败走中继,延迟飙到200毫秒,画面就卡了。
还有一类工具走的是反向代理路线,比如frp。它需要你有一台公网服务器,在内网机器上跑客户端,主动连到服务器,把内网端口映射到服务器上。外网访问服务器某个端口,流量就转到内网。这种方式稳定,不依赖NAT类型,但前提是你得有公网服务器。我拿一台腾讯云轻量服务器做frp服务端,把家里的RDP端口映射出去,用了大半年,没掉过线。缺点是所有流量都走服务器,带宽成本自己扛。
选穿透软件得看场景。临时远程桌面,Tailscale装完就能用,零配置。要长期稳定暴露某个服务,frp加公网服务器更可靠。纯内网环境,比如公司内网穿透到家里,ZeroTier的虚拟局域网模式更合适,它把两台设备拉进同一个二层网络,像插在同一台交换机上。我试过用ZeroTier连老家和城里的两台机器,互相ping延迟稳定在15毫秒,打游戏都够用。
安全方面别偷懒。穿透软件把内网设备暴露到公网,等于在墙上开了扇门。Tailscale默认走WireGuard加密,frp可以配TLS,但很多人图省事直接明文跑。我见过有人把frp的RDP端口暴露在公网,三天后服务器就被爆破登录了。至少加个强密码,能上密钥认证就别用密码。
现在我家里的网络结构是:光猫桥接,软路由拨号拿公网IP,但IPv4地址每隔几天就变。我在软路由上跑DDNS,把域名指向当前IP,再用frp把几个关键服务映射出去。Tailscale作为备用通道,装在手机和笔记本上,走到哪都能连回内网。两套方案互为备份,哪条路断了都不至于抓瞎。
穿透软件不是万能药。它解决的是连通性问题,不解决带宽和延迟。打洞成功不代表速度就快,中继稳定不代表延迟就低。搞清楚自己的网络环境,选对工具,比盲目装一堆软件管用得多。