https://ehang.io/nps/documents
https://github.com/ehang-io/nps
一、什么是NPS
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的Web管理端。
相比于已经较为成熟的FRP、Ngrok等,这个内网穿透工具的功能更加强大,以及可以更方便地进行配置(因为有Web面板)。我在改造内网时使用过Ngrok,但都不是很方便。
关于内网穿透的原理、原因我就不多说了,要实现内网穿透我们至少需要以下两个主机:
- 一台有公网IP的服务器运行服务端(NPS)
- 一个或多个运行在内网的服务器或者PC运行客户端(NPC)
二、安装
项目Release地址: https://github.com/cnlh/nps/releases
请注意将下面的下载地址更换成最新的,写这篇教程时的最新版是v0.26.9
三、服务端安装
下载地址https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_amd64_server.tar.gz
参考https://github.com/ehang-io/nps/blob/master/README_zh.md
cd /opt
mkdir -p /mydata/nps
wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz -C /mydata/nps
cd /mydata/nps
./nps install #执行安装命令
在nps目录下面会有一个nps可执行文件、conf配置目录和web网页目录,
vim conf/nps.conf
web_host=你的服务器IP或者域名
web_username=admin(或者换成别的)
web_password=你的密码
web_port=8080(可以改成你想要的端口
启动服务端
cd /mydata/nps
./nps start #没报错就是好的
这里我们需要改一下#web下面的几个参数,
启动服务端
IP:8080 访问nps服务端配置页
至此服务端安装完成
IP:8080 访问nps服务端配置页面
之后我们点开左边的“客户端”,再点击“新增”,备注就是给客户端起个名字,比如本地开发测试,其他均可以默认(之所以不开压缩和加密是因为我觉得这两个事情不应该交给中间服务器解决,而应该在相应的服务上开启,比如NGINX)。新建之后就可以看到列表里面多了一个客户端,不过是offline状态(当然,我们还没开始配置呢),点一下左边那个+号,你会看到一些信息,比如当前连接数等等,不过最重要的是命令一行,后面的一串命令记下来,还有客户端的id,待会儿要用。
复制如下客户端命令
./npc -server=192.168.34.24:8024 -vkey=axo92qlco13rcjrw -type=tcp #现在只是复制,并不是执行
四、客户端安装
https://github.com/ehang-io/nps/releases/
cd /opt
mkdir -p /mydata/npc
wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_amd64_client.tar.gz
tar -zxvf linux_amd64_client.tar.gz -C /mydata/npc
cd /mydata/npc
./npc -server=192.168.34.24:8024 -vkey=axo92qlco13rcjrw -type=tcp #执行服务端的复制的客户端命令
再登录服务端查看连接状态为“在线”
五、其他
此外也可以有UDP隧道、P2P等其他强大的功能。
https://blog.lonelyion.com/2019/nps-tunnel-tutorial/