600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 树莓派使用NPS实现内网穿透

树莓派使用NPS实现内网穿透

时间:2022-09-04 12:17:46

相关推荐

树莓派使用NPS实现内网穿透

:# 树莓派使用NPS实现内网穿透

前言

之前想实现内网穿透,折腾过花生壳,不过有限制。后面又尝试了FRP,不过还没有成功过。这次使用NPS实现内网穿透,主要看上了它的图形化配置界面。

准备

服务端:CentOS系统,有公网IP。

客户端:我这里使用的是树莓派3B+,搭建的CentOS系统。传送门

软件下载

CPU确认

在下载前,看一下自己的服务器和客户端是什么CPU,方便查询,windows的在系统信息里面查看,linux查询命令如下:

cat /proc/cpuinfo

其中,model name就是你的CPU信息,我的服务器CPU是Intel。

model name: Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz

客户端:树莓派3B+可以通过上述命令查询,也可以官方硬件配置信息查询

这里值得注意的是,我之前以为是ARM的芯片,直接选择ARM的安装包,导致无法运行,实际上树莓派3B+是ARM V7(比较新的有可能是ARM V8)

软件下载

下载地址我的服务端是Intel的,所以我选择的“linux_386_server.tar.gz”,客户端是ARM V7的,所以我选择的“inux_arm_v7_client.tar.gz”。

服务端配置

服务端安装

文件上传:文件上传,我这边采用的是FileZilla上传,各位看官根据自己的习惯挑选工具。也可以选择宝塔的文件上传。软件解压,大家根据下载的软件包,使用不同的解压命令:

//如果是gz压缩的,才用该命令tar -zxvf linux_386_server.tar.gz//如果上面的不成功,使用如下命令tar -xvf linux_386_server.tar.gz

启动软件

//临时启动,断开SSH就会退出./nps//后台常驻,推荐正式服务使用(./nps&)

如果提示以下错误,则说明端口80被占用了

/04/10 20:08:10.239 [E] [http.go:67] listen tcp 0.0.0.0:80: bind: address already in use

修改配置文件,可以通过命令修改:

//打开文件vim conf/nps.conf//修改端口为你可以使用的端口http_proxy_port=8099

显示以下提示,则说明启动成功了

[root@hecs-x-medium-2-linux-120017 www]# ./nps /04/10 22:14:52.314 [I] [nps.go:202] the version of server is 0.26.10 ,allow client core version to be 0.26.0/04/10 22:14:52.784 [I] [connection.go:36] server start, the bridge type is tcp, the bridge port is 8024/04/10 22:14:52.787 [I] [server.go:200] tunnel task start mode:tcp port 8083/04/10 22:14:52.787 [I] [server.go:200] tunnel task start mode:httpHostServer port 0/04/10 22:14:52.787 [I] [connection.go:71] web management start, access port is 8080/04/10 22:14:52.789 [I] [connection.go:53] start http listener, port is 8099/04/10 22:14:52.789 [I] [connection.go:62] start https listener, port is 443

如果迟迟没有响应,则需要检查端口号是否被防火墙拦截,如果类似阿里云、华为云,则要看安全组里面是否放行

服务端配置

访问服务端网页配置界面

//根据上述打印,查看到web端的端口是8080///04/10 22:14:52.787 [I] [connection.go:71] web management start, access port is 8080通过IP:8080 访问你的web配置界面

登录服务端web界面,默认账号:admin,默认密码:123

登录成功后,在菜单里面选择“客户端”,在客户端列表里面,点击“新增”新增一个客户端。设置好密钥即可新增。

添加客户端成功后,在客户端列表,可以看到我们新增的设备,但这个设备的连接状态还是“离线”

仅仅添加客户端我们还无法通信,我们需要建立隧道和端口映射关系,在“TCP隧道”添加一个隧道

添加隧道时,相关配置信息如下:

客户端ID:是客户端列表里面的ID,如图所示。

服务器端口:是你远程访问的端口,也是公网服务器上要开放的端口。

目标(IP:端口):对应的是本地的IP及本地要开放的端口,一般本地IP地址为127.0.0.1,也可以是你路由器上对应的IP地址。

客户端配置

客户端安装

文件上传:文件上传,我这边采用的是FileZilla上传,各位看官根据自己的习惯挑选工具。也可以选择宝塔的文件上传。软件解压,大家根据下载的软件包,使用不同的解压命令:

//如果是gz压缩的,才用该命令tar -zxvf linux_arm_v7_client.tar.gz//如果上面的不成功,使用如下命令tar -xvf linux_arm_v7_client.tar.gz

启动软件

//x.x.x.x :你服务器的IP,//8024:服务器开放的端口,可以通过启动服务端打印的日志查看:server start, the bridge type is tcp, the bridge port is 8024。也可以在服务端仪表盘查看到客户端端口//vkey:添加客户端时的唯一验证码//临时启动,断开SSH就会退出./npc -server=x.x.x.x:8024 -vkey=demo123//后台常驻,推荐正式服务使用(./npc -server=x.x.x.x:8024 -vkey=demo123&)

如果你不知道这个命令,可以在“客户端列表”里面,点击ID旁的“+”,即可显示客户端命令,复制到这里运行即可

启动成功后我们能看到相关打印

[root@localhost nps]# ./npc -server=x.x.x.x:8024 -vkey=demo123/04/10 23:07:27.009 [I] [npc.go:231] the version of client is 0.26.10, the core version of client is 0.26.0/04/10 23:07:28.494 [I] [client.go:72] Successful connection with server x.x.x.x:8024

同时,在服务端的web页面,我们可以看到我们的设备连接状态是“在线”了。

添加一个网站试试

我这里用的是宝塔来快速建站的

添加一个网站,添加好后,会自动配置默认的站点,这个时候我们就可以远程测试一下。

访问你的公网IP:端口,就可以访问你的网站了,效果如下:

防火墙

因为客户端不涉及安全组,所有如果我们遇到端口无法使用时,看防火墙是否打开即可:查看开放的端口

firewall-cmd --zone=public --list-ports

查看监听的端口

netstat -lnpt

开放端口8024

firewall-cmd --zone=public --add-port=8024/tcp --permanent

关闭端口8024

firewall-cmd --zone=public --remove-port=8024/tcp --permanent

配置立即生效

firewall-cmd --reload

总结

映射端口的时候,一定要检查端口是否开放。可以通过后台命令,启动多个指令,这样你就可以映射多个端口了。在现在的基础上,你可以考虑把SSH、宝塔等端口都影射一下,后期在远程部署环境都不是事情。

树莓派3B+安装CentOS 7

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。