Debian 上手不踩坑:从软件源到 SSH 的实用配置清单
Debian 使用避坑指南|附配置文件
Debian 是许多服务器、桌面系统、容器镜像和嵌入式设备的基础发行版。它以稳定、安全、软件包管理成熟著称,也是 Ubuntu、Linux Mint 等发行版的重要上游来源。对于长期使用 Linux 的用户来说,Debian 往往意味着“可靠”;但对于刚接触 Debian 的用户来说,它也可能意味着“保守”“默认不够方便”“某些硬件驱动需要额外处理”。
本文将从实际使用角度出发,整理一份 Debian 使用避坑指南,覆盖版本选择、安装注意事项、软件源配置、网络设置、sudo、中文环境、桌面环境、驱动、系统更新、防火墙、SSH、安全加固、常用配置文件等内容。文末附带多份可直接参考的配置文件,适合 Debian 12 / Debian 13 以及常见服务器环境使用。
一、Debian 版本选择:别一上来就追求“最新”
Debian 的版本分支主要包括:
| 分支 | 说明 | 推荐人群 |
|---|---|---|
| stable | 稳定版,最推荐生产环境使用 | 服务器、日常主力机 |
| testing | 测试版,软件较新但可能有问题 | 桌面用户、愿意折腾者 |
| unstable / sid | 不稳定版,开发滚动分支 | 高级用户、开发者 |
| oldstable | 上一个稳定版 | 老服务器、兼容旧环境 |
对于大多数人来说,建议优先使用 Debian stable。例如 Debian 12 的代号是 bookworm,Debian 13 的代号是 trixie。
避坑建议
不要直接把稳定版系统的软件源改成 testing 或 unstable。这样做短期内可能能获得更新的软件,但长期容易造成依赖混乱,甚至系统无法正常升级。
如果只是想安装某个较新的软件,可以优先考虑:
- Debian Backports;
- Flatpak;
- AppImage;
- 官方
.deb包; - Docker / Podman;
- 自行编译。
不要为了一个软件把整个系统切到 testing。
二、安装镜像选择:优先选择带固件的官方镜像
很多新用户安装 Debian 时会遇到:
- Wi-Fi 无法使用;
- 网卡无法识别;
- 显卡驱动异常;
- 安装过程中提示缺少 firmware;
- 笔记本触控板或蓝牙异常。
这是因为 Debian 早期对非自由固件比较谨慎。现在新版 Debian 已经改善了这个问题,但安装时仍建议使用官方提供的完整安装镜像。
推荐选择
如果是服务器,可以选择:
- netinst 网络安装镜像;
- DVD 镜像;
- 云服务器镜像。
如果是笔记本或桌面电脑,建议选择包含 firmware 的安装镜像,尤其是使用 Intel Wi-Fi、Realtek 网卡、AMD 显卡、NVIDIA 显卡的设备。
三、分区避坑:服务器和桌面不要一套方案
Debian 安装时可以自动分区,但生产环境最好根据用途手动规划。
桌面用户推荐
对于普通桌面用户:
/boot/efi 512M FAT32
/ 50G以上 ext4 或 btrfs
/home 剩余空间 ext4 或 btrfs
swap 视内存情况
如果内存较大,比如 16GB 或 32GB,swap 可以设置为 2GB 到 8GB。如果需要休眠,swap 至少要接近内存大小。
服务器用户推荐
对于服务器:
/boot/efi 512M
/boot 1G
/ 30G-80G
/var 视业务大小
/home 可选
swap 2G-8G
如果是数据库、日志密集型服务,建议单独划分 /var,避免日志写满根分区导致系统异常。
常见坑
-
根分区太小
如果/只有 10GB,很容易被日志、缓存、Docker 镜像占满。 -
没有单独规划
/var
服务器上/var/log、/var/lib/docker、数据库文件都可能迅速增长。 -
UEFI 机器没有 EFI 分区
新机器通常使用 UEFI 启动,需要/boot/efi。 -
盲目使用复杂 LVM
LVM 很强大,但新手不了解时容易在恢复系统时增加难度。
四、软件源配置:这是 Debian 使用的核心
Debian 的软件管理依赖 APT。软件源配置不当,是许多问题的根源。
软件源文件通常位于:
/etc/apt/sources.list
Debian 12 之后也常见:
/etc/apt/sources.list.d/*.sources
Debian 12 Bookworm 推荐源配置
下面是适合 Debian 12 的基础配置:
# /etc/apt/sources.list
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# Backports,可选
deb https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
配置后执行:
sudo apt update
sudo apt upgrade
Debian 13 Trixie 推荐源配置
# /etc/apt/sources.list
deb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
# Backports,可选,若官方已提供
deb https://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
国内镜像源示例
如果在国内访问官方源较慢,可以使用清华源、中科大源、阿里云源等。
以清华源 Debian 12 为例:
# /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
避坑重点
不要混用不同发行版源,例如:
deb http://archive.ubuntu.com/ubuntu jammy main
Debian 不要混用 Ubuntu 源。即使偶尔能安装成功,也可能造成依赖灾难。
也不要同时混用 stable、testing、unstable,除非你非常清楚 APT Pinning 的用法。
五、sudo 配置:新装系统常见问题
Debian 安装时如果设置了 root 密码,默认用户可能不会加入 sudo 组。安装后执行:
sudo apt update
可能提示:
user is not in the sudoers file
解决方法:
- 切换到 root:
su -
- 安装 sudo:
apt update
apt install sudo
- 将用户加入 sudo 组:
usermod -aG sudo your_username
- 退出并重新登录。
检查:
groups
如果输出包含 sudo,说明配置成功。
六、APT 常用命令与升级策略
常用命令
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt install 软件名
sudo apt remove 软件名
sudo apt purge 软件名
sudo apt autoremove
sudo apt clean
upgrade 与 full-upgrade 的区别
apt upgrade:升级软件包,但不会移除已有软件包;apt full-upgrade:允许安装或移除软件包以完成升级。
日常更新可以使用:
sudo apt update && sudo apt upgrade
大版本升级或依赖变化较大时:
sudo apt update && sudo apt full-upgrade
避坑建议
生产服务器不要无脑自动执行 full-upgrade。建议先查看将要变更的软件包:
sudo apt list --upgradable
并在业务低峰期操作。
七、Backports 使用:只装需要的软件
Backports 可以让 stable 用户安装较新版本的软件。例如你在 Debian 12 上想安装较新的内核、Nginx、Mesa、固件等,可以使用 backports。
启用 backports 后,不会默认全部升级到 backports 版本。需要手动指定:
sudo apt -t bookworm-backports install linux-image-amd64
安装某个软件:
sudo apt -t bookworm-backports install 软件名
避坑重点
不要把 backports 设置成高优先级,让所有包都自动从 backports 安装。Backports 的正确用法是“按需取用”。
八、网络配置:NetworkManager 与 systemd-networkd 不要混用
Debian 上常见网络管理方式包括:
- NetworkManager;
- systemd-networkd;
- ifupdown;
- netplan 不属于 Debian 默认方案,主要常见于 Ubuntu。
桌面环境一般使用 NetworkManager;服务器可以使用 systemd-networkd 或 ifupdown。
桌面用户
安装 NetworkManager:
sudo apt install network-manager
启用服务:
sudo systemctl enable --now NetworkManager
如果桌面无法管理网络,检查当前网络是否被 /etc/network/interfaces 固定配置占用。
服务器静态 IP 配置示例:systemd-networkd
文件:
/etc/systemd/network/10-ens18.network
配置:
[Match]
Name=ens18
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=223.5.5.5
DNS=119.29.29.29
启用:
sudo systemctl enable --now systemd-networkd
sudo systemctl enable --now systemd-resolved
创建 DNS 软链接:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
查看状态:
networkctl status
resolvectl status
避坑重点
不要让 NetworkManager、ifupdown、systemd-networkd 同时管理同一块网卡。否则会出现 IP 丢失、DNS 混乱、重启后网络异常等问题。
九、DNS 配置:不要手改后又被覆盖
很多用户手动编辑:
/etc/resolv.conf
添加:
nameserver 8.8.8.8
结果重启后发现配置没了。这是因为 /etc/resolv.conf 经常由 NetworkManager、systemd-resolved 或 DHCP 客户端自动生成。
推荐做法
如果使用 NetworkManager,可以用:
nmcli connection modify "连接名" ipv4.dns "223.5.5.5 119.29.29.29"
nmcli connection modify "连接名" ipv4.ignore-auto-dns yes
nmcli connection up "连接名"
如果使用 systemd-resolved,则在 network 文件中配置 DNS。
十、中文环境配置:避免乱码和输入法问题
安装中文字体:
sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
生成中文 locale:
sudo dpkg-reconfigure locales
选择:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
建议默认环境可以选择:
en_US.UTF-8
这样命令行报错信息更容易搜索;桌面语言可以设置为中文。
输入法推荐
Debian 桌面中文输入法可以使用 Fcitx5:
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt fcitx5-frontend-gtk3 fcitx5-frontend-qt5
配置环境变量:
# ~/.profile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
重新登录后,在设置中添加拼音输入法。
避坑重点
如果使用 Wayland,部分旧程序可能输入法异常。可以尝试:
- 使用 X11 会话;
- 安装对应 GTK / Qt 前端;
- 检查环境变量;
- 使用较新的 fcitx5。
十一、显卡驱动:NVIDIA 是最大坑点之一
Debian 对 AMD 和 Intel 显卡支持较好,通常安装固件和 Mesa 即可。
AMD / Intel 显卡
sudo apt install firmware-amd-graphics firmware-misc-nonfree mesa-utils
测试:
glxinfo | grep "OpenGL renderer"
如果没有 glxinfo:
sudo apt install mesa-utils
NVIDIA 显卡
启用 contrib non-free non-free-firmware 后:
sudo apt update
sudo apt install nvidia-driver firmware-misc-nonfree
安装后重启:
sudo reboot
查看:
nvidia-smi
避坑重点
- 不建议直接从 NVIDIA 官网下载
.run安装包; - 优先使用 Debian 仓库中的
nvidia-driver; - 内核升级后驱动异常时,检查 DKMS;
- Secure Boot 可能导致驱动模块无法加载;
- Wayland 下 NVIDIA 体验可能因版本而异。
十二、SSH 配置:服务器必做安全项
安装 OpenSSH:
sudo apt install openssh-server
启用服务:
sudo systemctl enable --now ssh
SSH 配置文件:
/etc/ssh/sshd_config
推荐基础安全配置:
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3
修改后测试配置:
sudo sshd -t
重启服务:
sudo systemctl restart ssh
避坑重点
在关闭密码登录前,一定要确认密钥登录可用。建议保留一个已登录的 SSH 窗口,不要立刻退出,防止把自己锁在服务器外。
十三、防火墙配置:UFW 简单够用
Debian 默认不一定启用防火墙。普通服务器可以使用 UFW。
安装:
sudo apt install ufw
允许 SSH 端口:
sudo ufw allow 2222/tcp
允许 Web 服务:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
启用:
sudo ufw enable
查看状态:
sudo ufw status verbose
配置文件示例
# /etc/default/ufw
IPV6=yes
DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_APPLICATION_POLICY="SKIP"
MANAGE_BUILTINS=no
IPT_SYSCTL=/etc/ufw/sysctl.conf
IPT_MODULES=""
避坑重点
远程服务器启用防火墙前,必须先允许 SSH 端口。否则可能直接断开连接,无法再登录。
十四、时间同步:服务器不能忽视
时间不准会导致:
- HTTPS 证书验证失败;
- 日志时间混乱;
- 定时任务异常;
- 数据库复制问题;
- Kerberos / LDAP 认证异常。
Debian 默认可使用 systemd-timesyncd。
查看时间:
timedatectl
启用 NTP:
sudo timedatectl set-ntp true
设置时区:
sudo timedatectl set-timezone Asia/Shanghai
systemd-timesyncd 配置:
# /etc/systemd/timesyncd.conf
[Time]
NTP=ntp.aliyun.com ntp.tencent.com time.cloudflare.com
FallbackNTP=deb.debian.org
重启:
sudo systemctl restart systemd-timesyncd
十五、日志与磁盘:别等爆盘再处理
查看磁盘:
df -h
du -sh /var/log/*
查看 journal 日志大小:
journalctl --disk-usage
清理日志:
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=1G
推荐配置:
# /etc/systemd/journald.conf
[Journal]
SystemMaxUse=1G
RuntimeMaxUse=512M
MaxRetentionSec=7day
Compress=yes
重启:
sudo systemctl restart systemd-journald
避坑重点
不要直接删除正在被进程占用的日志文件。即使文件看起来被删了,空间也可能不会释放。可以使用:
sudo lsof | grep deleted
查看已删除但仍被占用的文件。
十六、Swap 与内存:小内存服务器建议开启
查看 swap:
free -h
swapon --show
创建 2GB swap 文件:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
写入 /etc/fstab:
/swapfile none swap sw 0 0
调整 swappiness:
# /etc/sysctl.d/99-custom.conf
vm.swappiness=10
应用:
sudo sysctl --system
避坑重点
Swap 不是内存的替代品。数据库、Java 服务、容器环境如果频繁使用 swap,说明内存不足或配置不合理。
十七、sysctl 基础优化配置
以下是通用服务器可参考的配置,不建议盲目照搬到所有环境,尤其是高并发业务、数据库服务器,需要结合实际调优。
# /etc/sysctl.d/99-custom.conf
# 减少 swap 使用倾向
vm.swappiness=10
# 防止 ICMP 重定向攻击
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
# 禁用源路由
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
# 开启 SYN cookies
net.ipv4.tcp_syncookies=1
# 反向路径过滤
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
# IPv6 如不使用,不建议粗暴禁用;这里不做禁用配置
应用:
sudo sysctl --system
十八、自动安全更新:适合普通服务器
安装:
sudo apt install unattended-upgrades apt-listchanges
配置:
sudo dpkg-reconfigure unattended-upgrades
配置文件:
// /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Origins-Pattern {
"origin=Debian,codename=${distro_codename},label=Debian-Security";
"origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
};
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
定时配置:
// /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";
避坑重点
自动安全更新适合大多数普通服务器,但数据库、关键生产环境仍建议结合维护窗口、监控和备份策略使用。
十九、Docker 安装避坑
Debian 仓库中有 Docker 相关包,但如果需要最新版 Docker Engine,建议使用 Docker 官方源。
安装依赖
sudo apt update
sudo apt install ca-certificates curl gnupg
添加 GPG key:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
添加源,以 Debian 12 为例:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
加入 docker 组:
sudo usermod -aG docker $USER
重新登录后测试:
docker version
docker compose version
Docker daemon 配置示例
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"exec-opts": ["native.cgroupdriver=systemd"],
"storage-driver": "overlay2"
}
文件路径:
/etc/docker/daemon.json
重启 Docker:
sudo systemctl restart docker
避坑重点
Docker 默认日志不限制大小时,容器日志可能撑爆磁盘。务必设置日志轮转。
二十、常用软件推荐
服务器常用:
sudo apt install vim curl wget git htop ncdu tree unzip zip tar rsync lsof net-tools dnsutils tcpdump tmux
桌面常用:
sudo apt install vlc gimp inkscape libreoffice file-roller pavucontrol
开发工具:
sudo apt install build-essential pkg-config cmake make gcc g++ python3 python3-pip python3-venv
网络排查:
sudo apt install iproute2 iputils-ping traceroute mtr-tiny nmap
二十一、备份策略:不要等系统坏了才想起
Debian 很稳定,但稳定不等于不会出问题。升级、误删、磁盘损坏、配置错误都可能导致数据丢失。
最低限度要备份
/etc
/home
/var/www
/var/lib/mysql
/var/lib/postgresql
Docker Compose 项目目录
业务数据目录
rsync 示例
rsync -avh --delete /etc/ backup_user@backup_host:/backup/server/etc/
定时备份 cron 示例
# /etc/cron.d/backup-etc
0 3 * * * root rsync -a --delete /etc/ backup_user@192.168.1.10:/backup/server/etc/
避坑重点
没有验证过恢复流程的备份,不是真正可靠的备份。至少定期在测试环境恢复一次。
二十二、附:一份 Debian 服务器初始化脚本
下面脚本适合新装 Debian 服务器后做基础初始化。请根据实际情况修改 SSH 端口、用户名等。
#!/usr/bin/env bash
set -e
SSH_PORT=2222
TIMEZONE="Asia/Shanghai"
echo "[1/8] 更新系统"
apt update
apt upgrade -y
echo "[2/8] 安装常用工具"
apt install -y sudo vim curl wget git htop ncdu tree unzip zip rsync lsof dnsutils tcpdump ufw unattended-upgrades apt-listchanges
echo "[3/8] 设置时区"
timedatectl set-timezone "$TIMEZONE"
timedatectl set-ntp true
echo "[4/8] 配置 SSH"
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M%S)
sed -i "s/^#\?Port .*/Port ${SSH_PORT}/" /etc/ssh/sshd_config
sed -i "s/^#\?PermitRootLogin .*/PermitRootLogin no/" /etc/ssh/sshd_config
sed -i "s/^#\?X11Forwarding .*/X11Forwarding no/" /etc/ssh/sshd_config
sshd -t
systemctl restart ssh
echo "[5/8] 配置防火墙"
ufw default deny incoming
ufw default allow outgoing
ufw allow ${SSH_PORT}/tcp
ufw --force enable
echo "[6/8] 配置 journald"
mkdir -p /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-limit.conf < /etc/sysctl.d/99-custom.conf <
二十三、总结:Debian 的正确打开方式
Debian 的优势不在于“最新”,而在于“可靠、可维护、可预期”。使用 Debian 时,最重要的是遵循它的发行版哲学:稳定版系统尽量使用稳定版软件源,需要新软件时优先使用 backports、容器或官方包,而不是随意混源。
最后总结几个最关键的避坑原则:
- 不要混用 Ubuntu 源和 Debian 源;
- 不要随意把 stable 改成 testing 或 unstable;
- 服务器启用防火墙前先放行 SSH;
- 关闭 SSH 密码登录前先确认密钥可用;
- Docker 一定要限制日志大小;
- 网络管理工具不要混用;
- 配置文件修改前先备份;
- 定期检查磁盘、日志和安全更新;
- 备份不仅要做,还要验证能恢复;
- 生产环境升级前先看变更,最好安排维护窗口。
如果你追求长期稳定、低维护成本和清晰的软件包管理体系,Debian 仍然是非常值得选择的 Linux 发行版。只要避开上述常见坑点,它既可以成为可靠的服务器系统,也可以成为简洁、高效的日常桌面环境。