当前位置: 首页 > article >正文

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

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

树莓派是一个低功耗、低成本的微型电脑,它只有一块信用卡大小但功能齐全,目前已经出到了第5代,在编程学习这块很受欢迎。我选择它的理由很简单——造价相对便宜

dadbddf80f0347a69949160e014f623f.png

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

908c4b9dbd4c403dbc593623988d2add.png下载Raspberry Pi OS Lite 64位版本,lite版本没有图形界面操作指令接近linux,适合有linux系统操作经验的同学

2.2、安装树莓派系统烧录工具

Raspberry Pi Imager是官方的烧录工具,操作简单开箱即用
下载地址:https://www.raspberrypi.com/software/

ae6cd20e79fa490694f122eab6b5c18d.png

打开Raspberry Pi Imager

e07b8774e21d4ea9a2763470b503112b.png

点击"CHOOSE DEVICE",选择Raspberry Pi 5

6770b923aa2c4ae19b4a581417ba3bff.png

点击"选择操作系统",选择"Use custom",找到之前下载的系统镜像文件

b63fa0413e244258b9b99fee15164aee.png

将SD卡放入读卡器再插入电脑,点击"SD卡"选项,选择设备

416a50adea844b5a8c1e3180e2bf850c.png

点击next,选择"编辑设置",按自己的需要填写配置。重点留意主机名、用户名密码还有wifi这几项,后面连接树莓派会用到

cdfc2254d8ea47d68038d3f50c7f733d.png

在servie一栏选择选择使用密码登录

4fe74a1be7974a909dbebe7c56decba5.png

b11355c3ab7246ec92ed78e1db82a212.png

配置好了之后点击"保存",然后点击"是"开始写入系统,写入完成会提示拔出SD卡

62d743b5fdfe4cf9af590cc5ed6b65e1.png

3、连接树莓派

电脑和树莓派接入同一个wifi,打开电脑命令行ping主机名,拿到树莓派的ip6地址

ping 上面填写的主机名

9ea7f3f29e164647bfb0fb2dc9926f84.png

打开shell,新建会话输入ip6地址、登录名、密码即可连接树莓派

00f8aa7180004257a3d8a3830a49ec1a.png

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

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

fcd00009b5d044559fbc3195400cf004.pngGPG 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安装成功了

82dc5a4e20a14253a195ac356272675f.png

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

b6c5954141e9423ca5d71f1ec95d30c5.png

e0e041e4883e47c499108e54834d25dd.png

进入登录页面注册账号并完成登录,登录成功会提示success

1e860992e7834aafa4adae7bb1ecf347.png

62b62d3c9232498aae1f01d260c5608a.png

回到命令行输入代理指令,等待客户端返回域名

# 建立代理
sudo ./loophole http 开放端口 树莓派ip地址
例如:sudo ./loophole http 80 192.168.133.233

5714d8231e204a949f601ee72f109d42.png

19a0a03d40334724b9453d2f9321bb4e.png

现在就可以通过loophole返回的域名来访问树莓派的服务了,只要loophole服务不关闭代理就会一直持续


http://www.kler.cn/news/361635.html

相关文章:

  • 「AIGC」n8n AI Agent开源的工作流自动化工具
  • VRoid Studio 介绍 3D 模型编辑器
  • Vue使用OnlyOffice预览文档方案
  • 数智教育专场(二)
  • Ubuntu(22.04)本地部署Appsmith
  • YOLOv8改进,YOLOv8采用WTConv卷积(感受野的小波卷积),二次创新C2f结构,ECCV 2024
  • Java框架精品项目【用于个人学习】
  • 探索 Python Web 开发:从框架到爬虫
  • QLORA:高效微调量化大型语言模型
  • export 与 export default 对应import的写法
  • (二十)Java之多线程
  • Matlab 火焰识别技术
  • 基于SpringBoot 4S店车辆管理系统【附源码】
  • 【C++】stack 和 queue
  • Java网络编程-简单的API调用
  • docker-compose-lnmp-wordpress
  • 导出问题处理
  • Facebook封号原因分析及解决办法
  • springboot中service和controller作用
  • #{}和${}
  • TemporalBench:一个专注于细粒度时间理解的多模态视频理解的新基准。
  • 软件开发术语(A开头)---持续更新
  • JavaScript 中,要实现清零操作
  • Leetcode—194. 转置文件【中等】(Shell)
  • 实验:使用Oxygen发布大型手册到Word格式
  • Vlan虚拟局域网