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

从零上手 Debian:一台生产服务器的实用配置与避坑指南

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

Debian 新手入门指南|生产环境实测

前言:为什么生产环境依然值得选择 Debian?

在 Linux 服务器系统中,Debian 一直是一个非常特殊的存在。它不像某些商业发行版那样强调企业支持,也不像滚动发行版那样追求最新软件版本,但它凭借稳定、简洁、社区成熟、软件生态丰富、长期维护可靠等特点,长期占据着大量生产服务器、云主机、容器镜像和基础设施环境。

如果你是刚接触 Linux 的新手,可能会听到很多发行版名称:Ubuntu、CentOS、Rocky Linux、AlmaLinux、Fedora、Arch、openSUSE 等。相比之下,Debian 给人的第一印象可能并不“炫酷”,但在生产环境里,它的优势非常明显:少折腾、少变动、少意外

本文将从一个实际生产环境使用者的角度,系统介绍 Debian 的安装、配置、软件管理、安全加固、服务部署、常见问题排查以及日常维护经验。文章面向 Debian 新手,但内容尽量贴近真实服务器场景,帮助你快速建立可用于生产环境的 Debian 使用思路。


一、Debian 适合什么场景?

Debian 的适用范围非常广,尤其适合以下场景:

1. Web 服务器

例如部署:

  • Nginx
  • Apache
  • PHP-FPM
  • Node.js
  • Python Web 服务
  • Java 后端服务
  • Go 应用

Debian 的稳定软件仓库和成熟的包管理体系,非常适合长期运行 Web 服务。

2. 数据库服务器

常见数据库都可以在 Debian 上稳定运行:

  • MySQL / MariaDB
  • PostgreSQL
  • Redis
  • MongoDB
  • ClickHouse
  • SQLite

生产环境中,数据库服务器对稳定性要求很高,Debian 的保守更新策略可以减少版本频繁变化带来的兼容性问题。

3. 容器与虚拟化环境

Debian 很适合作为:

  • Docker 宿主机
  • Kubernetes 节点
  • LXC 容器环境
  • Proxmox VE 底层系统
  • KVM 虚拟化服务器

事实上,很多官方 Docker 镜像也基于 Debian 构建。

4. 内网服务与基础设施

比如:

  • DNS 服务
  • DHCP 服务
  • 文件共享服务
  • Git 服务
  • CI/CD Runner
  • 监控节点
  • 日志采集节点

Debian 在这些基础设施场景里表现非常稳定,资源占用也较低。


二、Debian 的版本选择

Debian 主要有三个分支:

分支 特点 是否推荐生产环境
Stable 稳定版,经过充分测试 强烈推荐
Testing 测试版,软件较新但不完全稳定 不推荐生产环境
Unstable 开发版,软件更新快 不推荐生产环境

对于生产环境,新手建议直接选择 Debian Stable

截至目前,常见生产服务器一般使用 Debian 12 Bookworm 或 Debian 11 Bullseye。新部署的服务器建议优先选择 Debian 12,因为它拥有更长的维护周期和较新的内核、软件包。

为什么不建议新手在生产环境使用 Testing?

Testing 的软件版本更新更快,看起来很诱人,但它可能会出现依赖变化、包升级异常、服务行为改变等问题。生产环境最重要的不是“新”,而是“可预测”。如果你不是非常熟悉 Debian 包管理和系统回滚机制,不建议将 Testing 用于线上业务。


三、安装 Debian 前的准备

在生产环境安装 Debian 前,建议提前确认以下信息:

1. 服务器类型

你使用的可能是:

  • 云服务器
  • 裸金属服务器
  • 虚拟机
  • 家用 NAS
  • 本地测试机

如果是云服务器,一般服务商已经提供 Debian 镜像,直接选择即可。如果是物理机或虚拟机,可以从 Debian 官网下载 ISO 镜像安装。

2. 架构选择

常见服务器架构包括:

  • amd64:最常见的 x86_64 架构
  • arm64:部分 ARM 云服务器、树莓派、国产 ARM 平台
  • i386:老旧 32 位设备,不建议新部署

