MF系统配置手册(Pios)

1 系统环境

2022-09-22-raspios-bullseye-arm64-lite.img.xz

2 系统配置&优化

2.1 屏蔽开机彩虹屏

1
2
# /book/config.txt 添加一行
disable_splash=1
1
2
# /boot/cmdline.txt 末尾添加
logo.nologo

2.3 更换国内源

1
2
3
# 查看Pi os debian版本
cat /etc/debian_version
11.5

修改/etc/apt/sources.list

1
2
3
4
5
6
7
8
9
10
11
12
13
# 清华大学源 https://mirror.tuna.tsinghua.edu.cn/help/raspbian/
# 选择合适的版本配置源
# aarch64 这里系统为64位
# 编辑 `/etc/apt/sources.list` 文件,用以下内容取代:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

修改/etc/apt/sources.list.d/raspi.list

1
2
# 对于两个架构,编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
1
2
3
4
# 清理和更新缓存
sudo apt clean && sudo apt update
# 更新系统
sudo apt upgrade

2.4 校准时区

1
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.5 优化rc-local

1
nano /lib/systemd/system/rc-local.service

image-20221110144918985

2.6 更新boot(固件更新)

1
2


2.7 配置静态IP

修改/etc/dhcpcd.conf

1
2
3
4
5
6
7
8
9
# 设置eth0
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=223.5.5.5 114.114.114.114
# 设置wlan0(后面配置AP需要)
interface wlan0
static ip_address=192.10.66.1/24
nohook wpa_supplicant
1
2
3
# 重启网卡
ifconfig eth0 down && ifconfig eth0 up
# 改后直接重启wlan0会报错,配置hostapd和dnsmasq重启后正常。

这里wlan0静态地址配置有2种方式配置:

  1. 第一种修改/etc/dhcpcd.conf添加,支持nat,正常访问eth0网络和互联网; (推荐)
  2. 第二种修改/etc/network/interfaces,支持nat访问到etho网卡,不支持访问到eth0网络和互联网;
1
2
3
4
5
6
7
8
9
# 第二种方法配置wlan0静态IP
sudo nano /etc/network/interfaces
# 此次修改的文件是interfaces文件,在其中加入
allow-hotplug wlan0
iface wlan0 inet static
address 192.10.66.1
netmask 255.255.255.0
network 192.10.66.0
broadcast 192.168.1.255

2.8 配置ufw防火墙

