业务需求

需求:想让用户访问我内网服务器里资源的资源,(我的内网服务器在虚拟机中)
我虚拟机中有许多重要的资料,但是非本地用户访问不了,因此我需要做内网穿透,来实现外网用户访问我的内网资源。

nps介绍

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

nps功能介绍

1、做微信公众号开发、小程序开发等----> 域名代理模式

2、想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式

3、在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式

4、在外网使用HTTP代理访问内网站点----> http代理模式

5、搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备----> socks5代理模式

说明:想要满足我的需求只需要tcp代理模式即可,因此我们以tcp代理模式为掩饰,剩下的参考文档操作即可

实验环境的要求

1、需要有个公网IP,我的是以一个华为云服务器带有公网(CentoOS7.5),服务器主机名:my-bo
2、实验环境:一个在vmwork16的虚拟上的内网服务器(CentOS7.5),IP:192.168.9.132,服务器主机名:node3。所以我的服务端和客户端都是Linux。

nps的下载:

下载网址: https://github.com/ehang-io/nps/releases

我这里安装的是v0.26.10(是最新版)

在这里插入图片描述

nps的服务端安装(在公网服务器上安装)

我这属于新版,相对于旧版有所不同

将下载的server软件包,传至到Linux

然后解压,安装,启动

[root@mybo ~]# tar xzvf linux_amd64_server.tar.gz 
[root@mybo ~]# ./nps install
[root@mybo ~]# nps start                #注意nps服务端启动会占用80,8080,8024端口

nps的版本:

[root@mybo ~]# nps --version
Version: 0.26.10
Core version: 0.26.0
Same core version of client and server can connect each other

此时服务端启动完毕,在浏览器访问:公网ip:8080

默认登陆用户/密码:admin/123

在这里插入图片描述

点击“客户端—>新增”,来添加客户端

在这里插入图片描述

配置客户端:
在这里插入图片描述
点击"+",将一条命令运行在客户端

在这里插入图片描述

nps客户端配置(在内网服务器上安装)

[root@node3 ~]# tar xzvf linux_amd64_client.tar.gz
[root@node3 ~]# ./npc -server=121.36.193.171:8024 -vkey=noluyzdib92ytybn -type=tcp
2022/03/06 05:00:51.066 [I] [npc.go:231]  the version of client is 0.26.10, the core version of client is 0.26.0
2022/03/06 05:00:51.264 [I] [client.go:72]  Successful connection with server 121.36.193.171:8024
#显示来连接成功

如何看和客户端来连接成功?

在Web界面,看刚才增加的客户端的信息:
在这里插入图片描述

设置内网穿透,访问内网服务资源

实现效果:

  • 将服务端的IP:8002端口映射到客户端的IP:80端口,也就是访问内网的Web资源。
  • 将服务端的IP:8003端口映射到客户端的IP:22端口,也就是ssh远程连接内网服务器。

操作如下:

1、映射客户端的IP:80端口:点击刚才配置的客户端”隧道—>新增“:

在这里插入图片描述
配置完之后,点击”新增“

2、映射客户端的IP:22端口:点击刚才配置的客户端”隧道—>新增“:
在这里插入图片描述
配置完之后,点击”新增“

3、点击左侧导航栏的”TCP隧道“
在这里插入图片描述

配置华为云服务器的安全组—开放8002,8003端口

华为云服务器默认之开启22端口,因此我们需要手动开启8002,8003端口,否则影响实验效果。

点击”服务器名称—>安全组配置—>配置入口规则,开放8002,8003端口即可“。

测试访问Web资源穿透效果

前提:内网服务中需要安装httpd服务,并且开启

[root@node3 ~]# yum install -y httpd
[root@node3 ~]# systemctl restart httpd
[root@node3 ~]# echo ""Hello Nps > /var/www/html/index.html    #准备测试文件

内网测试:没问题。
在这里插入图片描述

测试ssh远程登陆

在这里插入图片描述
成功。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