游客发表
上周帮朋友调一个微信公众号的免费本地回调,折腾到凌晨两点。内网问题不在代码,穿透在于微信服务器死活访问不到他笔记本上的工具Node服务。他问我有没有不花钱的下载办法把内网端口暴露出去,我直接甩了三个工具过去,免费十分钟搞定。内网这种事其实很常见——你在本地跑了个Web服务、穿透数据库、工具或者SSH,下载想让外网也能连进来,免费但既没有公网IP,内网又不想掏钱买云服务器。穿透内网穿透就是工具干这个的。
先说最省事的下载:ngrok。官网注册个账号,下载二进制文件,一行命令 ngrok http 3000,它立刻给你一个 https://xxxx.ngrok.io 的地址,转发到你本地的3000端口。免费版够用,但有两个坑:一是每次重启域名都会变,二是连接数有限制,偶尔会弹一个中间页。适合临时演示、调试webhook。我那个朋友就是用ngrok把微信回调跑通的。下载地址:ngrok.com/download,选对应系统解压就行。
如果你想要固定域名,又不想付费,frp 是首选。这东西是国人开发的,开源在GitHub上。但它需要你有一台带公网IP的服务器——比如腾讯云轻量应用服务器,最便宜的那种,一年几十块。服务端跑 frps,客户端跑 frpc,配置文件里写清楚本地端口和远程端口。好处是稳定、可控、支持TCP/UDP/HTTP/HTTPS。坏处是门槛比ngrok高一点,得懂点Linux。我自己的博客就是frp穿透到家里树莓派上的,跑了两年没掉过线。GitHub搜 fatedier/frp,releases页面直接下。
没有公网服务器怎么办?ZeroTier 或者 Tailscale 这类虚拟组网工具可以曲线救国。它们不是传统的内网穿透,而是把你的设备拉进一个虚拟局域网。装完客户端,加入同一个网络ID,每台设备会分到一个虚拟IP。你在外地用这个IP就能访问家里的NAS、远程桌面、甚至打局域网游戏。免费版支持100台设备,个人用绰绰有余。Tailscale基于WireGuard,速度比ZeroTier快一些,但ZeroTier的网页管理后台更直观。两个都下下来试试,哪个连得快用哪个。
还有个冷门但好用的:localtunnel。一行命令 npx localtunnel --port 8080,不需要注册,直接给你一个 https://xxx.loca.lt 的地址。缺点是偶尔抽风,而且第一次访问会要求你输入密码(其实就是你公网IP),体验不如ngrok。适合快速临时用一下,比如给同事展示个本地页面。
下载渠道提醒一句:尽量去官网或者GitHub releases,别在第三方下载站乱点。我见过有人下ngrok下到带挖矿脚本的版本。另外,免费工具都有各自的限制——ngrok免费版限制8小时连接时长,frp需要自备服务器,ZeroTier依赖官方协调服务器。根据你的场景选:临时调试用ngrok或localtunnel,长期稳定用frp,设备互联用Tailscale。没有哪个是完美的,但组合起来基本能覆盖90%的需求。
最后说个实际案例。我另一个做硬件的朋友,需要在客户现场调试设备,但客户网络没有公网IP。他在设备上跑了个frpc,连到公司一台阿里云服务器上,然后所有工程师都能通过公司服务器访问那台设备。省了买4G工业路由器的钱,也省了配VPN的麻烦。工具本身不复杂,关键是搞清楚你的网络拓扑——谁有公网IP,谁需要被访问,流量往哪走。想明白这个,上面任何一个工具都能帮你把事办了。
友情链接