租的云服务器过期了,计划把云服务器上的项目迁移到树莓派上
树莓派是一个低功耗、低成本的微型电脑,它只有一块信用卡大小但功能齐全,目前已经出到了第5代,在编程学习这块很受欢迎。我选择它的理由很简单------造价相对便宜
1、准备材料
1.1、搭建服务器所需的设备
a、树莓派5主板一个,4GB运行内存
b、树莓派充电器一个,5.1V
c、32G内存卡和读卡器一个
1.2、软件
a、Raspberry Pi Imager,树莓派烧录工具
b、Xshell,远程连接工具
c、nginx,web服务器
d、loopHole,内网穿透工具
1.3、其他
a、稳定的wifi环境
b、熟悉linux操作系统
树莓派精简的只剩一块主板,所以我们要给它添加存储设备,首选内存卡,树莓派上有一个专门插内存卡的卡槽。充电器最好选用官方的5.1V版,一般充电器可能会提示电压不足
2、安装树莓派系统
2.1、下载树莓派操作系统
Raspberry Pi OS是树莓派官方的操作系统,它是基于Debian为树莓派专门定制的版本
下载地址:https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
下载Raspberry Pi OS Lite 64位版本,lite版本没有图形界面操作指令接近linux,适合有linux系统操作经验的同学
2.2、安装树莓派系统烧录工具
Raspberry Pi Imager 是官方的烧录工具,操作简单开箱即用
下载地址:https://www.raspberrypi.com/software/
打开Raspberry Pi Imager
点击"CHOOSE DEVICE",选择Raspberry Pi 5
点击"选择操作系统",选择"Use custom",找到之前下载的系统镜像文件
将SD卡放入读卡器再插入电脑,点击"SD卡"选项,选择设备
点击next,选择"编辑设置",按自己的需要填写配置。重点留意主机名、用户名密码还有wifi这几项,后面连接树莓派会用到
在servie一栏选择选择使用密码登录
配置好了之后点击"保存",然后点击"是"开始写入系统,写入完成会提示拔出SD卡
3、连接树莓派
电脑和树莓派接入同一个wifi,打开电脑命令行ping主机名,拿到树莓派的ip6地址
ping 上面填写的主机名
打开shell,新建会话输入ip6地址、登录名、密码即可连接树莓派
4、修改系统配置
4.1、配置键盘
使用vi命令编辑文档时删除键和方向键可能失效,需要修改键盘配置
# 编辑键盘配置文件
sudo vi /etc/vim/vimrc.tiny
# 文件修改内容
1、set compatible 改成 set nocompatible
2、文件尾添加 set backspace=2
4.2、修改安装源
使用系统自带的源更新软件非常的慢,为了节省时间我们要把源换成国内的
# 备份源文件
cd /etc/apt
sudo cp sources.list sources.list.bak
# 编辑源文件
sudo vi /etc/apt/sources.list
# 源文件修改内容
1、清空原来的文本
2、添加阿里源:
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
4.3、更新软件
# 更新软件
sudo apt-get update
如果提示签名异常,参考下面博客:
5、安装常用工具
5.1、安装sftp
服务器经常用到文件传输功能,因此安装一个sftp
# 安装sftp
sudo apt-get install vsftpd
# 编辑sftp配置文件
sudo vi /etc/vsftpd.conf
# 配置文件修改内容
1、配置用户写权限,去掉write_enable=YES前的#注释
2、配置端口,去掉local_umask=022前的#注释
# 重启服务
sudo service vsftpd restart
6、部署项目
6.1、安装nginx
nginx可以用来部署静态页面和代理请求,我们拿它来作为项目试点。网上使用yum安装nginx依赖居多,但Debain安装yum一直提示无法找到安装包,改用apt-get
# 安装依赖
sudo apt-get install libpcre3 libpcre3-dev gcc zlib1g zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
# 下载nginx
wget "http://nginx.org/download/nginx-1.20.1.tar.gz"
# 解压
sudo tar -xf nginx-1.20.1.tar.gz
# 进入nginx目录
cd nginx-1.20.1
# 创建安装目录,可自行替换
mkdir -p /home/soft/nginx
# 检查依赖 安装路径需与上面一致
sudo ./configure --prefix=/home/soft/nginx --with-http_stub_status_module --with-http_ssl_module --with-cc-opt="-Wno-error -Wno-deprecated-declarations"
# 执行编译
sudo make
sudo make install
# 进入安装目录
cd /home/soft/nginx/sbin
# 指定配置文件
sudo ./nginx -c /home/soft/nginx/conf/nginx.conf
# 启动nginx
sudo ./nginx -s reload
访问树莓派ip:80,如果能正常访问就说明nginx安装成功了
7、内网穿透
由于局域网的关系树莓派上的服务只能在wifi范围内访问,狭义上讲公网是无法直接访问内网的,如果我们想在公网上访问内网的资源就要用到内网穿透技术。
网上的内网穿透工具有很多,比如说花生壳和cpolar,有兴趣的话可以自己了解一下。这里推荐loophole------一款国外的内网穿透工具,选择它的原因和前面一样,也是便宜,loophole是免费,不过免费有免费的代价,它的带宽速度非常感人,如果你有钞能力完全可以选择其他方案
首先要安装loophole的客户端,loophole提供了不同配置的客户端,我的树莓派是arm64的,相同配置的可以参考下面的指令下载,如果arm不一样可以进官网下载其他版本
# 查看处理器架构,返回aarch64就是arm64
uname -m
# 下载arm64安装包
wget https://github.com/loophole/cli/releases/download/1.0.0-beta.15/loophole-cli_1.0.0-beta.15_linux_arm64.tar.gz
# 解压
tar -zxf loophole-cli_1.0.0-beta.15_linux_arm64.tar.gz
# 重命名文件夹 进入目录
mv loophole-cli_1.0.0-beta.15_linux_arm64 loophole
cd loophole
输入登录指令后会返回链接和激活码,浏览器打开链接输入激活码确认设备
# 登录
sudo ./loophole account login
进入登录页面注册账号并完成登录,登录成功会提示success
回到命令行输入代理指令,等待客户端返回域名
# 建立代理
sudo ./loophole http 开放端口 树莓派ip地址
例如:sudo ./loophole http 80 192.168.133.233
现在就可以通过loophole返回的域名来访问树莓派的服务了,只要loophole服务不关闭代理就会一直持续