Nps内网穿透
官方的文档写的很清楚了,因为是图形界面,也很简单,水~
一、简介
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
1、特点
1.协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理...
2.全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务
3.控制全面,同时支持服务端和客户端控制
4.https集成,支持将后端代理和web服务转成https,同时支持多证书
5.操作简单,只需简单的配置即可在web ui上完成其余操作
6.展示信息全面,流量、系统信息、即时带宽、客户端版本等
7.扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
8.域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能
9.服务端支持多用户和用户注册功能
2、下载地址
https://github.com/ehang-io/nps/releases
二、准备工作
1、服务端配置文件
名称 | 含义 |
---|---|
web_port | web管理端口 |
web_password | web界面管理密码 |
web_username | web界面管理账号 |
web_base_url | web管理主路径,用于将web管理置于代理子路径后面 |
bridge_port | 服务端客户端通信端口 |
https_proxy_port | 域名代理https代理监听端口 |
http_proxy_port | 域名代理http代理监听端口 |
auth_key | web api密钥 |
bridge_type | 客户端与服务端连接方式kcp或tcp |
public_vkey | 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式 |
ip_limit | 是否限制ip访问,true或false或忽略 |
flow_store_interval | 服务端流量数据持久化间隔,单位分钟,忽略表示不持久化 |
log_level | 日志输出级别 |
auth_crypt_key | 获取服务端authKey时的aes加密密钥,16位 |
p2p_ip | 服务端Ip,使用p2p模式必填 |
p2p_port | p2p模式开启的udp端口 |
pprof_ip | debug pprof 服务端ip |
pprof_port | debug pprof 端口 |
disconnect_timeout | 客户端连接超时,单位 5s,默认值 60,即 300s = 5mins |
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=80//http代理,可修改
https_proxy_port=443//https代理,可修改
https_just_proxy=true
#bridge
bridge_type=tcp//客户端与服务端连接方式
bridge_port=8024//默认客户端连接服务器端的桥接口,可修改
bridge_ip=0.0.0.0
public_vkey=123//公用的客户端连接服务端密钥,可修改
#web后台管理
web_host=a.o.com
web_username=admin//默认用户名,修改
web_password=123//默认密码,修改
web_port = 8080//默认web端口
web_ip=0.0.0.0
web_base_url=//可设置web路径
web_base_url=/nps
web_open_ssl=false//如果web管理需要使用https,可以在配置文件nps.conf中设置web_open_ssl=true,并配置web_cert_file和web_key_file
web_cert_file=conf/server.pem
web_key_file=conf/server.key
auth_crypt_key =1234567812345678//auth_key, web api认证ip密钥,可修改,必须16位
2、VPS上运行
./nps
3、访问web端
http://192.168.199.128:8080/login/index
访问8080端口即可
4、建立客户端
4.1、设置客户端
这里注意建好的ID,后续建立隧道需要用到ID
4.2、在目标机上传client文件后,执行如下命令,即可建立连接
linux:./npc -server=192.168.199.128:8024 -vkey=123456 -type=tcp
windows:npc.exe -server=192.168.199.128:8024 -vkey=123456 -type=tcp
4.3、边界服务区运行命令
npc -server=192.168.199.128:8024 -vkey=123456 -type=tcp
回到客户端,刷新即可看到上线状态
三、tcp隧道
1、适用范围
ssh、远程桌面等tcp连接场景
2、假设场景
公网VPS:192.168.199.128
边界服务器:192.168.199.137 10.10.10.150
内网目标机:10.10.10.149
想通过访问公网服务器 192.168.199.128 的 8001 端口,连接内网机器 10.10.10.149 的 3389 端口
3、使用步骤
3.1、添加隧道
在刚才创建的客户端隧道管理中添加一条tcp隧道
填写监听的端口(8001)
内网目标ip和目标端口(10.10.10.149:3389)
保存
3.2、访问VPS 8001端口测试
rdesktop 192.168.199.128:8001
四、socks5代理
1、适用范围
在外网环境下如同使用vpn一样访问内网设备或者资源
2、假设场景
想将公网服务器1.1.1.1的8002端口作为socks5代理,达到访问内网任意设备或者资源的效果
3、使用步骤
3.1、建立代理
设置监听端口 8002 并保存
3.2、设置全局代理
vim /etc/proxychains.conf
3.3、测试
注意:经过socks5代理,当收到socks5数据包时socket已经是accept状态。表现是扫描端口全open,建立连接后短时间关闭。若想同内网表现一致,建议远程连接一台设备。
其他还有好多功能,都差不多
原文始发于微信公众号(Nurburgring):Nps内网穿透
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论