nps 是一款轻量级、高性能且功能强大的内网穿透代理服务器
nps 是一款轻量级、高性能且功能强大的内网穿透代理服务器。目前支持 TCP、UDP 流量转发,几乎支持所有 TCP、UDP 上层协议(例如访问内网网站、本地支付接口调试、SSH 访问、远程桌面,内网 DNS 解析等)。此外,nps 还支持内网 HTTP 代理、内网 SOCKS5 代理、P2P 等,并带有功能强大的 Web 管理端。
之前我们介绍了 frp 这款内网穿透工具,今天我们来谈谈 nps。
nps 的特点
- 协议支持全面:兼容几乎所有常用协议,例如 TCP、UDP、HTTP(S)、SOCKS5、P2P、HTTP 代理等。
- 全平台兼容:支持 Linux、Windows、macOS、群辉等,且支持一键安装为系统服务。
- 控制全面:支持服务端和客户端双向控制。
- HTTPS 集成:支持将后端代理和 Web 服务转为 HTTPS,并支持多证书。
- 操作简单:只需简单配置,即可在 Web UI 上完成大部分操作。
- 信息展示全面:包括流量、系统信息、即时带宽、客户端版本等。
- 扩展功能强大:提供缓存、压缩、加密、流量限制、带宽限制、端口复用等功能。
- 域名解析功能强大:支持自定义 Header、404 页面配置、Host 修改、站点保护、URL 路由、泛解析等。
- 多用户支持:服务端支持多用户及用户注册功能。
应用场景
- 微信公众号开发、小程序开发:域名代理模式。
- 通过外网 SSH 连接内网机器:TCP 代理模式。
- 非内网环境下使用内网 DNS:UDP 代理模式。
- 使用 HTTP 代理访问内网站点:HTTP 代理模式。
- 内网穿透 SOCKS5:如同使用内网 VPN 一样访问内网资源或设备。
快速开始
安装 nps
nps 使用 Go 语言开发,可以直接下载二进制文件进行安装。在项目的 releases 页面下载对应系统版本。
nps 可以安装为服务,例如在 Linux 下:
sudo ./nps install
启动非常简单,执行以下命令:
sudo nps start
nps 的默认配置使用了 80、443、8080、8024 端口,其中 80 和 443 端口为域名解析模式的默认端口,8080 为 Web 管理访问端口,8024 为网桥端口(用于客户端与服务器通信)。这些端口需要在防火墙中开放。nps 支持 Linux、macOS、Windows 等多个操作系统。
客户端安装
客户端安装非常简单。首先在客户端主机上下载客户端二进制文件,然后在浏览器中登录 Web 管理后台,创建客户端并点击“+”号,复制启动命令。在客户端主机上执行该命令即可。这是最简单的安装方式。更多精细控制方法请参考官方文档。
常见使用场景
小程序/微信公众号开发
将你的域名 *.domain.com
解析到你的公网服务器。
打开 Web 管理后台,创建客户端,并在域名管理中添加域名规则,例如将 www.domain.com
指向内网服务器 192.168.0.100:80
。启动客户端后,你可以通过 www.domain.com
访问内网服务器。
SSH 场景
想通过公网服务器的某个端口访问公司内网服务器,可以使用 nps 设置一个跳转。例如,通过公网服务器 1.1.1.1
的 8001
端口连接内网服务器 192.168.0.100
的 22
端口。只需在客户端中添加一条 TCP 隧道,填写监听端口、内网目标和目标端口,然后启动客户端,即可通过 SSH 访问内网服务器。对于 Windows 服务器,类似操作,只需将 22
端口换成 3389
。
总结
nps 和 frp 都是非常优秀的内网穿透工具。nps 操作更加简单,提供了默认的配置和一个功能丰富的管理后台,适合希望更强大控制功能的用户。而 frp 则更加简洁,适合喜欢手动配置的用户。两者各有所长,用户可根据自身需求选择合适的工具。
查看更多 nps 相关内容,请访问 GitHub 项目主页:nps GitHub。