Head First 树莓派
树莓派安装系统,配置网络、国内镜像源,升级系统组件,安装 Docker
安装系统
3B 以上规格的树莓派现在支持64 位系统了,使用 arm64 指令集,速度更快。
SD 卡建议使用 C10 U3 A1
以上标准的卡,以便系统流畅运行。
使用Raspberry Pi Imager选择对应的系统烧录安装至 SD 卡,我这里选择的是Raspberry Pi OS Lite (64-bit)。
系统配置
初始化 SSH
由于树莓派默认关闭 SSH,而且首次进入系统需要初始化用户名和密码,刷好系统后要在 SD 卡里添加一些文件来修改配置。
在引导区(boot 盘)新建 ssh
文件。
在引导区(boot 盘)新建 userconf.txt
文件,内容如下
pi:$6$/4.VdYgDm7RJ0qM1$FwXCeQgDKkqrOU3RIRuDSKpauAbBvP11msq9X58c8Que2l1Dwq3vdJMgiZlQSbEXGaY5esVHGBNbCxKLVNqZW1
文件对应的是 用户名:pi
密码: raspberry
网络配置 WiFi
在引导区(boot 盘)新建 wpa_supplicant.conf
文件,根据需要修改内容。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=CN
update_config=1
network={
ssid="WiFi名称"
psk="WiFi密码"
}
IP 地址
SSH 连接需要用到 IP,可以直接查看路由器,进阶玩法可以参考相关资料。
更换国内镜像源
使用国内镜像源提高软件下载的速度 由于 Raspberry Pi OS 64-bit
的上游是使用 Debian 源进行编译,所以应该使用 Debian 的国内镜像源,下面使用的是清华源。
修改 /etc/apt/sources.list
执行命令
sudo sed -i 's/\ .*.debian.org/\ https:\/\/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
修改 /etc/apt/sources.list.d/raspi.list
执行命令
sudo sed -i 's/archive.raspberrypi.com\/debian\//mirrors.tuna.tsinghua.edu.cn\/raspberrypi\//g' /etc/apt/sources.list.d/raspi.list
系统升级
sudo apt update
sudo apt full-upgrade
sudo rpi-eeprom-update -a
sudo reboot
安装 Docker
开启 Docker 内存隔离
需要在引导区(boot 盘)修改 cmdline.txt
文件,行尾添加 cgroup_enable=memory cgroup_memory=1
。
使用阿里云镜像源安装,配置栗次元公益 docker 镜像加速源
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo touch /etc/docker/daemon.json
echo '{"registry-mirrors":["https://docker.lmirror.top"]}' | sudo tee /etc/docker/daemon.json
sudo service docker restart
安装 Pip
配置 Pip 清华源
sudo apt install python3-pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
建议注释 /etc/pip.conf
文件,提高下载速度
安装 fail2ban
sudo apt install fail2ban
fail2ban 的配置文件通常位于 /etc/fail2ban/ 目录下,fail2ban 的.conf 配置文件都是可以被.local 覆盖,所以配置方式建议是添加.local 文件,不修改原来的配置文件
添加文件 /etc/fail2ban/jail.local
[DEFAULT]
#忽略的IP列表,不受设置限制(白名单)
ignoreip = 127.0.0.1
#允许ipv6
allowipv6 = auto
#日志修改检测机制(gamin、polling和auto这三种)
backend = systemd
#针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置
[sshd]
#是否激活此项(true/false)
enabled = true
#过滤规则filter的名字,对应filter.d目录下的sshd.conf
filter = sshd
#ssh端口
port = ssh
#动作的相关参数
action = iptables[name=SSH, port=ssh, protocol=tcp]
#检测的系统的登陆日志文件
logpath = /var/log/secure
#屏蔽时间,单位:秒
bantime = 86400
#这个时间段内超过规定次数会被ban掉
findtime = 86400
#最大尝试次数
maxretry = 3
相关命令
#设置开机自动启动 fail2ban
sudo systemctl enable fail2ban
#重新启动 fail2ban
sudo systemctl restart fail2ban
#查看 fail2ban 的状态
sudo systemctl status fail2ban
# 查看所有可用 jail 的状态
fail2ban-client status
相关工具
- 树莓派 GPIO 工具表 Pinout