nps内网穿透工具的使用
一、场景
已有一台华为云服务器(任意外网ip都可以)和一台虚拟机(内网),通过nps内网穿透,实现访问内网虚拟机。
举例:三台电脑,云服务器、虚拟机(家里电脑)、公司电脑,在公司以云服务器作为通道直接访问虚拟机。
二、操作步骤
1.准备
nps分为服务端和客户端两个部分。云服务器作为通道,应该部署服务端,虚拟机则为客户端。
nps官方操作文档如下:
开源地址如下:
https://github.com/ehang-io/nps
原作者已经停更很久了,最早的版本还是2021年,看评论区有人反馈病毒和漏洞的存在,所以采用其他作者二次开发的版本。
推荐两个二开版本,这里是使用第二个作者docker方式进行部署。
注: 前提条件下,两台服务器均需要安装docker,并配置好源,否则无法拉取私人仓库。
仓库源配置可以参考另一篇博文docker拉取镜像超时解决_108.160.170.44:443 docker拉取镜像超时-CSDN博客
2.nps部署(服务端)
2.1 创建nps配置文件->拉取镜像->启动容器(挂载本地配置文件),下面两个方法大差不差,只是把配置文件copy过来而已。注:若容器启动不成功,请修改配置文件端口号,可能是8080端口有冲突。
方法一
# 创建 /opt/nps 目录存放配置文件
mkdir /opt/nps
# 安装wget并且下载配置文件
apt install -y wget && wget https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/conf_1b8df8f61551218f81065d9b20288371.zip
# 解压配置文件到 /opt/nps 目录
apt install unzip && unzip conf_1b8df8f61551218f81065d9b20288371.zip -d /opt/nps
# 拉取 yisier1/nps 镜像
docker pull duan2001/nps
# 运行 nps 容器,配置文件夹 conf 在 /opt/nps/conf 目录下
docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf duan2001/nps
# 查看日志
docker logs nps
方法二
# NPS
# 根据下面链接创建 nps.conf 配置文件
# https://github.com/djylb/nps/blob/master/conf/nps.conf
docker pull duan2001/nps
docker run -d --restart=always --name nps --net=host -v <本机conf目录>:/conf -v /etc/localtime:/etc/localtime:ro duan2001/nps
服务端配置文件解析:
名称 含义
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
2.2 打开web管理界面 服务端ip:8080 账密默认为admin 123
切换至客户端,点击新增按钮
输入如图信息
当前连接显示离线,表示没有客户端连接。注意红色字体部分客户端命令,后面部署客户端会用到
3.npc部署(客户端)
拉取镜像->启动容器,客户端使用无配置文件命令启动,官方文档也有配置文件启动方式,自行查看。
# NPC
docker pull duan2001/npc
docker run -d --restart=always --name npc --net=host duan2001/npc -server=xxxx:123 -vkey=xxxx,xxxx -tls_enable=true -log=off
-server=xxxx:123 -vkey=xxxx,xxxx -tls_enable=true -log=off 这部分对应上面的客户端命令
刷新一下web管理界面 可以看到离线变为在线,表示完成了
4.穿透
点击右侧“隧道”按钮,跳转至tcp隧道页面,点击新增
各参数填写如下 目的端ip不用填,只填写端口号即可。访问云服务器23333端口会自动映射到虚拟机的22端口
到这里就配置完成了
使用nxshell远程连接云服务器公网ip+23333端口即可访问虚拟机
附上比较有参考价值的博客
雨云服务器搭建内网穿透服务器教程,NPS搭建和使用教程,如何搭建内网穿透服务器_nps使用教程-CSDN博客
docker拉取镜像超时解决_108.160.170.44:443 docker拉取镜像超时-CSDN博客
原文地址:https://blog.csdn.net/kely6666/article/details/144760027
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!