1
2
3
4
5
6
7
8
9
10
apt install ufw      # 安装
ufw enable # 启动
ufw default deny # 默认禁止所有
ufw allow 22 # 开启ssh
ufw allow 10000 # 开启10000
ufw allow 13000:13100/tcp # 开启ftp交互端口范围
ufw allow 21 # 开启ftp
ufw allow 53 # hostapd
ufw allow 67 # hostapd hostapd端口要放开,否则手机能连接,PC无法连接,未理解原因
ufw status # 查看防火墙规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 开启ufw nat转发
1.修改ufw文件,允许接收转发的包
vi /etc/default/ufw
---
DEFAULT_FORWARD_POLICY="ACCEPT"
2.修改sysctl.conf启用内核转发(取消注释)
vi /etc/ufw/sysctl.conf
---
net/ipv4/ip_forward=1
3.修改/etc/ufw/before.rules,添加相应的nat配置,直接添加到`COMMIT`下面另起一行添加如下内容就可以了.
vi /etc/ufw/before.rules
---
COMMIT
后面添加
*nat
:PREROUTING - [0:0]
:POSTROUTING - [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
4.重启ufw
ufw reload

这个地方要注意的就是必需同时添加PREROUTINGPOSTROUTING.这也是通过ufw配置nat时的难点所在!笔者很长一段时间都浪费在反复修改PREROUTING上.后来仔细一想,有进来的包也必需有出去的包nat才能成行吧,于是试着添加POSTROUTING,结果就通了!这个地方还有一点应该就是rules文件的语法吧.
*nat
:PREROUTING - [0:0]
:POSTROUTING - [0:0]

#这个地方加自定义语句
COMMIT

之前也是很长一段时间,都在原有的COMMIT里加东西,测试,也是浪费了挺长的时间才看明白,语法

3 安装服务

3.1 AP配置

3.1.1 安装hostapd和dnsmasq

1
2
3
4
5
6
7
8
9
# install hostapd
sudo apt install hostapd
# hostapd 自启动配置
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
# install dnsmasq
sudo apt install dnsmasq
# 安装插件
sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent

3.1.2 配置wlan0静态IP

1
2
3
4
5
6
# 修改/etc/dhcpcd.conf
sudo nano /etc/dhcpcd.conf
# 添加下方内容
interface wlan0
static ip_address=192.10.66.1/24
nohook wpa_supplicant

3.1.3 配置路由转发和IP伪装(使用ufw防火墙请略过)

路由转发

1
2
3
4
5
6
# 创建文件/etc/sysctl.d/routed-ap.conf
sudo nano /etc/sysctl.d/routed-ap.conf
# 文件内容

# Enable IPv4 routing
net.ipv4.ip_forward=1

IP伪装

1
2
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo netfilter-persistent save
1
2
# 要确保 WiFi 无线电不会在树莓派上被阻止,请执行以下命令:
sudo rfkill unblock wlan

3.1.4 配置hostapt和dnsmasq

1
2
3
4
5
6
7
8
9
10
11
# 修改dnsmqsq.conf
sudo nano /etc/dnsmasq.conf

# 添加文件内容
interface=wlan0 # 监听接口
dhcp-range=192.10.66.2,192.10.66.20,255.255.255.0,24h
# dhcp地址池和租约时间
dhcp-option=option:dns-server,223.5.5.5,114.114.114.114 # 客户端DNS
domain=wlan # Local wireless DNS domain
address=/gdw.com/192.10.66.1
# Alias for this router
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 修改/etc/hostapd/hostapd.conf
sudo nano /etc/hostapd/hostapd.conf

--------------
# 添加文件内容
country_code=CN # wifi国家ISO代码
interface=wlan0 # 绑定接口
ssid=NameOfNetwork_5G # wifi名称,自定义
# 更改热点操作模式
# hw_mode=ghw_mode=ahw_mode
# a = IEEE 802.11a (5 GHz) (树莓派 3B+ 起)
# b = IE 8021.1亿 (2.4 GHz)
# g = IE 802.11g (2.4 GHz)
hw_mode=a
channel=153 # 设置信道,acs_survey自动选择信道,5G 153
# 无线MAC地址过滤
# 此选项要求 driver=hostap 或 driver=nl80211
# 0 = 接受所有连接,仅拒绝 deny 列表中的连接
# 1 = 拒绝所有连接,仅接受 accept 列表中的连接
# 2 = 使用外部 RADIUS 服务器 (还是会优先查找 accept/deny 列表)
# 简单一点的话,可以将两个列表设置为同一个文件,仅由 macaddr_acl 来控制允许或拒绝
macaddr_acl=0
auth_algs=1 # 身份验证算法,1 开放系统认证,2 共享密钥认证(需要 WEP),3 两者
ignore_broadcast_ssid=0 # 是否广播,0 广播SSID,1 不广播SSID(发送空SSID,即长度为0的SSID)
wpa=2 # 1 wpa,2 wpa2, 3 两者。 新的设备可以设置为2,仅使用wpa2版本
wpa_passphrase=12345678 # wifi密码,自定义
wpa_key_mgmt=WPA-PSK # 设置密钥管理算法WPA-PSK WPA-EAP或两者
wpa_pairwise=CCMP # 设置加密算法,CCMP就是AES,不推荐使用TKIP,除非设备不支持
rsn_pairwise=CCMP # 默认情况下rsn_pairwise自动设置为wpa_pairwise的值,当然也可以手动指定。

3.1.5 重启生效

1
reboot

3.2 docker环境安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 卸载旧版本
sudo apt-get remove -y docker docker-engine docker.io containerd runc

# 更新软件包索引并安装软件包以允许使用基于 HTTPS 的存储库
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release

# 添加 Docker 的官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 使用以下命令设置存储库:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装最新版
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 配置daemon.json
cat >/etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
1
2
3
# 关闭防火墙,关闭docker防火墙规则配置,使用ufw规则
echo DOCKER_OPTS="--iptables=false" >> /etc/default/docker
DOCKER_OPTS="--iptables=false"

参考1

参考2

1
2
# 重启docker
systemc restart docker

3.3 gdwserv

导入gdwserv镜像

1
2
docker run --restart always -u root --privileged=true --name gdwserv -p 10000:10000 -p 6058:6058 -e BASEURL=http://192.168.1.101:10000/gdw -dti -v /data:/usr/local/g
dw/data 192.168.1.118:5000/gdwserv:2.0.0

3.4 ftp服务

1
apt install vsftpd

修改/etc/vsftpd.conf

1
2
3
4
5
6
7
8
9
10
11
# 添加如下配置
local_root=/data
write_enable=yes
allow_writeable_chroot=YES
chroot_local_user=YES
max_clients=1000
max_per_ip=1000

pasv_enable=YES
pasv_min_port=13000
pasv_max_port=13100

修改/etc/ftpusers

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    # 注释掉root,以允许root登录
--------------
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).

