开源内网穿透工具NPS使用指南

  • 0 引言
  • 1 服务端的安装使用
  • 2 客户端的安装使用
  • 3 转发本地的http服务


0 引言

NPS是一款带有Web界面的网穿透工具,之前叫 easyProxy,使用go语言编写,轻量级且功能强大,开源免费使用。支持 tcp、udp 流量转发,支持内网 http、socks5 代理,同时支持 snappy 压缩 (节省带宽和流量)、站点保护、加密传输、多路复用、header 修改等。同时还支持 web 图形化管理。
据我所知有一些付费内网穿透工具,使用的就是NPS作为底层服务。

github地址:https://github.com/ehang-io/nps
官方说明:https://ehang-io.github.io/nps/#/install
参考教程:
NPS - 轻量级且高性能内网穿透工具(安装使用教程)
2.NPS代理内网穿透神器NPS的使用

我这里使用的场景是局域网机器没有公网IP,但是需要被其他机器临时访问到,因此通过内网穿透,使用一台公网服务器对局域网机器的网络进行转发。

1 服务端的安装使用

NPS分服务端和客户端,通常是服务端把请求转到客户端,因此首先要在中转的机器上面安装服务端。

下载地址为:https://github.com/ehang-io/nps/releases

LVS fullNAT 转发 所有端口 nps 端口转发_云服务


根据自己的系统,下载不同的版本。

例如我这里是ubuntu系统,x86的CPU,下载linux_386_server.tar.gz

然后在服务器上解压和安装:

tar -zxvf linux_386_server.tar.gz
sudo ./nps insatll
sudo nps start
# 配置文件路径为/etc/nps/conf/nps.conf
# 日志路径为/var/log/nps.log。

启动后nps守护模式运行,访问host:8080端口访问web管理端,如果8080端口被占用了,可以在配置文件中将端口修改。

LVS fullNAT 转发 所有端口 nps 端口转发_云服务_02


LVS fullNAT 转发 所有端口 nps 端口转发_网络_03


默认账户是admin,密码是123,第一次登录后记得在配置文件中修改账户和密码。

登录后,创建一个客户端:

LVS fullNAT 转发 所有端口 nps 端口转发_LVS fullNAT 转发 所有端口_04


记住这个客户端ID,点击这个加号,可以看到一条客户端命令,我们在客户端执行这条命令,就建立了和服务器的连接了。

LVS fullNAT 转发 所有端口 nps 端口转发_云服务_05

2 客户端的安装使用

当然,在客户端是执行的前提是要下载客户端软件,我们还是在这个地址https://github.com/ehang-io/nps/releases,下载后缀是客户端的文件即可。例如我本地是mac,我下载文件darwin_amd64_client.tar.gz。
双击解压,在当前目录下执行:
./npc -server=ip:port -vkey=web界面中显示的密钥 这时如果展示以下内容,说明连接成功:

2022/01/22 17:48:18.125 [I] [npc.go:231]  the version of client is 0.26.10, the core version of client is 0.26.0
2022/01/22 17:48:18.260 [I] [client.go:72]  Successful connection with server xxx

3 转发本地的http服务

在NPS的web页面,新建一条TCP隧道。

LVS fullNAT 转发 所有端口 nps 端口转发_内网穿透_06


客户端ID:填写刚刚创建的

服务端端口:填写服务器上可以暴露给外部访问的

目标 (IP:端口):填写本地或者局域网需要映射到服务器提供给外部访问的服务地址和端口

LVS fullNAT 转发 所有端口 nps 端口转发_云服务_07


例如我本地启动的服务是8090端口,服务器上通过8888暴露出去。

创建成功后,就可以访问服务器的8888地址,这时就可以请求到本地的8090服务了。