生产环境通常选择 amd64

3. 磁盘规划

新手可以使用简单方案:

/        根分区,建议至少 20GB
/home    用户数据,可选
/var     日志、数据库、网站数据,可单独分区
swap     交换分区或 swap 文件

如果是 Web 服务器,建议重点关注 /var,因为很多服务数据默认会存放在这里,例如:

  • /var/www
  • /var/log
  • /var/lib/mysql
  • /var/lib/postgresql
  • /var/lib/docker

生产环境中,如果数据库或 Docker 数据较多,最好单独规划数据盘挂载到相关目录。

4. 网络信息

安装前最好确认:

  • IP 地址
  • 网关
  • DNS
  • 主机名
  • 是否需要 IPv6
  • 是否使用内网地址
  • 防火墙策略

如果是云服务器,大多数网络配置会自动完成。如果是机房物理机,需要提前准备静态 IP 信息。


四、安装后的第一件事:更新系统

登录 Debian 后,第一步不是安装应用,而是更新软件包索引和系统补丁。

sudo apt update
sudo apt upgrade -y

如果你是以 root 用户登录,可以去掉 sudo

apt update
apt upgrade -y

必要时也可以执行:

apt full-upgrade -y

两者区别是:

  • apt upgrade:只升级不需要删除旧包的软件
  • apt full-upgrade:允许处理依赖变化,必要时安装或移除软件包

生产环境中,日常安全更新可以使用 apt upgrade,大版本维护或依赖变更时再考虑 full-upgrade


五、配置普通用户与 sudo 权限

生产环境不建议长期直接使用 root 登录。更推荐创建普通用户,并赋予 sudo 权限。

adduser deploy
usermod -aG sudo deploy

然后切换用户测试:

su - deploy
sudo whoami

如果输出:

root

说明 sudo 权限正常。

为什么不建议长期使用 root?

root 拥有系统最高权限,任何误操作都可能造成严重后果,例如:

rm -rf / var/log

或者误删配置、误改权限、误杀服务等。使用普通用户加 sudo,可以降低误操作风险,也方便审计操作来源。


六、配置 SSH 登录安全

SSH 是服务器最常用的远程管理入口,也是攻击者最常扫描的目标之一。生产环境中,SSH 安全配置非常重要。

SSH 配置文件一般位于:

/etc/ssh/sshd_config

建议修改以下配置:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 22

如果你希望修改默认端口,比如改为 2222:

Port 2222

修改后重启 SSH 服务:

sudo systemctl restart ssh

或者:

sudo systemctl restart sshd

不同 Debian 版本服务名可能略有差异,通常 ssh 可用。

重要提醒

在禁用密码登录之前,一定要确认你的 SSH 密钥可以正常登录。否则可能把自己锁在服务器外面。

推荐操作流程:

  1. 先上传公钥;
  2. 开启一个新终端测试密钥登录;
  3. 确认能登录后再禁用密码;
  4. 修改 SSH 配置后不要立即关闭原会话;
  5. 确认新会话可连接后再退出旧会话。

上传公钥可以使用:

ssh-copy-id deploy@server_ip

或者手动写入:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

七、APT 包管理基础

Debian 的软件管理主要依赖 APT。新手必须熟悉以下命令。

1. 更新软件源索引

sudo apt update

2. 安装软件

sudo apt install nginx

3. 卸载软件

sudo apt remove nginx

4. 卸载并删除配置

sudo apt purge nginx

5. 清理无用依赖

sudo apt autoremove

6. 搜索软件包

apt search redis

7. 查看软件包信息

apt show nginx

8. 查看已安装软件

apt list --installed

9. 查看服务文件来自哪个包

dpkg -S /usr/sbin/nginx

10. 查看某个包安装了哪些文件

dpkg -L nginx

APT 的优势在于依赖管理成熟、软件来源统一、安全更新可靠。新手尽量优先使用官方仓库软件,除非确实需要新版本。


八、配置 Debian 软件源

Debian 默认软件源可能根据安装介质或地域不同而有所差异。如果服务器在中国大陆,使用官方源可能较慢,可以更换为国内镜像源。

