家里有台 NAS、树莓派或者自建服务器,出门在外想连回去?公司内网想调试微信公众号/小程序 WebHook?这就涉及一个经典问题——内网穿透。
市面上内网穿透方案不少:花生壳、ngrok、FRP、NPS……今天重点介绍 NPS,一款轻量级、高性能、功能强大的内网穿透代理服务器,在全网拥有 30k+ Star,是目前最受欢迎的 Go 语言内网穿透方案之一。
什么是 NPS?
NPS(全称 nps)是一个用 Go 语言编写的内网穿透工具,采用 服务端(Server)+ 客户端(Client)架构:
- 服务端部署在有公网 IP 的云服务器上
- 客户端部署在内网机器上(如树莓派、NAS、公司电脑)
- 服务端和客户端之间建立隧道连接,将内网服务映射到公网

NPS vs 其他方案
| 对比维度 | NPS | FRP | 花生壳 | ngrok |
|---|---|---|---|---|
| 开发语言 | Go | Go | 闭源 | Go |
| Web 管理界面 | ✅ 自带,功能完整 | ✅ (frp v2+ 有 Dashboard) | ✅ 官方后台 | ❌ 需额外配置 |
| 协议支持 | TCP/UDP/HTTP/HTTPS/SOCKS5/P2P | TCP/UDP/HTTP/HTTPS | TCP/HTTP | TCP/HTTP |
| 多用户支持 | ✅ 服务端支持多用户 | ❌ | ❌ | ❌ |
| 系统服务安装 | ✅ 一键安装 | ✅ | ✅ | ❌ |
| 流量统计 | ✅ 完备的流量/带宽显示 | ✅ | ❌ 免费版无 | ❌ |
| 免费使用 | ✅ 完全开源免费 | ✅ 完全开源免费 | 🟡 免费版限制多 | 🟡 自建 ngrok 复杂 |
核心功能
NPS 支持多种代理模式,覆盖几乎所有内网穿透需求:
1. TCP 隧道
最常用的模式。将一个公网端口映射到内网服务的端口:
- SSH 远程连接内网服务器
- 远程桌面连接
- 内网 Web 服务映射出去
2. UDP 隧道
支持 UDP 协议转发,如内网 DNS 解析、游戏联机等。
3. HTTP/HTTPS 代理(域名代理)
将内网网站的流量通过域名转发出去,是微信公众号/小程序开发调试的神器。
4. SOCKS5 代理
建立一条内网代理通道,在外面像在内网一样访问所有资源。
5. P2P 穿透
通过打洞实现点对点连接,流量不经过中继服务器,速度更快。
特点与优势
- 全平台兼容:Linux、Windows、macOS、群晖等,均支持一键安装为系统服务
- 完整的 Web 管理面板:创建客户端、配置隧道、查看流量、实时带宽——全在浏览器里搞定
- HTTPS 集成:支持将后端代理和 Web 服务自动转为 HTTPS,支持多证书
- 功能全面:缓存、压缩、加密、流量限制、带宽限制、端口复用,该有的都有了
- 域名解析:支持自定义 Header、404 页面、Host 修改、站点保护、URL 路由、泛解析
- 多用户系统:服务端支持多用户注册使用,可以给别人开账号
快速部署
服务端(公网服务器)
# 下载服务端(以 Linux amd64 为例)
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz
# 安装为系统服务
sudo ./nps install
# 启动
sudo nps start
启动后访问 服务器IP:8080 进入管理面板。
默认账号密码:admin / 123(生产环境务必修改)。
关键配置文件在 /etc/nps/nps.conf,可修改端口、密码等:
| 参数 | 说明 |
|---|---|
| web_port | Web 管理端口(默认 8080) |
| web_password | 管理面板密码 |
| web_username | 管理面板账号 |
| bridge_port | 客户端通信端口(默认 8024) |
| http_proxy_port | HTTP 代理监听端口 |
| https_proxy_port | HTTPS 代理监听端口 |
注意:如果服务器有防火墙,需要放行 Web 管理端口(8080)、客户端通信端口(8024)以及你配置的隧道端口。
客户端(内网机器)
# 下载客户端
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
tar -zxvf linux_amd64_client.tar.gz
# 连接服务端(在管理面板中新增客户端获取命令)
./npc -server=你的服务器IP:8024 -vkey=密钥 -type=tcp
连接成功后,在 Web 管理面板中配置对应的穿透隧道即可。
典型案例
案例一:外网 SSH 连接内网服务器
- 服务端 Web 管理 → TCP 隧道 → 新增
- 服务端端口:设置一个空闲端口(如 2222)
- 目标 IP/端口:内网机器的 SSH 地址(如 192.168.1.100:22)
- 防火墙放行 2222 端口
- 外网执行:
ssh user@服务器IP -p 2222
案例二:微信公众号本地调试
- NPS 配置域名代理,将内网的开发服务器映射出去
- 将域名填入公众号的 Web 白名单
- 本地修改代码后,公众号请求直接到达本地环境,无需部署
案例三:远程访问内网 NAS
- 配置一条 TCP 隧道,将 NAS 的管理面板端口映射到公网
- 外网直接访问
服务器IP:映射端口管理 NAS
局限性
- 需要一台公网服务器:这是 NPS 最大的门槛,你需要一台有公网 IP 的云服务器来架设服务端
- 流量经过中转:非 P2P 模式下,所有流量都经过中继服务器,对服务器带宽有要求
- 项目停更风险:该项目近期更新频率较低,但功能已经非常成熟稳定
不过话说回来,你都要内网穿透了,确实需要一台公网服务器做跳板。NPS 的轻量级特性让它可以跑在 1 核 1G 的最低配云服务器上,一台 30 块钱的轻量云就够用。
总结
NPS 是目前最优秀的内网穿透工具之一,相比 FRP 拥有更完整的 Web 管理面板,相比商业解决方案完全免费开源。如果你有内网穿透的需求,NPS 是非常值得考虑的方案。
项目地址:https://github.com/ehang-io/nps
官方文档:https://ehang-io.github.io/nps/















cqlbgzs@163.com 1年前0
d好879445037@qq.com 2年前0
购买了 无法下载Alexcc 3年前0
强大Alexcc 3年前0
看不了教程Alexcc 3年前0
雷刺下载Alexcc 3年前0
下载Alexcc 3年前0
下载dsa456159 3年前0
下载