2023年7月20日发(作者:)
内⽹穿透神器NPS的使⽤内⽹穿透是指将内⽹中的软件服务通过⽹络代理⽅式暴露给⼴域⽹⽤户。可以实现内⽹穿透的⽅式很多,⽐如通过防⽕墙硬件、⽹络穿透软件来进⾏实现。本⽂主要介绍通过NPS软件实现典型的内⽹穿透。NPS介绍nps是⼀款轻量级、⾼性能、功能强⼤的内⽹穿透代理服务器。⽬前⽀持tcp、udp流量转发,可⽀持任何tcp、udp上层协议(访问内⽹⽹站、本地⽀付接⼝调试、ssh访问、远程桌⾯,内⽹dns解析等等……),此外还⽀持内⽹http代理、内⽹socks5代理、p2p等,并带有功能强⼤的web管理端。基本概念了解该软件的使⽤,⾸先需要了解⼀个基本的内⽹穿透使⽤场景。服务器端,⼀般安装在公⽹服务器上,是所有内⽹资源对外的统⼀⼊⼝。客户端,⼀般安装在内⽹服务器上,是内⽹服务器与公⽹服务器的桥梁。客户端连接端⼝,客户端使⽤该秘钥连接服务端连接端⼝建⽴长连接,⽤于将外⽹服务器请求信息转发⾄对应客户端,对应客户端也通过该端⼝返回相关信息。客户端秘钥,在服务端部署完成后,需要建⽴客户端秘钥,并在客户端连接时需要使⽤该秘钥进⾏连接。⼀个服务器端,可以对应多个客户端。在服务器端的不同端⼝,可以映射在不同客户端的对应本地端⼝之上。典型场景本⽂我们设计⼀个最常见的场景,来说明整个软件的使⽤过程。我们设定基本需求如下。1. 我们有⼀台具备公⽹IP的服务器,服务器名称为public-server,操作系统为linux2. 我们有两台内⽹服务器inner-server1(linux)、inner-server2(windows)3. 我们将公⽹服务器的8081端⼝,映射⾄inner-server1:80;8082端⼝映射⾄inner-server2:80端⼝。4. 两个代理协议均为TCP协议操作步骤外⽹服务器public-server(linux)服务端nps安装通过ssh登录public-server,并将⽂件上传⾄对应安装⽬录,需要⾸先进⾏解压缩。(假定⽂件上传⾄⽬录/usr/nps)tar -xzvf linux_amd64_解压缩完成后进⼊解压⽬录,需要执⾏对应安装命令,以保障我们可以将nps相关命令与加载⾄bin资源下sudo ./nps install之后我们需要启动相关服务端软件,并在控制台查看是否启动成功。sudo nps start配置⽹络代理并开启publiic-server WEB服务端端⼝在启动成功后,我们需要打开防⽕墙8080端⼝,使得可以通过浏览器登录其管理台。同时需要打开8024端⼝,使得客户端可以连接到服务端通讯端⼝。sudo firewall-cmd --permanent --add-port=8080/tcpsudo firewall-cmd --permanent --add-port=8024/tcpsudo firewall-cmd --reload
使⽤浏览器登录相关端⼝,提⽰⽤户名称与密码。使⽤如下默认⽤户名密码进⾏登录。admin/123登录成功后⼀定要修改相关密码,修改配置⽂件 do vim /etc/nps/conf/b_usernameweb_password重新启动相关服务并尝试重新登录sudo nps stopsudo nps start通过web管理台配置客户端接⼊信息使⽤浏览器登录相关端⼝,提⽰⽤户名称与密码。使⽤如下修改后⽤户名密码进⾏登录。点击 客户端 -> 新增 ,依次填写 备注(inner-server1)、允许客户端通过配置⽂件连接(是)、压缩(是)、加密(是),不填写Basic 认证⽤户名、Basic 认证密码、唯⼀验证密钥点击 客户端 -> 新增 ,依次填写 备注(inner-server2)、允许客户端通过配置⽂件连接(是)、压缩(是)、加密(是),不填写Basic 认证⽤户名、Basic 认证密码、唯⼀验证密钥新建完成后查看客户端清单,保存好两台服务器⾃动⽣成的唯⼀验证密钥、客户端ID备⽤,在这⾥我们假定其分别为“client-key”、"client-id"内⽹服务器inner-server1安装npc(linux)客户端并连接通过ssh登录inner-server1,并将⽂件上传⾄对应安装⽬录,需要⾸先进⾏解压缩。(假定⽂件上传⾄⽬录/usr/npc)tar -xzvf linux_amd64_解压缩完成后进⼊解压⽬录,需要执⾏对应安装命令,以保障我们可以将npc相关命令与加载⾄bin资源下,同时设置服务器ip地址端⼝以及连接秘钥(上⼀步新建客户端时⾃动⽣成并备⽤的信息)。sudo ./npc install -server=public-server:8024 -vkey=client-key之后我们需要启动相关服务端软件,并在控制台查看是否启动成功。sudo npc stopsudo npc start内⽹服务器inner-server2安装npc(windows)客户端并连接通过ssh登录inner-server1,并将⽂件上传⾄对应安装⽬录,需要⾸先进⾏解压缩。(假定⽂件上传⾄⽬录D:npc)tar -xzvf windows_amd64_
解压缩完成后进⼊解压⽬录,需要执⾏对应安装命令,同时设置服务器ip地址端⼝以及连接秘钥(上⼀步新建客户端时⾃动⽣成并备⽤的信息)。 install -server=public-server:8024 -vkey=inner-server2唯⼀验证密钥之后我们需要启动相关服务端软件,并在控制台查看是否启动成功。 start外⽹服务器public-server(linux)服务端端⼝映射配置使⽤浏览器登录相关端⼝,提⽰⽤户名称与密码。使⽤如下修改后⽤户名密码进⾏登录。在此需要使⽤到上⽂谈到创建客户端后⾃动⽣成的客户端ID。选择TCP 隧道->新增 ,依次填写 模式(TCP)、客户端ID(client-id)、备注(inner-server1-80)、**服务端端⼝(8081)、⽬标(127.0.0.1:80)选择TCP 隧道->新增 ,依次填写 模式(TCP)、客户端ID(client-id)、备注(inner-server2-80)、**服务端端⼝(8082)、⽬标(127.0.0.1:80)打开public-server相关防⽕墙sudo firewall-cmd --permanent --add-port=8081/tcpsudo firewall-cmd --permanent --add-port=8082/tcpsudo firewall-cmd --reload
测试访问public-server:8081/8082端⼝并观察服务端、客户端⽇志进⾏验证转发是否成功。总结⾄此,我们基于nps完成了最常见的内⽹穿透配置,其实nps所⽀持的协议、操作系统⾮常多,⼤家可以根据官⽅⽂档进⾏逐步学习、验证即可。整体系统的可⽤性⾮常好,我部署了⼀年没有出现过任何问题。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689812986a288270.html
评论列表(0条)