写入镜像到SD卡
- 下载镜像文件:
https://www.raspberrypi.com/software/operating-systems/ - 64bit下载地址:
https://downloads.raspberrypi.org/raspios_arm64/,或https://downloads.raspberrypi.org/raspios_lite_arm64/ - 解压:
unzip 2021-05-07-raspios-buster-armhf-full.zip - 连接电脑,查看设备号:
diskutil list - 卸载sd卡:
diskutil unmount /dev/disk2,或diskutil unmountDisk /dev/disk2 - 写入:
sudo dd if=2021-05-07-raspios-buster-armhf-full.img of=/dev/disk2 bs=1m - 或解压并写入(无效):
unzip 2021-05-07-raspios-buster-armhf-full.zip | sudo dd of=/dev/disk2 bs=1m - 查看进度(打开另一终端执行):
sudo pkill -INFO dd
开启SSH
-
新建文件:
wpa_supplicant.conf -
写入如下内容,按实际修改wifi名等信息:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=CN network={ ssid="OpenWrt" scan_ssid=1 psk="xxxx" priority=1 } -
新建空白文件:
ssh -
默认用户:
pi,默认密码:raspberry -
修改密码:
passwd -
公钥登陆
- 创建
~/.ssh/authorized_keys文件 - 修改
.ssh目录权限:chmod 700 .ssh - 修改
authorized_keys权限:chmod 600 .ssh/authorized_keys - 编辑:
vim .ssh/authorized_keys,添加公钥 - 可选,如果所属用户与当前用户不一致执行:
sudo chown pi:pi .ssh/authorized_keys
- 创建
开启VNC
-
修改配置:
sudo raspi-config,选择Interfacing Options->VNC -
开启服务后,默认配置与mac屏幕共享不兼容,需按如下修改
-
启用服务:
sudo vncpasswd -service -
生成密码:
sudo vncpasswd -service -
修改认证方式:
sudo vi /etc/vnc/config.d/common.custom,写入:Authentication=VncAuth -
重启服务:
sudo systemctl restart vncserver-x11-serviced
扩展SD卡空间
- 执行:
df -h,查看root空间大小,如果比sd卡空间差距太大按以下扩容 - 执行:
sudo raspi-config - 选择:
Advanced Options->Expand Filesystem
修改位置、时区、键盘
-
修改位置与时区:
sudo raspi-config,Localisation Options -
修改语言后如遇报错
“perl: warning: Setting locale failed.”,执行:sudo vi /etc/default/locale,添加以下内容LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 -
修改键盘:
sudo raspi-config,Localisation Options,Keyboard,或执行sudo dpkg-reconfigure keyboard-configuration -
修改键盘命令无响应,需要先连接键盘
更换镜像源
-
修改
sources.list:sudo vi /etc/apt/sources.list# 32bit源 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi # 64bit源 deb https://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free -
修改
raspi.list:sudo vi /etc/apt/sources.list.d/raspi.list# 32bit源 deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui # 64bit源 deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui -
更新软件列表:
sudo apt-get update -
修改
pip源,创建文件夹:mkdir ~/.pip,创建文件:vi ~/.pip/pip.conf[global] index-url=https://pypi.tuna.tsinghua.edu.cn/simple/ trusted-host=pypi.tuna.tsinghua.edu.cn -
复制到
root目录:sudo mkdir /root/.pip,再执行sudo cp .pip/pip.conf /root/.pip -
保存后再使用
pip命令安装
安装golang
- 执行:
sudo apt-get install golang-go - 查看版本:
go version
更新vim
- 默认vi存在上下左右变ABCD问题
- 删除:
sudo apt-get remove vim-common - 安装:
sudo apt-get install vim
配置64bit内核模式(64位系统不用改)
-
检查
/boot分区是否存在kernel8.img文件 -
不存在先更新系统:
sudo rpi-update -
存在修改
config.txt文件:sudo vi /boot/config.txt,文件末尾添加arm_64bit=1 -
查看系统位数:
getconf LONG_BIT,或hostnamectl,或file /usr/bin/htop -
重启:
sudo reboot,或sudo shutdown -r now -
关机:
sudo halt,或sudo power off,或sudo shutdown -h now -
配置完后只是内核为64bit,实际系统还是32bit
安装screenfetch
- 安装:
sudo apt-get install screenfetch - 执行:
screenfetch
截图
- 安装(默认已经安装):
sudo apt-get install scrot - 延时截屏:
scrot -d 5 -c - 截取特定窗口:
scrot -s
安装Docker
-
安装
docker:sudo apt-get install docker.io -
启动服务:
sudo systemctl start docker -
开机启动服务:
sudo systemctl enable docker -
新建组:
sudo groupadd docker -
加入当前用户:
sudo gpasswd -a ${USER} docker -
重启
docker:sudo service docker restart,或sudo systemctl restart docker -
切换当前会话到新组:
newgrp - docker -
查看版本:
docker versionClient: Version: 18.09.1 API version: 1.39 Go version: go1.11.6 Git commit: 4c52b90 Built: Fri, 13 Sep 2019 10:45:43 +0100 OS/Arch: linux/arm Experimental: false Server: Engine: Version: 18.09.1 API version: 1.39 (minimum version 1.12) Go version: go1.11.6 Git commit: 4c52b90 Built: Fri Sep 13 09:45:43 2019 OS/Arch: linux/arm Experimental: false -
测试:
docker run hello-world -
安装
docker-compose:- 先安装
libffi:sudo apt-get install libffi-dev python3-pip - 安装:
pip3 install docker-compose
- 先安装
-
查看版本:
docker-compose versiondocker-compose version 1.29.2, build unknown docker-py version: 5.0.2 CPython version: 3.7.3 OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019 -
更换镜像源:
sudo vi /etc/docker/daemon.json,写入:{ "registry-mirrors": ["https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"], "experimental": true } -
重启
docker服务 -
docker容器重启策略no:默认策略,在容器退出时不重启容器on-failure:在容器非正常退出时(退出状态非0),才会重启容器on-failure:3:在容器非正常退出时重启容器,最多重启3次always:在容器退出时总是重启容器unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
-
常用命令
- 查找镜像:
docker search mariadb - 拉取镜像:
docker pull afian/filerun - 查看本地镜像:
docker images - 查看本地所有镜像:
docker image ls -a - 查看所有容器:
docker container ls -a - 查看日志:
docker logs 7e612 - 删除镜像:
docker rmi 058b811e09cb - 停止容器:
docker stop 658b811e09cb - 删除容器:
docker rm 658b811e09cb - 复制文件到本地:
docker cp 4b76e9d4a620:/trojan/client.yaml ./client1.yaml - 复制文件到容器:
docker cp client1.yaml 4b76e9d4a620:/trojan/client.yaml - 以守护进程运行:
docker-compose up -d - 查看运行的服务:
docker-compose ps - 查看日志:
docker-compose logs web - 重启服务:
docker-compose restart - 停止服务:
docker-compose stop - 停止并移除容器:
docker-compose down - kill服务:
docker-compose kill - 删除服务:
docker-compose rm
- 查找镜像:
部署FileRun
-
先安装
docker与docker-compose -
创建文件:
vi docker-compose.ymlversion: '2' services: db: image: mariadb:10.5.12 environment: MYSQL_ROOT_PASSWORD: filerun MYSQL_USER: filerun MYSQL_PASSWORD: filerun MYSQL_DATABASE: filerun volumes: - /filerun/db:/var/lib/mysql restart: unless-stopped web: image: ponte124/filerun:latest-arm64v8 environment: FR_DB_HOST: db FR_DB_PORT: 3306 FR_DB_NAME: filerun FR_DB_USER: filerun FR_DB_PASS: filerun APACHE_RUN_USER: www-data APACHE_RUN_USER_ID: 33 APACHE_RUN_GROUP: www-data APACHE_RUN_GROUP_ID: 33 depends_on: - db links: - db:db ports: - "80:80" volumes: - /filerun/html:/var/www/html - /filerun/user-files:/user-files restart: unless-stopped -
官方文档:
https://docs.filerun.com/docker -
启动:
docker-compose up -d -
默认用户密码:
superuser/superuser -
使用
afian/filerun镜像,日志显示standard_init_linux.go:207: exec user process caused "exec format error",原因该镜像不是arm环境构建的镜像
部署Aria2
-
修改文件:
vi docker-compose.yml,添加以下内容:aria2: image: p3terx/aria2-pro environment: - PUID=33 - PGID=33 - UMASK_SET=022 - RPC_SECRET=P3TERX - RPC_PORT=6800 - LISTEN_PORT=6888 - DISK_CACHE=64M - IPV6_MODE=false - UPDATE_TRACKERS=true - CUSTOM_TRACKER_URL= - TZ=Asia/Shanghai volumes: - /filerun/aria2-config:/config - /filerun/user-files/Downloads:/downloads ports: - 6800:6800 - 6888:6888 - 6888:6888/udp restart: unless-stopped logging: driver: json-file options: max-size: 1m ariang: image: p3terx/ariang command: --port 6880 ports: - 6880:6880 restart: unless-stopped logging: driver: json-file options: max-size: 1m -
PUID与PGID使用:
id www-data查看,保证与filerun有同样权限 -
其它参数说明:
https://hub.docker.com/r/p3terx/aria2-pro -
更新:
docker-compose up -d -
浏览器访问
6880端口,点击AriaNg设置里的RPC标签,填入配置文件RPC_SECRET对应的密钥
运行Trojan镜像
-
官方镜像:
docker pull p4gefau1t/trojan-go:v0.10.6 -
官方镜像启动:
docker run -d --name trojan-go -v /home/pi/trojan:/etc/trojan-go -p 1080:1080 p4gefau1t/trojan-go:v0.10.6 /etc/trojan-go/client.yaml