内网穿透方案--- 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=<本地连接端口>

浙公网安备 33010602011771号