【树莓派】树莓派搭建个人服务器

租的云服务器过期了,计划把云服务器上的项目迁移到树莓派上

树莓派是一个低功耗、低成本的微型电脑,它只有一块信用卡大小但功能齐全,目前已经出到了第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

如果提示签名异常,参考下面博客:

GPG error: The following signatures couldn't be verified because the public key is not available解决方法 - Clotho_Lee - 博客园 (cnblogs.com)

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不一样可以进官网下载其他版本

官网:Download | Loophole

# 查看处理器架构,返回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服务不关闭代理就会一直持续

相关推荐
blessing。。26 分钟前
I2C学习
linux·单片机·嵌入式硬件·嵌入式
2202_7544215440 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
努力的悟空1 小时前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
运维&陈同学1 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
旦沐已成舟2 小时前
DevOps-Jenkins-新手入门级
服务器
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
软件技术员3 小时前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll3 小时前
Linux进阶:环境变量
linux
耗同学一米八3 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络