当前位置: 首页 > Linux

树莓派搭建git服务器并实现公网访问(一)共2篇—安装frp实现内网SSH穿透

时间:2023-04-06 18:51:48 Linux

为了让家里的树莓派可以通过公网访问,我们需要一个内网穿透为软件,笔者这里选择frp。与其他方式相比,具有开源免费、配置简单、端口数量无限制等优点。下载地址:https://github.com/fatedier/f...1.下载安装包服务端和客户端都是同一个安装包,但是需要根据自己的系统下载对应的安装包笔者树莓派安装32位CentOS操作系统,客户端下载的版本为frp_0.21.0_linux_arm.tar.gz服务端安装64位CentOS操作系统为云服务器,下载的版本为服务端为frp_0.21.0_linux_amd64.tar.gz,配置将压缩包单独解压,可以看到frps为服务端启动脚本,frpc为客户端启动脚本。服务端创建frps.ini文件,具体配置项可参考frps_full.ini文件。客户端创建frpc.ini文件,具体配置项可参考frpc_full.ini文件。作者配置服务器如下:[common]#frpserverport(required)bind_port=7000#frpserverpassword(required)token=Pleasesetyourownpassword#Authenticationtimeouttime,因为时间戳将用于加密认证以防止消息被劫持后被别人利用#所以服务器和客户端所在机器的时间差不能超过这个时间(秒)#默认是900秒,也就是15分钟,如果设置了为0,则不进行消息时间戳的超时验证authentication_timeout=0#dashboard端口,只有设置了才能使用dashboard(即后台)dashboard_port=7500#dashboard访问的用户名和密码,如果没有设置,默认admindashboard_user=admindashboard_pwd=admin客户端配置如下:[common]server_addr=请填写云服务器ip地址server_port=7000token=请填写服务器设置的密码[ssh]type=tcplocal_ip=127.0.0.1local_port=22use_encryption=falseuse_compression=falseremote_port=60013.运行服务器启动:nohup./frps-c./frps.ini&clientstart:client因为远程操作需要重启系统或者客户端进程被不小心死了,服务器无法再连接。为了保证客户端服务的高可用,仅仅设置客户端自动启动是不够的。作者的解决办法是加一个定时脚本,定时扫描客户端进程,不存在则启动。笔者的定时启动脚本如下monitor.sh:#!/bin/shMonitor(){ps-fe|grepfrpc|grep-vgrepif[$?-ne0];然后回显“开始进程......”nohup/usr/local/frp/frp_0.21.0_linux_arm/frpc-c/usr/local/frp/frp_0.21.0_linux_arm/frpc.ini&fi}Monitor>>/usr/local/frp/monitor.log编辑/etc/crontab在文件的最后一行添加如下代码,设置为每分钟扫描一次*/1****root/bin/sh/usr/local/frp/monitor.sh4.完成浏览器访问服务器IP地址加映射SSH端口号可以在dashboard页面查看如下:SSH工具配置服务器IP地址,端口为映射的SSH端口(这里是author'sis6001),用户名和密码是客户端的用户名和密码,可以直接通过公网访问局域网内的机器。另外,如果服务器配置中设置了authentication_timeout参数不为0,需要保证客户端和服务器时间同步,否则会启动失败。需要设置的同学可以参考下面的方式设置:ntpdate0.asia.pool.ntp.org#同步网络时间timedatectlset-timezoneAsia/Shanghai#设置时区但是树莓派不像我们现在的笔记本那样存在或者hostscmos电池断电后,时间停留在当前时间点,下次开机还是从这个时间开始。因此,可以在上面提到的脚本文件中添加如下代码:/1****ntpdate0.asia.pool.ntp.org