#root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody

备注:pam认证配置文件为 /etc/pam.d/vsftpd

4 系统镜像制作

4.1 自定义镜像自动扩展磁盘

基于PI OS第一次开机初始化配置方法,重新执行初始化任务。

4.1.1 重新放入“resize2fs_once”文件(可选)

从Pi OS系统镜像/etc/init.d内拷贝“resize2fs_once”并重新放到sd卡同位置内。

新系统默认存在该文件

4.1.2 修改“cmdline.txt”

备注: 不同Pi OS版本可能存在差异,参考Pi OS镜像的默认配置。

1
2
3
4
5
6
7
8
9
10
# 在文件末尾添加
quiet init=/usr/lib/raspberrypi-sys-mods/firstboot

#比如,如果原先是
console=serial0,115200 console=tty1 root=PARTUUID=a4f2a2cf-02 rootfstype=ext4 fsck.repair=yes rootwait logo.nologo


#则改为
console=serial0,115200 console=tty1 root=PARTUUID=a4f2a2cf-02 rootfstype=ext4 fsck.repair=yes rootwait logo.nologo quiet init=/usr/lib/raspberrypi-sys-mods/firstboot
###请务必保留其余部分不变###

插入树莓派,第一次启动自动扩容SD卡磁盘。

4.2 清理系统痕迹

1
2
3
4
5
6
7
8
9
# 删除系统及组件日志和缓存
# sudo find /var -type f -exec rm -v {} \; # 会造成apt命令异常,暂停用。
sudo find /var/log -type f -exec rm -v {} \; # 删除日志文件,建议还是手动吧
# 删除各类history文件,清除使用过的脚本记录
rm -rf ~/.*_history
rm -rf ~/.*errors*
history -c
# 关机
shutdown now

4.3 缩小分区大小

在Linux系统下对SD卡系统做分区缩小,这里采用Linux下的可视化工具Gparted执行操作

1
sudo pacman -S gparted
  1. SD卡接入PC
  2. 启动Gparted

image-20221108162337871

  1. 右键选中分区,调整分区大小

image-20221108162438671

  1. 根据实际情况调整分区大小,建议略大于已占用空间,并点击“调整大小/移动”。

image-20221108162550226

  1. 点击工具栏“应用全部操作”,保存修改并执行,同时校验磁盘。弹出警告点击“应用(A)”确认。

image-20221108162627706

image-20221108162658265

4.4 制作镜像

这里使用“Win32DiskImager”。“映像文件”选择保存镜像的位置,并新建一个“.img”结尾的文件,选中。“设备”选择TF卡对应的任意一个盘符即可,但请务必选择正确,避免选中其他U盘等。校验值根据喜好选择,也可以选择“无”。务必勾选“仅读取已分配分区”。然后点击读取,等待进度条完成。

image-20221108162824073

4.5 压缩img文件

完成后将“.img”文件添加到压缩文件,变为“.zip”进一步缩小镜像体积。这里强力推荐使用开源免费小巧的压缩软件7-Zip。使用7-Zip添加压缩文件,压缩格式选择“zip”,压缩等级选择“ 标准压缩”,其他默认即可。通过这样生成的压缩文件,可以直接被树莓派官方的镜像刷写软件“Raspberry Pi Imager”识别并刷写。

image-20221108162920675

6 风扇配置

6.1 安装pigpio

1
2
3
apt install pigpio pip -y
systemctl enable pigpiod
pip install pigpio
-------------本文结束感谢您的阅读-------------

本文标题:MF系统配置手册(Pios)

文章作者:OperationMAN

发布时间:2022年11月07日 - 17:11

最后更新:2023年01月05日 - 12:01

原始链接:https://kxinter.gitee.io/2022/11/07/模方安装部署配置手册(Pios)/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!