nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

界面

NPS-1.png

功能

  1. 做微信公众号开发、小程序开发等----> 域名代理模式
  2. 想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式
  3. 在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式
  4. 在外网使用HTTP代理访问内网站点----> http代理模式
  5. 搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备----> socks5代理模式

GitHub页面地址

GitHub:https://github.com/cnlh/nps

Releases Github:https://github.com/cnlh/nps/releases

NPS服务器搭建

进入releases安装页面找到跟服务器系统相对应的版本,此处为Centos7,对应的则为linux_amd64_server.tar.gz

NPS-2.png

接着我们使用SSH工具登陆服务器,谷歌云提供在线SSH,可以不用使用SSH工具。

NPS-3.png

登陆服务器后老规矩sudo -i使用root用户登陆

服务器默认没有安装wget的需要先安装才可进行下一步

yum -y install wget

接着我们使用wget下载nps服务端

wget https://github.com/cnlh/nps/releases/download/v0.23.1/linux_amd64_server.tar.gz

下载好后进行解压

tar -zxvf linux_amd64_server.tar.gz

解压完成后会产生一个名为nps的文件夹,我们打开nps文件夹

cd nps

进入后我们直接启动nps服务端即可

./nps start

到此服务端搭建就已经完成了,在浏览器中输入服务器IP:8080进入nps后台管理进行配置即可

常用命令

  • 服务端测试 ./nps test
  • 服务端启动 ./nps start
  • 服务端停止或重启 ./nps stop|restart

相关功能

  • 1、数据压缩支持

由于是内网穿透,内网客户端与服务端之间的隧道存在大量的数据交换,为节省流量,加快传输速度,由此本程序支持 SNNAPY 形式的压缩。

所有模式均支持数据压缩,可以与加密同时使用
开启此功能会增加 cpu 和内存消耗
在 server 端加上参数 -compress=snappy(或在 web 管理中设置)

  • 2、加密传输

如果公司内网防火墙对外网访问进行了流量识别与屏蔽,例如禁止了 ssh 协议等,通过设置配置文件,将服务端与客户端之间的通信内容加密传输,将会有效防止流量被拦截。

开启此功能会增加 cpu 和内存消耗
在 server 端加上参数 -crypt=true(或在 web 管理中设置)

  • 3、站点保护

域名代理模式所有客户端共用一个 http 服务端口,在知道域名后任何人都可访问,一些开发或者测试环境需要保密,所以可以设置用户名和密码,nps 将通过 Http Basic Auth 来保护,访问时需要输入正确的用户名和密码。

web 管理中可配置

  • 4、host 修改

由于内网站点需要的 host 可能与公网域名不一致,域名代理支持 host 修改功能,即修改 request 的 header 中的 host 字段。

在 web 管理中设置

  • 5、自定义 header

支持对 header 进行新增或者修改,以配合服务的需要。

  • 6、404 页面配置

支持域名解析模式的自定义 404 页面,修改 /web/static/page/error.html 中内容即可,暂不支持静态文件等内容。

  • 7、流量限制

支持客户端级流量限制,当该客户端入口流量与出口流量达到设定的总量后会拒绝服务,域名代理会返回 404 页面,其他会拒绝连接。

  • 8、带宽限制

支持客户端级带宽限制,带宽计算方式为入口和出口总和,权重均衡。

  • 9、负载均衡

本代理支持域名解析模式的负载均衡,在 web 域名添加或者编辑中内网目标分行填写多个目标即可实现轮训级别的负载均衡。

  • 10、守护进程

本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持 linux、darwin、windows。

./(nps|npc) start|stop|restart|status 若有其他参数可加其他参数
(nps|npc).exe start|stop|restart|status 若有其他参数可加其他参数
  • 11、KCP 协议支持

KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40%,在弱网环境下对性能能有一定的提升。可在 app.conf 中修改 bridgeType 为 kcp。

当服务端为 kcp 时,客户端连接时也需要加上参数 -type=kcp。

Last modification:January 2nd, 2020 at 03:52 pm
给鱼丸买瓶饮料