上一篇 下一篇 分享链接 返回 返回顶部

Debian 上手不踩坑:从软件源到 SSH 的实用配置清单

发布人:慈云数据-客服中心 发布时间:13小时前 阅读量:4

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。这样做短期内可能能获得更新的软件,但长期容易造成依赖混乱,甚至系统无法正常升级。

如果只是想安装某个较新的软件,可以优先考虑:

  1. Debian Backports;
  2. Flatpak;
  3. AppImage;
  4. 官方 .deb 包;
  5. Docker / Podman;
  6. 自行编译。

不要为了一个软件把整个系统切到 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,避免日志写满根分区导致系统异常。

常见坑

  1. 根分区太小
    如果 / 只有 10GB,很容易被日志、缓存、Docker 镜像占满。

  2. 没有单独规划 /var
    服务器上 /var/log/var/lib/docker、数据库文件都可能迅速增长。

  3. UEFI 机器没有 EFI 分区
    新机器通常使用 UEFI 启动,需要 /boot/efi

  4. 盲目使用复杂 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

解决方法:

  1. 切换到 root:
su -
  1. 安装 sudo:
apt update
apt install sudo
  1. 将用户加入 sudo 组:
usermod -aG sudo your_username
  1. 退出并重新登录。

检查:

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,部分旧程序可能输入法异常。可以尝试:

  1. 使用 X11 会话;
  2. 安装对应 GTK / Qt 前端;
  3. 检查环境变量;
  4. 使用较新的 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

避坑重点

  1. 不建议直接从 NVIDIA 官网下载 .run 安装包;
  2. 优先使用 Debian 仓库中的 nvidia-driver
  3. 内核升级后驱动异常时,检查 DKMS;
  4. Secure Boot 可能导致驱动模块无法加载;
  5. 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、容器或官方包,而不是随意混源。

最后总结几个最关键的避坑原则:

  1. 不要混用 Ubuntu 源和 Debian 源;
  2. 不要随意把 stable 改成 testing 或 unstable;
  3. 服务器启用防火墙前先放行 SSH;
  4. 关闭 SSH 密码登录前先确认密钥可用;
  5. Docker 一定要限制日志大小;
  6. 网络管理工具不要混用;
  7. 配置文件修改前先备份;
  8. 定期检查磁盘、日志和安全更新;
  9. 备份不仅要做,还要验证能恢复;
  10. 生产环境升级前先看变更,最好安排维护窗口。

如果你追求长期稳定、低维护成本和清晰的软件包管理体系,Debian 仍然是非常值得选择的 Linux 发行版。只要避开上述常见坑点,它既可以成为可靠的服务器系统,也可以成为简洁、高效的日常桌面环境。

目录结构
全文