:# 树莓派使用NPS实现内网穿透
服务端:CentOS系统,有公网IP。
客户端:我这里使用的是树莓派3B+,搭建的CentOS系统。传送门
在下载前,看一下自己的服务器和客户端是什么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)
//如果是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配置界面
添加隧道时,相关配置信息如下:
客户端ID:是客户端列表里面的ID,如图所示。
服务器端口:是你远程访问的端口,也是公网服务器上要开放的端口。
目标(IP:端口):对应的是本地的IP及本地要开放的端口,一般本地IP地址为127.0.0.1,也可以是你路由器上对应的IP地址。
//如果是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
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页面,我们可以看到我们的设备连接状态是“在线”了。
firewall-cmd --zone=public --list-ports
netstat -lnpt
firewall-cmd --zone=public --add-port=8024/tcp --permanent
firewall-cmd --zone=public --remove-port=8024/tcp --permanent
firewall-cmd --reload
树莓派3B+安装CentOS 7