Debian/Ubuntu系统安装与运维实战指南
1. 全系统装机与运维速成指南概述作为一名从业十年的系统运维工程师我经常被问到如何快速掌握从系统安装到软件部署再到日常运维的全套技能。今天我就用最直白的方式把整个流程拆解成可实操的步骤特别针对Debian和Ubuntu这两个最常用的Linux发行版。这套方法是我在管理超过200台生产服务器过程中总结出来的包含了你需要知道的所有关键点从系统安装时的分区方案选择到软件源配置的坑再到生产环境必须做的安全加固。无论你是刚入行的运维新人还是需要搭建个人服务器的开发者按照这个流程走都能在最短时间内搭建出稳定可靠的服务环境。2. 系统安装与基础配置2.1 发行版选择Debian还是Ubuntu根据我多年的使用经验这两个发行版各有优劣Debian Stable适合需要长期稳定运行的生产环境。我管理的数据库服务器全部使用Debian最长的一台已经连续运行4年没有重装过系统。Ubuntu LTS更适合需要较新软件版本的场景。比如我们的CI/CD服务器就使用Ubuntu因为对Docker和Kubernetes的支持更好。重要提示千万不要在生产环境使用非LTS版本的Ubuntu我见过太多因为用了普通版本导致半年后无法升级的悲剧。2.2 安装过程的关键决策点2.2.1 分区方案对于服务器我强烈推荐以下分区方案以100GB磁盘为例/boot 1GB (ext4) / 20GB (ext4) /var 30GB (ext4) /home 10GB (ext4) swap 内存大小的1.5倍 剩余空间留给LVM便于后期扩容这个方案经过了数百次部署验证分离/var避免日志爆满影响系统运行使用LVM为后期扩容留有余地swap大小经过实际压力测试验证2.2.2 网络配置安装时就要配置好静态IP这是我的标准模板# /etc/network/interfaces (Debian) auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4Ubuntu使用netplan的配置略有不同# /etc/netplan/00-installer-config.yaml network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]2.3 安装后的必须操作2.3.1 更换国内源这是最容易被忽视却最重要的一步。以Debian 12为例# 备份原有源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 使用清华源 sudo sed -i s/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo sed -i s/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list # 更新 sudo apt update sudo apt upgrade -yUbuntu的换源方法类似但要注意区分版本代号。2.3.2 基础安全加固禁用root SSH登录sudo sed -i s/PermitRootLogin yes/PermitRootLogin no/g /etc/ssh/sshd_config sudo systemctl restart sshd配置防火墙sudo apt install ufw -y sudo ufw allow 22/tcp sudo ufw enable安装fail2ban防暴力破解sudo apt install fail2ban -y sudo systemctl enable fail2ban --now3. 软件部署实战3.1 LAMP环境部署3.1.1 一键安装方式对于测试环境可以使用sudo apt install lamp-server^ -y但生产环境我建议分开安装以便精细控制版本和配置。3.1.2 生产级部署步骤安装指定版本的组件sudo apt install -y apache2 mysql-server php8.2 php8.2-mysql libapache2-mod-php8.2MySQL安全配置sudo mysql_secure_installation重要选项设置root密码移除匿名用户禁止root远程登录移除test数据库Apache优化配置sudo a2enmod rewrite sudo systemctl restart apache23.2 Docker部署3.2.1 官方安装方法# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt update sudo apt install -y ca-certificates curl gnupg # 添加GPG key sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 设置仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /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 -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 验证安装 sudo docker run hello-world3.2.2 生产环境必须配置配置docker守护进程sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 }, storage-driver: overlay2 } EOF sudo systemctl restart docker将用户加入docker组谨慎操作sudo usermod -aG docker $USER4. 运维监控体系搭建4.1 Cacti监控部署4.1.1 基础安装sudo apt install -y cacti cacti-spine安装过程中会提示配置数据库记得为cacti创建专用数据库用户记录下设置的密码4.1.2 关键配置调整数据收集频率sudo nano /etc/cron.d/cacti修改为*/5 * * * * www-data php /usr/share/cacti/poller.php /dev/null 21配置spine提高性能sudo nano /etc/cacti/spine.conf修改数据库连接信息并设置Threads 104.2 存储配置TrueNAS iSCSI4.2.1 TrueNAS基础配置创建存储池选择至少3块硬盘RAIDZ1 (类似RAID5)建议预留20%空间不分配配置iSCSI共享# 创建ZVOL zfs create -V 100G tank/iscsi/disk1 # 配置iSCSI iscsictl add target -t iqn.2023-08.com.example:storage.disk1 iscsictl add lun -t iqn.2023-08.com.example:storage.disk1 -l /dev/zvol/tank/iscsi/disk14.2.2 客户端连接在Linux服务器上sudo apt install open-iscsi sudo iscsiadm -m discovery -t st -p 192.168.1.200 sudo iscsiadm -m node -T iqn.2023-08.com.example:storage.disk1 -p 192.168.1.200 -l永久挂载# 获取UUID sudo blkid /dev/sdb # 添加到fstab echo UUIDxxxx-xxxx-xxxx /mnt/data ext4 _netdev 0 0 | sudo tee -a /etc/fstab5. 常见问题与解决方案5.1 系统问题问题apt update时报错Release file expired解决方案sudo apt update -o Acquire::Check-Valid-Untilfalse sudo apt install -y debian-archive-keyring # Debian # 或 sudo apt install -y ubuntu-keyring # Ubuntu5.2 网络问题问题双网卡配置路由混乱解决方案# 查看当前路由 ip route show # 添加特定网段路由 sudo ip route add 192.168.2.0/24 via 192.168.2.1 dev eth1 # 永久生效Debian sudo nano /etc/network/interfaces # 在eth1配置后添加 # up ip route add 192.168.2.0/24 via 192.168.2.1 dev eth15.3 性能问题问题MySQL响应缓慢排查步骤检查慢查询SHOW VARIABLES LIKE slow_query_log; SET GLOBAL slow_query_log ON;优化配置/etc/mysql/my.cnf[mysqld] innodb_buffer_pool_size 1G # 建议为物理内存的50-70% innodb_log_file_size 256M query_cache_size 0 # MySQL 8.0已移除6. 终端美化与效率提升6.1 Zsh Oh My Zsh配置sudo apt install -y zsh sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)推荐主题sed -i s/ZSH_THEME.*/ZSH_THEMEagnoster/ ~/.zshrc实用插件plugins(git zsh-autosuggestions zsh-syntax-highlighting)6.2 常用别名设置echo alias llls -alhF alias grepgrep --colorauto alias dfdf -h alias dudu -h alias freefree -h alias pps aux | grep alias tophtop ~/.zshrc6.3 SSH优化配置echo Host * Compression yes ServerAliveInterval 60 TCPKeepAlive yes ControlMaster auto ControlPath ~/.ssh/control-%r%h:%p ControlPersist 4h ~/.ssh/config这套配置经过多年实战检验从系统安装到日常运维的所有关键点都涵盖其中。记住好的运维不是记住所有命令而是建立可靠的流程和习惯。每次部署新服务器时我都会严格按照这个清单执行确保不会遗漏任何关键步骤。