树莓派使用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”。
    树莓派使用NPS实现内网穿透_第1张图片

服务端配置

服务端安装

  • 文件上传:文件上传,我这边采用的是FileZilla上传,各位看官根据自己的习惯挑选工具。也可以选择宝塔的文件上传。
  • 软件解压,大家根据下载的软件包,使用不同的解压命令:
//如果是gz压缩的,才用该命令
tar -zxvf linux_386_server.tar.gz

//如果上面的不成功,使用如下命令
tar -xvf linux_386_server.tar.gz
  • 启动软件
//临时启动,断开SSH就会退出
./nps

//后台常驻,推荐正式服务使用
(./nps&)

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

2022/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-20200622120017 www]# ./nps 
2022/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
2022/04/10 22:14:52.784 [I] [connection.go:36]  server start, the bridge type is tcp, the bridge port is 8024
2022/04/10 22:14:52.787 [I] [server.go:200]  tunnel task  start mode:tcp port 8083
2022/04/10 22:14:52.787 [I] [server.go:200]  tunnel task  start mode:httpHostServer port 0
2022/04/10 22:14:52.787 [I] [connection.go:71]  web management start, access port is 8080
2022/04/10 22:14:52.789 [I] [connection.go:53]  start http listener, port is 8099
2022/04/10 22:14:52.789 [I] [connection.go:62]  start https listener, port is 443

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

服务端配置

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

通过IP:8080 访问你的web配置界面
  • 登录服务端web界面,默认账号:admin,默认密码:123
    树莓派使用NPS实现内网穿透_第2张图片

  • 登录成功后,在菜单里面选择“客户端”,在客户端列表里面,点击“新增”新增一个客户端。设置好密钥即可新增。
    树莓派使用NPS实现内网穿透_第3张图片

  • 添加客户端成功后,在客户端列表,可以看到我们新增的设备,但这个设备的连接状态还是“离线”
    树莓派使用NPS实现内网穿透_第4张图片

  • 仅仅添加客户端我们还无法通信,我们需要建立隧道和端口映射关系,在“TCP隧道”添加一个隧道
    树莓派使用NPS实现内网穿透_第5张图片

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

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

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

    目标(IP:端口):对应的是本地的IP及本地要开放的端口,一般本地IP地址为127.0.0.1,也可以是你路由器上对应的IP地址。
    树莓派使用NPS实现内网穿透_第6张图片

客户端配置

客户端安装

  • 文件上传:文件上传,我这边采用的是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旁的“+”,即可显示客户端命令,复制到这里运行即可
树莓派使用NPS实现内网穿透_第7张图片

  • 启动成功后我们能看到相关打印
[root@localhost nps]# ./npc -server=x.x.x.x:8024 -vkey=demo123
2022/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
2022/04/10 23:07:28.494 [I] [client.go:72]  Successful connection with server x.x.x.x:8024

同时,在服务端的web页面,我们可以看到我们的设备连接状态是“在线”了。
树莓派使用NPS实现内网穿透_第8张图片

添加一个网站试试

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

  • 添加一个网站,添加好后,会自动配置默认的站点,这个时候我们就可以远程测试一下。
    树莓派使用NPS实现内网穿透_第9张图片

  • 访问你的公网IP:端口,就可以访问你的网站了,效果如下:
    树莓派使用NPS实现内网穿透_第10张图片

防火墙

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

你可能感兴趣的:(硬件,NPS,树莓派,内网穿透,宝塔)