内网穿透方案--- NPS

nps 一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等。这是官方文档:

https://ehang-io.github.io/nps/#/?id=nps

① 搭建NPS服务端

我们采用docker的方式

docker-compose代码如下:

``
version: '2'
services:
nps:
image: ffdfgdfg/nps
restart: unless-stopped
volumes:
- "/data/nps/conf:/conf"
ports:
- "8024:8024"
- "8022:8022"
- "8021:8021"
- "8023:8023"
- "6106-6110:6106-6110"
- "6199:6199"
networks:
- monitor

networks:
monitor:
external:
name: myNetwork
``

访问方式:

服务器IP:8023
我上面映射了很多端口是因为避免后面还要映射出来,防止端口被异常封了或者别的什么情况无法使用

使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改/data/nps/conf/nps.conf 配置文件中的 web_password),也可以在这里配置更改默认控制台管理平台端口(web_port = 8666),通道端口更改 bridge_port=8024

记得在控制台开放端口,面板默认端口是 8023,与客户端通信端口是 8024。

② 添加客户端



注意:客户端命令 ./npc -server=150.106.195.110:8024 -vkey=<唯一验证密钥> -type=tcp 中的 唯一验证密钥 用于客户端安装需要使用

③ 客户端安装使用

客户端安装在你需要穿透的内网服务器(电脑)上。

``

创建 /opt/nps 目录存放配置文件

mkdir /opt/npc

拉取 ffdfgdfg/nps 镜像

docker pull ffdfgdfg/npc

运行 npc 容器,按提示改好命令,如下图所示

唯一验证密钥在管理界面中获取

docker run -d --name=npc --restart=always --net=host ffdfgdfg/npc -server=ip:port -vkey=<web界面中显示的密钥> <以及一些其他参数>

示例

docker run -d --name=npc --restart=always --net=host ffdfgdfg/npc -server=150.106.195.110:8024 -vkey=<唯一验证密钥>

查看日志

docker logs npc

``
服务运行起来,这样客户端就连接到了 NPS 的服务端了

④ 建立内网穿透隧道



假设我们要穿透局域网 MySQL 数据库,在 目标 (IP:端口) 配置内网 MySQL IP:端口 192.168.188.222:3306,在外网访问的端口 服务端端口 配置 33066

配置完成之后你可以使用公网 ip=150.106.195.110 IP 地址 和端口 33066 连接到你内网的机器中的数据库。

到这里就完成了,你可以自己继续研究一下更多的功能,也可以看看官方的说明文档。

⑤ 新建 Socks5 代理

通过 Socks5 代理可以访问内网任意服务,不必建立一个个的内网穿透隧道。在设置代理之前确保 客户端 建立好,并且 链接 状态为 在线。


在建立好 Socks5 代理之后,需要使用 proxifier 配置代理访问公司内网

但如果是本地电脑作为客户端,直接使用npc客户端

./npc -server=ip:8024 -vkey=<web界面中显示的密钥> -type=tcp -password=<web界面中显示的密码> -target=<容器名:端口> --local_port=<本地连接端口>


__EOF__

本文作者KURO · Liang
本文链接https://www.cnblogs.com/kuro-liang/articles/18089227.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   KURO、Liang  阅读(830)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示