前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NPS内网穿透的搭建与演示

NPS内网穿透的搭建与演示

作者头像
yuanshuai
发布2022-08-22 15:19:33
3.5K1
发布2022-08-22 15:19:33
举报
文章被收录于专栏:一只程序原一只程序原

概念

内网穿透:内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。

简而言之:在外网访问局域网/内网的地址。

假设场景:人在外面逛街,但能通过手机浏览器访问家里的路由管理界面,或者远程操作家里的电脑。

常见内网穿透工具:ngrok、frpc、nps

nps是一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。

操作步骤

前期准备:

  • 外网能访问到的云服务器:阿里云、腾讯云等。
  • 内网自己搭建的服务器:我这里用的是树莓派4B 8G 64位arm架构的Debian系统服务器

因为我们内网搭建的服务器,在外网是访问不到的,所以我们需要一台云服务器,利用nps进行转发,并实现访问树莓派服务器。

接着在nps 的releases 页面:https://github.com/cnlh/nps/releases 找到你需要的版本,我这里用的服务器是腾讯云的centos 7,那么也就是Linux的64位版本,下载对应的服务端为linux_386_server,对客户端为linux_arm64_client

仓库里有两个这种的系统,注意区分,x86要用下面的client对应的server,否则域名解析和http都穿透不了!!!!

配置云服务器

下载服务端linux_386_server.tar.gz并上传到云服务器。

解压:

代码语言:javascript
复制
tar -zxvf linux_386_server.tar.gz

解压后发现有两个文件夹:1、conf:包含了nps的配置文件。2、web:nps的web界面文件

和一个可执行文件:nps

进入conf

代码语言:javascript
复制
cd conf/

编辑nps.conf:这是nps的配置文件。

代码语言:javascript
复制
vim nps.conf 

http和https端口,修改为和你内网服务相同的端口,这样才可以进行穿透。比如你建立了个博客,http端口为5000,https端口为:5100,那么服务端就要设置为对应的端口。

建议结合nginx使用,这样就可以一台服务器,部署多个服务,非常的丝滑。

修改下面的web配置:

默认web界面的密码和端口,建议修改成自己的。

全部设置完毕后,保存退出。

注:我这里将http端口设置为:5800,https:5200,bridge_port:5300

别忘了去云服务器防火墙开启对应的端口哦!!!

接下来回到nps上层目录

代码语言:javascript
复制
cd ..

启动nps

代码语言:javascript
复制
./nps

建议后台启动,还可以打印日志

代码语言:javascript
复制
nohup ./nps >> /root/test/nps/nps.log &

进入nps的web界面

http://云服务器ip:8080

输入账号密码,进行登录

这就是nps的web界面,我们可以看到客户端连接端口为:5300,http端口:5800,https端口:5200

加下来点击左边客户端,添加一个客户端(现在显示客户端总数为1,是因为我之前添加过一个)

备注可以写你内网服务器的名字什么的(我们这里写内网测试),其他的都可以留空,会自动生成秘钥!

点击新增:

我们可以看到自动生成了秘钥,并且客户端还没有连接,显示离线。

接下来,配置内网服务器。

配置内网服务器

类似于服务端的配置,将下载的nps客户端,上传的内网服务器,解压,进入。

启动nps客户端

代码语言:javascript
复制
nohup ./npc -server=云服务器ip:5300 -vkey=fjwbqfxwsy5lr9ui >> /root/test/npc/npc.log &

5300是我们上面设置的bridge_port, fjwbqfxwsy5lr9ui是我们客户端生成的秘钥

注:客户端启动文件叫npc,区别于服务端nps

接下来返回到web界面

可以看到变成了在线,并且显示了客户端地址,我们点击隧道,进去点击新增,创建内网穿透服务。

比如我们创建一条tcp通道,将外网的33端口,作为访问内网的ssh端口即22端口,就可以上面这样写。

点击新增

这样我们就可以用外网,用ssh连接工具,连接云服务器ip的33端口,进行ssh内网穿透,实现ssh连接内网的服务器。

当然也支持其他常见的协议穿透,具体可以参见nps官方文档。

文档地址:https://ehang-io.github.io/nps/#/?id=nps

再见!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021.11.23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档