写在开头
废话
2026.2.27 将家里服务器PVE改为单Debian故再次重装
于是接着25年的一个基础配置文章部署环境
调整root下的一些配置
WARNING注意:该章默认为root账户,如果是非root账户遇到权限相关的提示,请使用sudo进行提权
网络相关
- 链路聚合 (Bonding):将
eno1和enp3s0绑定为bond0(模式 802.3ad/LACP)。 - 网桥 (Bridging):创建
br0网桥,并将bond0作为端口加入。 - 网络接入:宿主机和未来的 KVM 虚拟机都通过
br0获取 IP 并上网。
systemd-networkd 实现 Bond + Bridge
1. 准备工作:禁用 NetworkManager
如果你之前使用 NetworkManager,必须先停止并禁用它,以免冲突。
sudo systemctl stop NetworkManagersudo systemctl disable NetworkManagersudo systemctl enable --now systemd-networkd2. 清理旧配置
建议先清空 /etc/systemd/network/ 目录下的旧配置,避免文件名冲突或逻辑干扰。
sudo rm /etc/systemd/network/*.networksudo rm /etc/systemd/network/*.netdev3. 创建配置文件
请在 /etc/systemd/network/ 目录下创建以下 6个文件。你可以直接复制粘贴内容。
① 定义 Bond 设备 (10-bond0.netdev)
定义逻辑接口 bond0 及其聚合模式。
[NetDev]Name=bond0Kind=bond
[Bond]Mode=802.3adTransmitHashPolicy=layer3+4MIIMonitorSec=100msLACPTransmitRate=fastMinLinks=1② 定义 Bridge 设备 (20-br0.netdev)
定义逻辑网桥 br0。
[NetDev]Name=br0Kind=bridge③ 配置物理网卡 eno1 (30-eno1.network)
将物理网卡 eno1 加入 bond0。
[Match]Name=eno1
[Network]Bond=bond0④ 配置物理网卡 enp3s0 (30-enp3s0.network)
将物理网卡 enp3s0 加入 bond0。
[Match]Name=enp3s0
[Network]Bond=bond0⑤ 配置 Bond0 加入网桥 (40-bond0.network)
关键点:这里不要配置 IP 地址,只负责把 bond0 桥接到 br0。IP 将在下一步配置给 br0。
[Match]Name=bond0
[Network]Bridge=br0# 注意:这里不要写 Address 或 DHCP,IP 由 br0 负责⑥ 配置网桥 IP 地址 (50-br0.network)
这是整个系统的网络出口配置。宿主机和虚拟机都将通过这个接口通信。 (请根据你的实际网络环境修改 IP、网关和 DNS)
[Match]Name=br0
[Network]# --- 选项 A: 使用 DHCP 自动获取 IP (推荐测试用) ---DHCP=yes
# --- 选项 B: 使用静态 IP (生产环境推荐) ---# 如果要使用静态 IP,请删除上面的 DHCP=yes,并取消下面几行的注释,修改为你的真实 IP# Address=192.168.86.3/24# Gateway=192.168.86.1# DNS=223.5.5.5# DNS=8.8.8.84. 应用配置
保存所有文件后,重启网络服务:
sudo systemctl restart systemd-networkd5. 验证状态
等待几秒钟,然后运行以下命令检查状态:
-
检查接口状态:
ip addr show br0成功标志:
br0应该显示state UP和LOWER_UP,并且有 IP 地址。不再有NO-CARRIER。 -
检查 Bond 状态:
cat /proc/net/bonding/bond0成功标志:能看到
Bonding Mode: IEEE 802.3ad Dynamic link aggregation且Slave Interface列表中的eno1和enp3s0状态都是up。 -
检查桥接成员:
bridge link成功标志:能看到
bond0的master是br0。
现在,宿主机和 OpenWrt 虚拟机都将通过 br0 -> bond0 -> 物理网卡 的路径上网,享受链路聚合带来的带宽叠加和高可用性。
主机名
如果安装引导的主机名你不喜欢又忘记了修改
修改/etc/hosts以及/etc/hostname的内容,重启后即可生效
使用 hostnamectl 将会输出主机名信息
hyperbola@Hyperbola-Server:~$ hostnamectl Static hostname: Hyperbola-Server Icon name: computer-desktop Chassis: desktop 🖥️ Machine ID: c3902bd0d425420381eb440b7f83ef8f Boot ID: 7407b394c16a4e7c9bc041f614ea281dOperating System: Debian GNU/Linux 13 (trixie) Kernel: Linux 6.12.63+deb13-amd64 Architecture: x86-64 Hardware Vendor: MECHREVO Hardware Model: IMINI SeriesFirmware Version: IMINI Series 1.12 Firmware Date: Thu 2025-02-20 Firmware Age: 1y 1w环境部署
Clash Verge Rev
wget https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v2.4.6/Clash.Verge_2.4.6_amd64.deb pkexec polkitdzsh终端环境
我比较习惯使用zsh,因此以zsh为例进行演示
安装zsh以及前置软件
sudo apt install zsh git curl wget thefucksh -c "$(wget -O- https://install.ohmyz.sh/)"git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10kgit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestionsgit clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \ ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting设置默认终端为 zsh(注意:不要使用 sudo)。
chsh -s /bin/zsh提示输入的密码为用户密码而非root密码
同步点文件
安装同步工具chezmoi
wget https://github.com/twpayne/chezmoi/releases/download/v2.69.4/chezmoi_2.69.4_linux_amd64.debsudo apt install ./chezmoi_2.69.4_linux_amd64.debchezmoi init --apply git@github.com:Hyperbola-QAQ/dotfiles.gitgit@github.com
/dotfiles.git 为我的点文件同步私有仓库
开启ZRAM
sudo apt update sudo apt install zram-toolssudoedit /etc/default/zramswap修改占比为30%
一些常用的软件的安装
sudo apt install btop tmux byobu starship kitty ripgrep eza nginx batuv miniforge
curl -LsSf https://astral.sh/uv/install.sh | shuv tool install jupyterlabuv tool install nb-cliuv tool install tyuv tool install ruffwget https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-x86_64.sh | shyazi rust
sudo apt install ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagickcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shrustup updatecargo install --force yazi-buildmise
sudo apt update -y && sudo apt install -y curlsudo install -dm 755 /etc/apt/keyringscurl -fSs https://mise.jdx.dev/gpg-key.pub | sudo tee /etc/apt/keyrings/mise-archive-keyring.asc 1> /dev/nullecho "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.asc] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.listsudo apt update -ysudo apt install -y miseddns-go
wget https://github.com/jeessy2/ddns-go/releases/download/v6.15.0/ddns-go_6.15.0_linux_x86_64.tar.gzx ./ddns-go_6.15.0_linux_x86_64.tar.gzsudo mv ./ddns-go_6.15.0_linux_x86_64/ddns-go /usr/binecho "[Unit]Description=The DDNS-GO Process ManagerAfter=network.target
[Service]Type=simpleExecStart=/usr/bin/ddns-go -c /etc/ddns-go/config.yamlExecStop=/bin/killall ddns-go
[Install]WantedBy=multi-user.target" | sudo tee /etc/systemd/system/ddns-go.servicesudo systemctl enable --now ddns-goJenkins
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian/jenkins.io-2026.keyecho "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \ https://pkg.jenkins.io/debian binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/nullsudo apt updatesudo apt install jenkinsDocker
步骤 1:更新系统软件包
sudo apt updatesudo apt upgrade -y步骤 2:安装必要的依赖
安装 Docker 需要一些依赖项。运行以下命令安装它们:
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release步骤 3:添加 Docker 官方 GPG 密钥
为了验证 Docker 软件包的真实性,您需要添加 Docker 的官方 GPG 密钥。由于网络原因,直接从 Docker 官方获取可能不稳定,我们可以尝试通过 keyrings.debian.org 或者 keyserver.ubuntu.com 获取,或者直接下载。这里我们尝试先通过 curl 方式:
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg如果 curl 命令失败,可以尝试手动下载 GPG 密钥并放置到 /etc/apt/keyrings/ 目录下。
步骤 4:添加 Docker APT 仓库
接下来,您需要添加 Docker 的 APT 仓库。为了在中国大陆获得更好的下载速度,我们可以考虑使用国内的镜像源。
选项 A:使用 Docker 官方仓库(如果网络状况良好)
echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null选项 B:使用国内镜像源(推荐,例如阿里云)
首先,您可能需要将官方仓库注释掉或删除。然后添加国内镜像源的配置。 请注意,不同镜像源提供的仓库地址可能有所不同,这里以阿里云为例。请替换为您 Debian 版本的代号(例如 bookworm)。
# 首先移除或注释掉之前的docker.list文件,如果存在的话# sudo rm /etc/apt/sources.list.d/docker.list
# 添加阿里云镜像源# 请将 "$(lsb_release -cs)" 替换为您的 Debian 版本代号,例如 bookwormecho \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null请注意,阿里云等国内镜像站通常会同步 Docker 官方的 GPG 密钥,因此步骤 3 的密钥添加仍然是必需的。
步骤 5:安装 Docker 引擎
更新 APT 软件包索引,然后安装 Docker Engine、Containerd 和 Docker Compose。
sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin步骤 6:验证 Docker 安装
安装完成后,您可以运行一个简单的 hello-world 容器来验证 Docker 是否正确安装并运行:
sudo docker run hello-world如果一切正常,您应该会看到一条消息,表明您的安装工作正常。
步骤 7:配置非 root 用户使用 Docker (可选但推荐)
默认情况下,运行 docker 命令需要 sudo 权限。如果您想让非 root 用户也能运行 Docker 命令,可以将该用户添加到 docker 组中:
sudo usermod -aG docker $USER然后,您需要退出并重新登录,或者运行 newgrp docker 命令使更改生效。
newgrp docker之后,您就可以不带 sudo 运行 docker 命令了。
步骤 8:配置 Docker 镜像加速器 (可选但推荐)
在中国大陆使用 Docker 时,从 Docker Hub 下载镜像可能会很慢。配置镜像加速器可以显著提高下载速度。您可以选择阿里云、腾讯云等提供的免费镜像加速服务。
-
登录您的云服务商控制台(例如阿里云),找到容器镜像服务,通常会有提供一个专属的镜像加速器地址。
-
编辑 Docker 的配置文件
/etc/docker/daemon.json。如果文件不存在,则创建它。sudo nano /etc/docker/daemon.json -
添加以下内容,将
YOUR_MIRROR_ACCELERATOR替换为您获取到的镜像加速器地址。{"registry-mirrors": ["https://YOUR_MIRROR_ACCELERATOR"]}例如,使用阿里云的公共加速器(请替换为您的专属加速器地址):
{"registry-mirrors": ["https://<您的ID>.mirror.aliyuncs.com"]}或者尝试一些通用的公共加速器,但稳定性可能不如专属加速器:
{"registry-mirrors": ["https://hub-mirror.c.163.com", "https://mirror.baidubce.com"]} -
保存并关闭文件 (Ctrl+X, Y, Enter)。
-
重启 Docker 服务以使配置生效:
sudo systemctl daemon-reloadsudo systemctl restart docker
至此,您应该已经成功在 Debian 13 上安装并配置了 Docker,并且针对中国大陆的网络环境进行了优化。
acme.sh自动签发HTTPS
参考配置Nginx
虚拟机部署
检查并创建 libvirt 网络
创建网络定义文件
在终端运行以下命令(直接复制粘贴即可):
cat > /tmp/br0-bond.xml <<EOF<network> <name>br0-bond</name> <forward mode="bridge"/> <bridge name="br0"/></network>EOF定义并启动该网络
依次运行以下三条命令:
# 1. 将 XML 定义导入 libvirtsudo virsh net-define /tmp/br0-bond.xml
# 2. 启动该网络sudo virsh net-start br0-bond
# 3. 设置开机自启(可选,但推荐)sudo virsh net-autostart br0-bond验证网络是否存在:
运行以下命令,你应该能在列表中看到 br0-bond 且状态为 active:
sudo virsh net-list --allName State Autostart Persistent------------------------------------------------br0-bond active yes yesdefault active yes yes确认主机网桥 br0 已就绪
libvirt 的网络只是逻辑定义,它依赖于主机上真实存在的网桥接口 br0。
运行以下命令检查主机是否有 br0:
ip addr show br0- 如果有输出(显示 IP 地址等信息):说明主机网络配置正确,可以直接进行第三步。
- 如果报错
Device "br0" does not exist: 说明你还没有在 Debian 主机上配置好网桥。你需要先配置主机的/etc/network/interfaces或使用 NetworkManager 创建br0并绑定到你的物理网卡(或 bond0),然后重启网络服务。虚拟机无法连接到一个不存在的宿主网桥。
创建 KVM 虚拟机
一旦 br0 状态正常(UP),你就可以重新运行之前的 virt-install 命令了。 libvirt 定义的 br0-bond 网络(桥接宿主机的 br0)将能正常工作。
wget https://fw20.koolcenter.com/iStoreOS/x86_64_efi/istoreos-24.10.5-2025123110-x86-64-squashfs-combined-efi.img.gz
x ./istoreos-24.10.5-2025123110-x86-64-squashfs-combined-efi.img.gz
qemu-img convert -f raw -O qcow2 istoreos-24.10.5-2025123110-x86-64-squashfs-combined-efi.img openwrt.qcow2
sudo mkdir /var/lib/libvirt/images/openwrt
sudo mv openwrt.qcow2 /var/lib/libvirt/images/openwrt/
# 启动安装sudo virt-install \ --name openwrt \ --ram 512 \ --vcpus 1 \ --disk path=/var/lib/libvirt/images/openwrt/openwrt.qcow2,format=qcow2,bus=virtio \ --import \ --network network=br0-bond,model=virtio \ --boot uefi \ --os-variant generic \ --graphics none \ --console pty,target_type=serial其他
如果出现usermod无法找到的情况将下面的添加进./.zshrc
export PATH="/usr/local/sbin:/usr/sbin:/sbin:$PATH"结尾
到此基础环境就搭建完成了
接下来需要开发环境,生成环境等环境的部署
部分信息可能已经过时










湘公网安备43010402002198号