简体中文 | 繁體中文 | English |
一句话搞定内网穿透:frp、rathole、NPS、ngrok到底谁更适合你?

一句话搞定内网穿透:frp、rathole、NPS、ngrok到底谁更适合你?

xiaopao
2026-06-18 / 0 评论 / 1 阅读 / 正在检测是否收录... ===> PDD优惠福利券,千万好物,不要错过 <===

想把家里 NAS、树莓派或自建服务轻松放到外网,却怕配置太麻烦、性能不稳或费用爆表?这篇文章直接告诉你,用最省事、最省钱、最省脑细胞的方式把内网服务搬到公网,让你省去一堆抓狂的调参过程。

先说结论:不同需求选不同工具

大家普遍以为越贵越好,或者开源工具一定慢,这都是误区。真正决定你该选哪个的,是你要暴露几个端口、设备资源有多紧张、还有没有预算这几个关键点。

核心概念拆解(第一层)

  • 内网穿透的本质:把一根「自来水管」(本地服务)搬到「公共水塔」(公网服务器)上,水塔把水(流量)再倒回你的管子里。
  • 两方角色:公网服务器(中转站)和内网客户端(要被倒出的机器)。
  • 常见需求:只要一条隧道(SSH),还是要多端口、多协议、甚至要加密的全套方案。

四大工具的核心特性(第一层对比)

特性frpratholeNPSngrok
协议支持TCP/UDP/HTTP/HTTPS/HTTPS+TLSTCP/UDP,支持TLS/Noise几乎全部(TCP/UDP/HTTP/HTTPS/SOCKS5)HTTP/HTTPS/TCP
资源占用中等(≈5 MiB)极低(≈0.5 MiB)中等偏上(≈8 MiB)中等(受云端节点限制)
部署难度需要写两份配置,门槛一般配置最简,单文件即可提供 Web 管理面板,最友好只下载二进制或用 SaaS,几秒搞定
安全机制Token + TLSToken + 可选 Noise/TLSToken + IP 白名单 + Web UI 控制官方 TLS + 付费版支持 OAuth/SAML
是否免费完全免费完全免费完全免费(自建)免费版功能受限,付费解锁
适用场景需要多协议、复杂负载均衡资源受限设备(路由器、树莓派)想要可视化管理、团队共用临时演示、快速原型、外部客户访问

把误区抛到一边,真正决定选型的三大因素

  • 设备资源:如果你的客户端只有 256 MiB 内存(比如家里路由器),选 rathole,省内存不抢系统肥。
  • 端口数量 & 协议多样性:要同时映射 SSH、Web、数据库,且希望同一个公网端口复用多服务,frp 的 vhost_http_port 能搞定。
  • 运维成本:如果你不想写配置文件,只想点几下就开通,用 ngrok 免费版或付费版最省事;如果团队需要审计、权限分配,NPS 的 Web UI 能省掉大量手动检查。

实战示例:把家庭 NAS 的 SSH 暴露出来

下面分别用四个工具展示「只要一行命令」的思路,帮助你快速挑选。

  1. frp:
    # 服务器端 frps.toml
    [common]
    bind_port = 7000
    token = "my_secret"
    
    [ssh]
    bind_port = 6000
    

    # 客户端 frpc.toml
    [common]
    server_addr = "myvps.com"
    server_port = 7000
    token = "my_secret"
    
    [ssh]
    type = "tcp"
    local_port = 22
    remote_port = 6000
    

    运行 ./frps -c frps.toml./frpc -c frpc.toml 即可。
  2. rathole:
    # server.toml
    [server]
    bind_addr = "0.0.0.0:2333"
    [server.services.nas_ssh]
    token = "my_secret"
    bind_addr = "0.0.0.0:5202"
    

    # client.toml
    [client]
    remote_addr = "myvps.com:2333"
    [client.services.nas_ssh]
    token = "my_secret"
    local_addr = "127.0.0.1:22"
    

    运行 ./rathole server.toml./rathole client.toml,外网 myvps.com:5202 直通 NAS。
  3. NPS:
    # nps 配置(省略 UI 步骤)
    # 在 Web 面板里点「添加服务」→「SSH」→「端口 6000」
    # 客户端下载 nps client,填写 server_ip、token、local_ip:22
    

    一键开关,适合多人共享同一个服务器。
  4. ngrok:
    # 注册账号后获取 auth token
    ngrok config add-authtoken YOUR_TOKEN
    ngrok tcp 22
    

    ngrok 会返回类似 tcp://0.tcp.ngrok.io:12345 的地址,直接 SSH 即可。

到底选哪一个?让我们把情景化一下

  • “我只有一块旧路由器,想把家里媒体库的 32400 端口外放,且不想占太多内存。” → 选 rathole,二进制小、CPU 占用低。
  • “我在公司内部有 20 台机器需要统一映射到同一个公网 IP,想让运维同事通过 UI 管理。” → 选 NPS,自带面板、权限细分。
  • “我是一名自由开发者,要给客户演示一个用 React 写的 web 项目,想 5 分钟内搞定。” → 选 ngrok,下载即用。
  • “我准备在自家服务器上部署多个微服务,需要 HTTP/HTTPS 复用、流量统计、零成本。” → 选 frp,功能最全且社区活跃。

小技巧:组合使用提升弹性

如果你担心公网服务器单点故障,完全可以把 frp 当主隧道,rathole 用作备份;或者在不同网络环境下切换 ngrok 的免费隧道与自建的 frp。

之前我们聊过如何在 cloudflare 中配置 DNS 让内网服务更安全,今天可以把这些技巧和上述四个工具结合起来,形成“一键回滚、随时切换”的方案,详情可以去frp 项目rathole 项目看看源码。

结语 & 互动

内网穿透其实没有什么神秘的黑科技,只是把「本地的水管」搬到「公共的水塔」而已。选对工具,你就省下时间、流量和金钱。下面把你最想用的方案写在评论区,或者吐槽一下自己的“穿透踩坑”经历,咱们一起聊聊如何更顺畅地把家里服务器搬上云!

0

评论 (0)

取消