软件源配置通常位于:

/etc/apt/sources.list

Debian 12 示例:

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

如果使用国内镜像源,例如清华源,可以参考:

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

修改后执行:

sudo apt update

关于 contrib、non-free、non-free-firmware

Debian 非常重视自由软件,因此软件源分为不同组件:

  • main:完全符合 Debian 自由软件准则的软件;
  • contrib:自身自由,但依赖非自由组件;
  • non-free:非自由软件;
  • non-free-firmware:非自由固件,Debian 12 中更常见。

服务器网卡、无线网卡、显卡等硬件可能需要非自由固件。生产服务器通常建议启用 non-free-firmware,避免硬件驱动缺失。


九、systemd 服务管理

Debian 默认使用 systemd 作为 init 系统。生产环境管理服务时,必须掌握 systemctl

1. 查看服务状态

systemctl status nginx

2. 启动服务

sudo systemctl start nginx

3. 停止服务

sudo systemctl stop nginx

4. 重启服务

sudo systemctl restart nginx

5. 重新加载配置

sudo systemctl reload nginx

6. 设置开机自启

sudo systemctl enable nginx

7. 取消开机自启

sudo systemctl disable nginx

8. 查看所有运行中的服务

systemctl --type=service --state=running

9. 查看服务日志

journalctl -u nginx

实时查看日志:

journalctl -u nginx -f

查看最近 100 行:

journalctl -u nginx -n 100

systemd 的日志系统非常适合排查服务启动失败、权限不足、端口占用、配置错误等问题。


十、防火墙配置:ufw 入门

Debian 可以使用多种防火墙工具,例如 iptables、nftables、ufw。对于新手,推荐使用 ufw,因为它语法简单。

安装 ufw:

sudo apt install ufw

允许 SSH:

sudo ufw allow OpenSSH

如果你修改了 SSH 端口,例如 2222:

sudo ufw allow 2222/tcp

允许 HTTP 和 HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

启用防火墙:

sudo ufw enable

查看状态:

sudo ufw status verbose

生产环境注意事项

启用防火墙前,一定要确认 SSH 端口已放行,否则可能无法远程登录。

常见策略是:

sudo ufw default deny incoming
sudo ufw default allow outgoing

含义是:

  • 默认拒绝外部访问;
  • 默认允许服务器主动访问外部。

十一、时间同步与时区设置

服务器时间准确非常重要,影响日志、证书、数据库、定时任务、监控告警等。

查看当前时间:

timedatectl

设置时区为上海:

sudo timedatectl set-timezone Asia/Shanghai

启用 NTP 时间同步:

sudo timedatectl set-ntp true

检查状态:

timedatectl status

如果时间不准,可能导致 HTTPS 证书校验失败、日志顺序混乱、分布式服务异常等问题。


十二、常用工具安装

新安装的 Debian 通常比较精简,可以安装一些常用工具:

sudo apt install -y vim curl wget git net-tools htop unzip zip tar lsof bash-completion ca-certificates gnupg

这些工具用途如下:

工具 用途
vim 文本编辑
curl HTTP 请求测试
wget 文件下载
git 代码管理
net-tools ifconfig、netstat 等
htop 进程监控
unzip/zip 压缩解压
lsof 查看文件和端口占用
ca-certificates HTTPS 证书支持
gnupg GPG 密钥管理

查看端口占用:

sudo lsof -i :80

或者:

ss -lntp

十三、部署 Nginx 示例

下面以 Nginx 为例,演示 Debian 上部署基础 Web 服务。

安装 Nginx:

sudo apt install nginx

启动并设置开机自启:

sudo systemctl enable --now nginx

查看状态:

systemctl status nginx

浏览器访问服务器 IP,如果看到 Nginx 默认页面,说明安装成功。

Nginx 默认站点配置通常位于:

/etc/nginx/sites-available/default

启用站点软链接在:

/etc/nginx/sites-enabled/

网站根目录默认是:

/var/www/html

测试配置:

sudo nginx -t

重新加载配置:

sudo systemctl reload nginx

