利用nps进行内网穿透
NPS工具是一款使用go语言编写的轻量级、功能强大的内网穿透工具。支持TCP、UDP流量转发,支持内网HTTP、SOCKS5代理,同时支持snappy压缩(节省带宽和流量)、站点保护、加密传输、多路复用、header修改等。同时还支持web图形化管理。该工具使用简单,相比于FRP,NPS是图形化界面,因此配置更加简单。
工具介绍
NPS工具是一款使用go语言编写的轻量级、功能强大的内网穿透工具。支持TCP、UDP流量转发,支持内网HTTP、SOCKS5代理,同时支持snappy压缩(节省带宽和流量)、站点保护、加密传输、多路复用、header修改等。同时还支持web图形化管理。该工具使用简单,相比于FRP,NPS是图形化界面,因此配置更加简单。
下载地址:https://github.com/ehang-io/nps
安装启动
下载对应系统压缩包后,解压,然后进入解压后的文件夹执行命令进行安装(注意客户端与服务端的区分)

linux/darwin
1 | |
windows
1 | |
web端管理
进入web界面,公网ip:web界面端口(默认8080),密码默认为123
修改配置文件
配置文件在 /etc/nps/conf/nps.conf ,只需要修改下面的web的host、账号、密码和端口号即可,其他可保持不变,web端可更直观的进行其他项的更改
| 名称 | 含义 |
|---|---|
| web_port | web管理端口 |
| web_password | web界面管理密码 |
| web_username | 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端口 |

此为简单快速实用教程,如需高级教程请移步至:https://gitee.com/mickelfeng/nps
web页面
通过修改的账号密码,进行登陆,创建新客户端,添加认证,密钥等配置,下列三个最好选择是



此处即可看到web端已经给出客户端命令,也就是我们在目标机器中需执行的命令
TCP隧道/UDP(同理)

此处以远程桌面为例:通过新建TCP隧道,进行TCP连接,客户ID对应客户端处所生成的对应ID,服务器端口选择未被占用端口,否则新建失败,打通TCP隧道之后,只需通过远程桌面连接VPS的4444端口——即可连接到内网10.10.231.12的远程桌面
socks5

socks5代理与其他同理,此处只列举两处常用隧道,同理新建socks5隧道后,可直接利用socks5代理工具,连接VPS的5555端口即可对内网进行访问。(下图使用浏览器socks5代理访问内网)

客户端上线
想方设法把对应目标系统的客户端搞到目标机器上,利用自动配置好的命令,web版可直观的查看机器上线与否。

1 | |

客户端上线后就可以自由发挥了。
改造版
通过websocket协议让FRP用上域前置,可以隐藏真实服务ip地址。
参考文章:https://uknowsec.cn/posts/notes/FRP%E6%94%B9%E9%80%A0%E8%AE%A1%E5%88%92%E7%BB%AD.html