家里电脑没公网IP?需要远程访问内网服务?frp配置太复杂?想要一个有Web管理界面的内网穿透工具?
今天要介绍的 NPS,是GitHub上拥有 3.4万+ Star 的国产内网穿透工具。支持TCP/UDP/HTTP/HTTPS协议,Web管理界面简单易用,性能强劲,完全免费开源,是frp、ngrok的完美替代品!
什么是NPS?
NPS(NATbyPass Server)是一款轻量级、高性能的内网穿透代理服务器,支持几乎所有流量转发,可用于访问内网网站、SSH访问、远程桌面等场景。
核心优势:
- 🌐 全协议支持 - TCP/UDP/HTTP/HTTPS/SOCKS5全覆盖
项目地址: https://github.com/ehang-io/nps
官网文档: https://ehang.io/nps/documents
核心特性
1. 多协议支持
支持的协议:
| | |
|---|
| HTTP/HTTPS | | |
| TCP | | |
| UDP | | |
| SOCKS5 | | |
| KCP | | |
2. Web管理界面
功能特性:
- 客户端管理:查看在线客户端、流量统计
- 隧道管理:创建、编辑、删除隧道
- 域名管理:绑定自定义域名
- 流量控制:限速、限流量
- 权限管理:多用户、分组管理
- 实时监控:流量图表、在线状态
操作简单:
3. 高级功能
流量加密:
- 支持TLS加密传输
- 防止数据被窃听
- 保护敏感信息
访问控制:
- IP白名单/黑名单
- 端口限制
- 客户端鉴权
- 域名绑定验证
负载均衡:
- 多客户端负载
- 自动故障转移
- 提升服务可用性
快速上手
服务端部署
Linux一键安装:
# 下载安装脚本
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
# 解压
tar -xzvf linux_amd64_server.tar.gz
# 安装
cd nps
sudo ./nps install
# 启动
sudo nps start
访问Web界面:
默认地址:http://服务器IP:8080
默认账号:admin
默认密码:123
首次登录后请立即修改密码!
Docker部署:
docker run -d \
--name nps \
--net=host \
ffdfgdfg/nps
客户端配置
下载客户端:
Windows: npc.exe
Linux: npc
Mac: npc_darwin
方式1:使用配置文件:
[common]
server_addr=your-server-ip:8024
conn_type=tcp
vkey=your-client-key
auto_reconnection=true
方式2:使用命令��:
./npc -server=your-server-ip:8024 -vkey=your-client-key
Windows后台运行:
# 安装服务
npc.exe install -server=ip:8024 -vkey=key
# 启动服务
npc.exe start
创建HTTP隧道
Web界面操作:
1. 登录NPS Web管理 → 客户端
2. 添加客户端 → 获取验证密钥
3. 隧道管理 → 添加 → HTTP隧道
- 客户端:选择刚创建的
- 服务端端口:80
- 内网目标:127.0.0.1:8080
- 自定义域名:blog.yourdomain.com
4. 配置域名解析:blog.yourdomain.com → 服务器IP
5. 启动客户端连接
6. 访问 http://blog.yourdomain.com
实际应用场景
场景1:远程访问家庭NAS
需求:在公司访问家里的NAS文件。
配置:
隧道类型:HTTP
内网目标:192.168.1.100:5000(NAS地址)
服务端端口:80
域名:nas.yourdomain.com
访问:http://nas.yourdomain.com
安全建议:
- 启用HTTPS(443端口)
- 设置IP白名单(只允许公司IP)
- NAS开启二次验证
场景2:SSH远程连接
需求:远程SSH到家里的Linux服务器。
配置:
隧道类型:TCP
内网目标:127.0.0.1:22
服务端端口:2222
客户端连接:
ssh -p 2222 user@your-server-ip
场景3:内网API接口调试
需求:微信支付回调、第三方API调试。
配置:
隧道类型:HTTP
内网目标:127.0.0.1:3000(本地开发服务器)
域名:dev.yourdomain.com
微信配置回调地址:
https://dev.yourdomain.com/api/wechat/callback
优势:
场景4:远程桌面访问
需求:远程控制家里的Windows电脑。
配置:
隧道类型:TCP
内网目标:127.0.0.1:3389(Windows远程桌面端口)
服务端端口:3389
Windows远程桌面连接:
your-server-ip:3389
场景5:内网SOCKS5代理
需求:通过家里网络访问特定资源。
配置:
隧道类型:SOCKS5
服务端端口:1080
浏览器配置代理:
SOCKS5: your-server-ip:1080
与其他工具对比
| | | | |
|---|
| Web管理 | | | | |
| 开源 | | | | |
| 免费 | | | | |
| UDP支持 | | | | |
| 性能 | | | | |
| 易用性 | | | | |
| 流量控制 | | | | |
| 多用户 | | | | |
NPS独特优势:
高级配置
配置1:HTTPS隧道
需求:加密传输数据。
配置步骤:
1. 申请SSL证书(Let's Encrypt免费)
2. NPS服务端配置:
- 上传证书文件
- 配置443端口
3. 创建HTTPS隧道
4. 访问 https://yourdomain.com
配置2:负载均衡
需求:多台内网服务器负载。
配置:
创建多个客户端连接同一隧道
NPS自动轮询分发请求
单台故障自动切换
配置3:IP白名单
需求:限制访问来源。
配置:
隧道设置 → IP限制
只允许:1.2.3.4,5.6.7.8
或允许IP段:1.2.3.0/24
配置4:流量统计
监控功能:
- 实时流量速率
- 历史流量统计
- 客户端流量排名
- 流量限额告警
总结
NPS 作为内网穿透工具,具有:
- 🌐 全协议支持 - TCP/UDP/HTTP/HTTPS/SOCKS5
适合人群:
立即开始:
# 服务端安装
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -xzvf linux_amd64_server.tar.gz
cd nps && sudo ./nps install && sudo nps start
# 访问 http://your-ip:8080
# 账号: admin 密码: 123
无论你是需要远程访问的开发者、NAS用户,还是需要内网协作的小团队,NPS都是frp、ngrok的最佳替代品。告别复杂配置和付费限制,拥抱国产开源——让内网穿透真正简单高效!
项目地址: https://github.com/ehang-io/nps
使用文档: https://ehang.io/nps/documents