一个简单站点配置示例

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html index.htm;

    access_log /var/log/nginx/example.access.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

创建目录:

sudo mkdir -p /var/www/example.com
echo "Hello Debian" | sudo tee /var/www/example.com/index.html

创建配置文件:

sudo nano /etc/nginx/sites-available/example.com

启用站点:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

十四、配置 HTTPS:Let’s Encrypt

生产环境 Web 服务基本都应该启用 HTTPS。可以使用 Let’s Encrypt 免费证书。

安装 Certbot:

sudo apt install certbot python3-certbot-nginx

申请证书:

sudo certbot --nginx -d example.com -d www.example.com

测试自动续期:

sudo certbot renew --dry-run

Let’s Encrypt 证书有效期为 90 天,但 Certbot 会自动配置续期任务。你可以查看 systemd timer:

systemctl list-timers | grep certbot

HTTPS 配置完成后,建议检查:

  • 证书是否有效;
  • 域名是否解析正确;
  • 80 和 443 端口是否放行;
  • Nginx 配置是否正常;
  • 自动续期是否可用。

十五、日志查看与问题排查

生产环境中,排查问题的核心能力之一就是看日志。

常见日志目录:

/var/log

常见日志文件:

日志 说明
/var/log/syslog 系统日志
/var/log/auth.log 登录认证日志
/var/log/nginx/access.log Nginx 访问日志
/var/log/nginx/error.log Nginx 错误日志
/var/log/apt/history.log apt 安装升级记录
/var/log/dpkg.log dpkg 操作记录

查看认证失败:

sudo grep "Failed password" /var/log/auth.log

实时查看系统日志:

sudo tail -f /var/log/syslog

查看最近启动日志:

journalctl -b

查看上一次启动日志:

journalctl -b -1

常见排查思路

如果服务无法启动,可以按以下顺序检查:

  1. 查看服务状态:
systemctl status 服务名
  1. 查看服务日志:
journalctl -u 服务名 -n 100
  1. 检查配置文件语法:
nginx -t
  1. 检查端口占用:
ss -lntp
  1. 检查权限:
ls -lah 相关目录
  1. 检查磁盘空间:
df -h
  1. 检查内存和进程:
free -h
top
htop

十六、磁盘与文件系统管理

查看磁盘使用情况:

df -h

查看目录大小:

du -sh /var/log
du -sh /var/lib/docker

查看块设备:

lsblk

查看挂载信息:

mount

编辑开机挂载文件:

sudo nano /etc/fstab

生产环境磁盘经验

  1. 不要让根分区写满;
  2. 日志目录要定期轮转;
  3. 数据库目录最好单独挂载;
  4. Docker 数据目录容易膨胀;
  5. 上传目录、缓存目录需要监控;
  6. 修改 /etc/fstab 前要谨慎,错误配置可能导致系统启动异常。

测试 fstab 配置:

sudo mount -a

如果没有报错,说明配置基本正常。


十七、日志轮转:logrotate

Debian 通常默认安装 logrotate,用于自动轮转日志,防止日志无限增长。

配置目录:

/etc/logrotate.d/

例如 Nginx 的轮转配置通常是:

/etc/logrotate.d/nginx

查看 logrotate 状态:

cat /var/lib/logrotate/status

手动测试:

sudo logrotate -d /etc/logrotate.conf

强制执行:

sudo logrotate -f /etc/logrotate.conf

对于自定义应用,建议单独编写 logrotate 配置,否则日志文件可能长期增长,最终撑满磁盘。


十八、定时任务 cron

Debian 支持 cron 定时任务。

编辑当前用户定时任务:

crontab -e

查看当前用户定时任务:

crontab -l

系统级定时任务目录:

/etc/cron.d/
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/

示例:每天凌晨 3 点执行备份脚本:

0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

cron 常见坑

  1. cron 环境变量很少;
  2. 脚本最好使用绝对路径;
  3. 需要给脚本执行权限;
  4. 输出要重定向到日志;
  5. 时间受系统时区影响;
  6. 命令能手动执行,不代表 cron 一定能执行。

