一、简介
- NPS 是一款轻量级、高性能、功能强大的内网穿透工具
- 协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理等等
- 自带Web管理界面,可以展示流量、系统信息、即时带宽、客户端版本等信息,客户端和服务端连接上后,后续可在线管理配置端口映射关系
- 扩展能力强大,支持缓存、压缩、加密、流量限制、带宽限制、端口复用等
- 修复优化版本开源地址参考:https://github.com/yisier/nps
- 该工具的基本架构可参考下图:
二、安装(Docker方式)
1. 服务端安装
-
服务端主机需要安装好Docker、docker-compose软件环境
-
拉取代码,主要目的就是拉取conf基础配置
git clone https://github.com/yisier/nps
-
进入nps代码目录,新建docker-compose.yml配置文件,配置内容如下:
services: nps: image: yisier1/nps container_name: nps network_mode: host restart: always volumes: - ./conf:/conf
-
(可选)主要修改的配置conf/nps.conf,默认会需要占用80、443、8024、8080等端口
默认端口和web管理端配置
漏洞位置安全加固(必须)
-
配置完成,即可一键启动服务端
docker-compose up -d
查看启动情况,正常启动参考下图
2. 登录服务端管理后台,创建客户端配置
-
服务端启动后,可访问地址:http://ip:8081/,账号密码就是conf/nps.conf配置中的web_username、web_password参数
-
新增一个客户端,会生成唯一验证秘钥,客户端通过该秘钥就能连接上服务端了
3. 客户端启动
- 客户端主机也需要安装好Docker、docker-compose软件环境
- 新建docker-compose.yml配置文件,配置内容如下:
services: npc: image: yisier1/npc container_name: npc restart: always network_mode: host #新接入的客户端只需配置修改下面不同的vkey配置即可,默认开启了tls流量加密 command: -server=100.100.xxx.xxx:8025 -vkey=a1efa114df -tls_enable=true
- 配置完成,执行客户端一键启动命令
docker-compose up -d
客户端成功启动参考下面截图
客户端成功连接服务端,后台显示在线状态
三、使用示例
-
可以在线新建域名解析(不建议直接用,最好加一层nginx反代)、TCP隧道、UDP隧道、各种代理(需要使用客户端主机去访问目标服务的时候可以设置)等
-
这里以TCP隧道为例,目的:新建一个TCP隧道,穿透内网中的mysql服务
后台新增TCP隧道配置
外网连接mysql测试
-
这里以HTTP代理为例,目的:新增一个HTTP代理服务,使用这个代理就能让客户端帮忙转发请求
新增一个HTTP代理,指定要使用的客户端即可
测试使用这个HTTP代理,实际访问目标服务就是客户端ip,在一些爬虫类等对ip有严格限制的服务中可以应用起来curl -x http://服务端ip:28955 ipinfo.io
四、总结
- NPS 是一个功能非常完善的内网穿透工具,可以满足大多数内网穿透场景和需求
- 提供了在线管理后台,使得接入、配置、监控、管理非常方便
- 客户端接入方便,提供各种操作系统的客户端接入一键接入,推荐docker接入方式
- 长期运行较为稳定,流量加密、长连接、心跳检测、自动重连等特性,保障了安全和性能
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容