Go NPS:轻量级高性能内网穿透代理工具
项目概述
Go NPS(Net Proxy Server)是一个基于Go语言开发的高性能内网穿透代理服务器,由ehang-io团队开发维护。该项目采用客户端-服务器架构,帮助开发者在没有公网IP的情况下,轻松实现内网服务的公网访问,支持TCP、UDP、HTTP等多种协议穿透。
核心特性
1. 多协议支持
- TCP/UDP隧道:支持任意TCP/UDP应用的内网穿透
- HTTP/HTTPS代理:支持Web服务的反向代理
- SOCKS5代理:提供标准的SOCKS5代理服务
- P2P连接:在特定网络环境下支持点对点直连
2. 高性能架构
- 基于Go语言开发,天然支持高并发
- 采用多路复用技术,减少连接开销
- 内存占用低,资源消耗小
3. 安全可靠
- 支持TLS加密传输
- 客户端与服务端双向认证
- 访问控制与流量限制
4. 易于管理
- 提供Web管理界面
- 支持多用户、多客户端管理
- 实时监控连接状态和流量统计
安装与部署
服务端安装
text
# 下载最新版本 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz # 解压 tar -zxvf linux_amd64_server.tar.gz # 进入目录 cd nps # 安装服务 sudo ./nps install # 启动服务 sudo nps start # 查看状态 sudo nps status
客户端安装
text
# 下载客户端 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=服务器地址:8024 -vkey=客户端密钥
使用示例
示例1:将本地Web服务暴露到公网
假设你在本地运行了一个Web服务(端口8080),想要通过公网访问:
服务端配置(通过Web管理界面):
- 添加客户端
- 创建TCP隧道:
- 服务端端口:8081
- 目标地址:127.0.0.1
- 目标端口:8080
客户端连接:
text./npc -server=your-server.com:8024 -vkey=your-vkey
访问方式:
- 公网用户访问:
http://your-server.com:8081 - 实际访问的是你本地的
http://127.0.0.1:8080
- 公网用户访问:
示例2:SSH远程连接内网服务器
text
# 服务端创建隧道 # - 服务端端口:2222 # - 目标地址:内网服务器IP # - 目标端口:22 # 客户端连接 ./npc -server=nps-server.com:8024 -vkey=ssh-client-key # 远程SSH连接 ssh -p 2222 user@nps-server.com
示例3:HTTP代理配置
text
# nps客户端配置文件 [common] server_addr = nps-server.com:8024 conn_type = tcp vkey = your-vkey [http_proxy] mode = httpProxy local_port = 8080
配置文件详解
服务端配置(nps.conf)
text
appname = nps # 管理界面 http_proxy_ip=0.0.0.0 http_proxy_port=8080 http_proxy_https_port=443 # 客户端连接 bridge_type=tcp bridge_port=8024 bridge_ip=0.0.0.0 # 认证 public_vkey=123 # 日志 log_level=7 log_path=/var/log/nps.log
客户端配置(npc.conf)
text
[common] server_addr=your-server.com:8024 conn_type=tcp vkey=your-vkey auto_reconnection=true [web] mode=tcp target_addr=127.0.0.1:8080 server_port=8081
高级功能
1. 域名解析
支持将不同的域名解析到不同的内网服务,实现基于域名的反向代理。
2. 流量统计
提供详细的流量统计功能,包括: - 实时流量监控 - 历史流量查询 - 客户端流量排行
3. 负载均衡
支持多客户端负载均衡,提高服务可用性。
4. 健康检查
自动检测后端服务健康状态,实现故障转移。
性能优化建议
- 调整并发参数:根据服务器配置调整
max_client和flow_limit - 启用压缩:在带宽有限的情况下启用数据压缩
- 使用TLS加密:生产环境务必启用TLS加密传输
- 定期清理日志:避免日志文件过大影响性能
常见问题解决
Q1:客户端连接失败
- 检查防火墙设置
- 确认服务端端口开放
- 验证vkey是否正确
Q2:连接速度慢
- 检查网络延迟
- 调整压缩参数
- 考虑使用P2P模式(如果网络支持)
Q3:Web管理界面无法访问
- 检查管理端口是否被占用
- 确认IP绑定设置
- 查看日志文件排查错误
总结
Go NPS作为一个开源的内网穿透工具,以其高性能、易用性和丰富的功能特性,成为开发者和运维人员解决内网访问问题的优秀选择。无论是个人开发测试,还是企业级应用部署,NPS都能提供稳定可靠的内网穿透服务。
随着项目的持续更新和维护,NPS正在不断完善功能、提升性能,未来还将支持更多协议和更复杂的网络场景,值得持续关注和使用。
项目地址:https://github.com/ehang-io/nps
nps_20260204142249.zip
类型:压缩文件|已下载:0|下载方式:免费下载
立即下载




还没有评论,来说两句吧...