给脚本执行权限:

chmod +x /usr/local/bin/backup.sh

十九、自动安全更新

生产环境需要及时打安全补丁,但频繁人工维护容易遗漏。Debian 可以使用 unattended-upgrades 自动安装安全更新。

安装:

sudo apt install unattended-upgrades apt-listchanges

启用:

sudo dpkg-reconfigure unattended-upgrades

主要配置文件:

/etc/apt/apt.conf.d/50unattended-upgrades
/etc/apt/apt.conf.d/20auto-upgrades

查看配置:

cat /etc/apt/apt.conf.d/20auto-upgrades

常见内容:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

生产环境建议

自动安全更新适合大多数基础服务器,但对于数据库、核心业务节点,建议结合维护窗口和测试环境。安全更新虽然通常风险较低,但仍可能触发服务重启或依赖变化。


二十、用户、权限与目录规范

Linux 权限是生产环境安全基础。

查看文件权限:

ls -lah

修改所有者:

sudo chown -R www-data:www-data /var/www/example.com

修改权限:

sudo chmod -R 755 /var/www/example.com

常见用户

用户 用途
root 超级管理员
www-data Web 服务常用用户
mysql MySQL/MariaDB 用户
postgres PostgreSQL 用户
redis Redis 用户

权限建议

  1. 网站代码不应全部设置为 777;
  2. 配置文件应限制写权限;
  3. 密钥文件权限应严格控制;
  4. 服务使用专用用户运行;
  5. 上传目录和代码目录尽量分离;
  6. 不要让 Web 用户拥有过多系统权限。

SSH 私钥权限一般应为:

chmod 600 ~/.ssh/id_rsa

二十一、Debian 上安装 Docker

如果需要容器环境,可以安装 Docker。虽然 Debian 仓库中也有 docker.io,但生产环境通常建议使用 Docker 官方源。

安装依赖:

sudo apt install ca-certificates curl gnupg

添加 Docker 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

添加软件源:

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

安装 Docker:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动并设置开机自启:

sudo systemctl enable --now docker

查看版本:

docker version

如果希望普通用户执行 Docker:

sudo usermod -aG docker deploy

重新登录后生效。

Docker 生产环境注意事项

  1. Docker 数据目录默认在 /var/lib/docker
  2. 镜像和日志容易占用大量空间;
  3. 容器日志需要限制大小;
  4. 不建议随意使用 --privileged
  5. 容器端口暴露要配合防火墙;
  6. 重要数据应挂载到宿主机目录或数据卷;
  7. 定期清理无用镜像和容器。

查看 Docker 占用:

docker system df

清理无用资源:

docker system prune

二十二、备份策略:生产环境的生命线

很多新手会把精力放在安装和部署上,却忽略备份。实际上,生产环境中最重要的不是“永不出错”,而是“出错后能恢复”。

建议备份以下内容:

  • 应用代码;
  • 数据库;
  • 配置文件;
  • 上传文件;
  • SSL 证书;
  • 定时任务;
  • Docker Compose 文件;
  • 关键环境变量;
  • /etc 下的重要配置。

常见备份方式

  1. 本地压缩备份;
  2. rsync 同步到远程服务器;
  3. 对象存储备份;
  4. 数据库逻辑备份;
  5. 磁盘快照;
  6. 云厂商快照;
  7. Git 管理配置文件。

示例:使用 tar 备份网站目录:

tar -czf /backup/www-$(date +%F).tar.gz /var/www

示例:备份 PostgreSQL:

pg_dump dbname > dbname-$(date +%F).sql

示例:备份 MySQL:

mysqldump -u root -p dbname > dbname-$(date +%F).sql

备份原则

  • 至少保留一份异地备份;
  • 定期测试恢复;
  • 数据库备份要关注一致性;
  • 备份文件要加密或限制权限;
  • 不要只依赖云盘快照;
  • 备份脚本要有日志和失败告警。

没有经过恢复测试的备份,严格来说不能算可靠备份。


二十三、性能观察与资源监控

Debian 本身资源占用较低,但业务上线后仍需监控。

