2021SC@SDUSC
我们组的项目是树莓派提升计划,我主要负责其中有关于树莓派的linux操作系统相关方面的代码。首先需要进行项目环境的搭建。
项目环境:- 树莓派4b
- Ubuntu Desktop 21.04
- 远程连接:
- XShell Win10
- JuiceSSH Android
依据网络相关教程,使用SDFormatter,Win32DiskImager将SD卡格式化,并写入Ubuntu Desktop 21.04系统。使用Ubuntu Desktop主要是为了方便,选择Ubuntu Server也可以。
SSH:Ubuntu Desktop默认没有打开SSH连接,需要使用以下命令安装openssh,并根据需要调整配置文件/etc/ssh/sshd_config,使得可以通过SSH访问树莓派。
sudo apt-get install openssh
经测试,在校园网内,将电脑与树莓派通过网线连接至同一路由器时,可以正常发起ssh连接;通过校园网wifi,则不能发起连接。因此实际使用感觉非常不方便。
SSH内网穿透:使用云服务器,可以将只能内网访问的树莓派代理映射至公网ip,不仅省去了有线连接至路由器的麻烦,更可以随时随地使用ssh软件进行连接,监控状态,也有利于多人使用同一平台开发。
首先利用以下命令使得树莓派可以免密登录:
ssh-copy-id 账户名@云服务器ip
然后,将树莓派通过ssh反向代理至云服务器:
ssh -fCNR [云服务器ip]:[反向代理端口]:[树莓派IP]:[树莓派端口] [用户名@云服务器IP]
至此,已经可以在云服务器上通过ssh命令访问到树莓派。但是,只有登录到云服务器上后,才能使用ssh访问。为了能够通过公网ip直连树莓派,再在云服务器上进行一次ssh正向代理:
ssh -fCNL [云服务器ip]:[直连端口]:[云服务器ip]:[反向代理端口] [用户名@云服务器IP]
之后,就可以使用ssh软件通过云服务器ip和直连端口访问树莓派了。
AutoSSH:经实测,使用上述方法建立的ssh连接并不稳定,可以使用autossh来建立稳定连接
首先安装autossh:
sudo apt-get install autossh
autossh的使用方式与ssh极为相似:
ssh -fNCR ... autossh -M port -fNCR ...
其中,参数-M指定一个端口监控ssh连接状态。当连接断开时,自动重连。
经测试,使用autossh后,在电脑上使用XShell和移动端使用JuiceSSH,均能够稳定访问树莓派,达到了最初的目的。至此,基本环境搭建完成,之后的工作可以在搭建好的平台上继续进行。