查看 CPU 和进程

top
htop

查看内存

free -h

查看磁盘 IO

安装工具:

sudo apt install sysstat iotop

查看 IO:

iostat -x 1
sudo iotop

查看网络连接

ss -antp

查看系统负载

uptime

输出示例:

load average: 0.15, 0.22, 0.18

一般来说,负载需要结合 CPU 核心数判断。如果 2 核服务器长期 load average 超过 2,就需要关注是否存在 CPU、IO 或进程阻塞问题。

监控建议

生产环境建议接入监控系统,例如:

  • Prometheus + Grafana
  • Zabbix
  • Netdata
  • VictoriaMetrics
  • 云厂商监控
  • Uptime Kuma

至少要监控:

  • CPU 使用率;
  • 内存使用率;
  • 磁盘空间;
  • 磁盘 IO;
  • 网络流量;
  • 服务存活;
  • HTTP 状态;
  • SSL 证书有效期;
  • 数据库连接数;
  • 错误日志数量。

二十四、Debian 生产环境常见问题

1. apt update 报错

常见原因:

  • 网络不可达;
  • DNS 解析失败;
  • 软件源地址错误;
  • GPG key 缺失;
  • 系统时间错误;
  • 镜像源同步异常。

排查命令:

ping deb.debian.org
curl -I https://deb.debian.org
timedatectl
cat /etc/apt/sources.list

2. 服务启动失败

查看:

systemctl status 服务名
journalctl -u 服务名 -n 100

常见原因:

  • 配置语法错误;
  • 端口被占用;
  • 权限不足;
  • 目录不存在;
  • 依赖服务未启动;
  • 环境变量缺失。

3. 磁盘满了

查看:

df -h
du -sh /*

重点关注:

  • /var/log
  • /var/lib/docker
  • /var/lib/mysql
  • /tmp
  • 应用上传目录

4. SSH 无法登录

可能原因:

  • 防火墙未放行;
  • SSH 服务未启动;
  • 密钥权限错误;
  • 配置禁用了登录方式;
  • 云安全组拦截;
  • Fail2ban 封禁;
  • IP 地址变化。

本地可加 -v 查看调试信息:

ssh -v deploy@server_ip

5. 网站打不开

按顺序检查:

  1. 域名 DNS 是否解析正确;
  2. 服务器是否能 ping 通;
  3. 80/443 端口是否监听;
  4. 防火墙是否放行;
  5. 云安全组是否放行;
  6. Nginx 是否正常;
  7. 应用后端是否正常;
  8. 日志是否有错误。

二十五、生产环境 Debian 初始化清单

下面给出一份实用的 Debian 初始化清单,新服务器上线前可以逐项检查。

系统基础

  • [ ] 使用 Debian Stable;
  • [ ] 更新系统补丁;
  • [ ] 设置正确时区;
  • [ ] 配置主机名;
  • [ ] 配置可靠软件源;
  • [ ] 安装常用工具;
  • [ ] 配置普通用户;
  • [ ] 配置 sudo 权限。

安全设置

  • [ ] 禁止 root SSH 登录;
  • [ ] 使用 SSH 密钥登录;
  • [ ] 禁用 SSH 密码登录;
  • [ ] 配置防火墙;
  • [ ] 只开放必要端口;
  • [ ] 配置自动安全更新;
  • [ ] 检查用户权限;
  • [ ] 定期审计登录日志。

服务部署

  • [ ] 配置 systemd 服务;
  • [ ] 设置服务开机自启;
  • [ ] 配置日志输出;
  • [ ] 配置日志轮转;
  • [ ] 检查端口监听;
  • [ ] 配置反向代理;
  • [ ] 配置 HTTPS;
  • [ ] 测试服务重启恢复。

数据与备份

  • [ ] 数据目录规划合理;
  • [ ] 数据库单独备份;
  • [ ] 配置异地备份;
  • [ ] 定期恢复演练;
  • [ ] 备份脚本有日志;
  • [ ] 重要配置纳入版本管理;
  • [ ] 监控磁盘容量。

监控与维护

  • [ ] 配置资源监控;
  • [ ] 配置服务可用性监控;
  • [ ] 配置告警渠道;
  • [ ] 监控 SSL 证书有效期;
  • [ ] 定期检查安全更新;
  • [ ] 定期清理无用日志和缓存;
  • [ ] 记录变更操作。

二十六、生产环境实测经验总结

从实际使用经验来看,Debian 最大的优点不是某一个功能特别强,而是整体非常“稳”。服务器上线后,如果配置得当,它往往可以长期运行而不需要频繁干预。

1. 软件版本不一定最新,但足够可靠

Debian Stable 的软件版本相对保守,这对新手来说可能会觉得“不够新”。但生产环境的核心诉求是稳定运行,而不是抢先体验新功能。如果确实需要新版本,可以考虑:

  • 使用官方 backports;
  • 使用容器部署;
  • 使用软件官方仓库;
  • 手动编译或二进制包;
  • 但要控制范围,不要污染整个系统。

2. 配置文件结构清晰

Debian 的配置目录比较符合传统 Linux 习惯,大部分配置都集中在 /etc。只要熟悉常用服务的配置路径,维护起来并不复杂。

3. 包管理可靠

APT 和 dpkg 是 Debian 的核心优势之一。相比手动下载软件包或源码编译,使用包管理器安装的软件更容易升级、卸载和追踪。

4. 社区资料丰富

Debian 历史悠久,遇到问题时通常可以找到大量资料。很多 Ubuntu 的解决方案也可以参考,因为 Ubuntu 本身就是基于 Debian 构建的。不过要注意版本差异,不要盲目复制命令。

5. 适合长期维护

Debian Stable 的生命周期较长,安全更新及时,适合长期部署。对于小团队、个人开发者、中小企业服务器,Debian 是一个维护成本较低的选择。


二十七、新手最容易犯的错误

1. 所有文件都 chmod 777

这是非常危险的做法。权限问题应该具体分析,而不是粗暴开放所有权限。

2. 直接用 root 跑业务服务

业务服务应使用专用用户运行,避免服务漏洞导致系统完全失控。

3. 不做备份

没有备份的生产环境随时可能因为误删、磁盘故障、数据库损坏、勒索攻击而陷入不可恢复状态。

4. 不看日志只重启

重启可能暂时解决问题,但不看日志就无法知道根因。生产维护应尽量基于证据分析。

5. 随意添加第三方源

第三方源可能带来版本冲突、安全风险和依赖污染。能用官方仓库就优先用官方仓库。

6. 忽视防火墙和安全组

服务器暴露在公网时,未使用的端口不应开放。云服务器还要同时检查系统防火墙和云安全组。

7. 不记录变更

生产环境每次修改配置、升级软件、调整权限,都建议记录。否则出问题时很难回溯。


结语:Debian 是新手通往生产环境的稳健选择

Debian 并不是最花哨的 Linux 发行版,但它非常适合认真学习服务器运维和生产部署。对于新手而言,Debian 能帮助你建立一套扎实的 Linux 基础:包管理、服务管理、权限控制、网络配置、日志排查、安全加固、备份恢复和系统监控。

如果你刚开始接触服务器,建议不要急着追求复杂架构。可以先从一台 Debian 服务器开始,完成以下目标:

  1. 熟练使用 SSH;
  2. 掌握 apt 软件管理;
  3. 能部署 Nginx;
  4. 能配置 HTTPS;
  5. 能查看日志;
  6. 能排查端口和服务问题;
  7. 能配置防火墙;
  8. 能写简单备份脚本;
  9. 能理解权限和用户;
  10. 能稳定维护一台线上服务器。

当你把这些基础做好之后,再学习 Docker、数据库高可用、负载均衡、CI/CD、监控告警、Kubernetes 等进阶内容,会更加顺畅。

生产环境不是靠一次安装完成的,而是靠持续维护、持续观察和持续改进。Debian 的价值就在于,它给你提供了一个可靠、稳定、透明的基础平台,让你可以把更多精力放在业务本身,而不是频繁处理系统层面的意外问题。

目录结构
全文