适用对象:具备 Ubuntu 基础知识的开发者、运维工程师、系统管理员
目录
- 内核编译与调优
- 高级包管理
- 系统安全加固
- 网络高级配置
- 存储与 RAID 管理
- 自动化运维与脚本
- 虚拟化与容器技术
- 性能分析与优化
- 故障排查与恢复
- 附录:工具链与资源
1. 内核编译与调优
1.1 编译自定义内核
# 安装依赖
sudo apt install build-essential libncurses-dev bison flex libssl-dev # 下载内核源码(以 5.15 为例)
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.tar.xz
tar -xvf linux-5.15.tar.xz
cd linux-5.15 # 配置内核(选择默认配置并自定义)
make oldconfig # 基于当前系统配置
make menuconfig # 图形化界面调整选项 # 编译与安装
make -j$(nproc) # 多线程编译
sudo make modules_install
sudo make install # 更新 GRUB
sudo update-grub
调优选项:
- 启用
CONFIG_PREEMPT
降低延迟(适合实时性要求高的场景) - 调整
CONFIG_HZ=1000
提升响应速度 - 禁用未使用的驱动以减少内核体积
1.2 内核参数优化(/etc/sysctl.conf)
# 提升网络性能
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_fin_timeout = 15 # 优化文件系统
vm.swappiness = 10
fs.file-max = 2097152
应用配置:
sudo sysctl -p
2. 高级包管理
2.1 创建本地仓库
# 安装必要工具
sudo apt install reprepro gnupg # 创建仓库目录
mkdir -p /opt/myrepo/conf
cat > /opt/myrepo/conf/distributions <<EOF
Codename: focal
Architectures: amd64 arm64
Components: main
SignWith: YOUR_KEY_ID
EOF # 添加 DEB 包
reprepro includedeb focal /path/to/package.deb # 客户端配置
echo "deb http://your-server/myrepo focal main" | sudo tee /etc/apt/sources.list.d/myrepo.list
2.2 使用 Apt-Pinning
# /etc/apt/preferences.d/99-mypriority
Package: *
Pin: release o=MyRepo
Pin-Priority: 1001
3. 系统安全加固
3.1 启用 AppArmor/SELinux
# 安装 AppArmor 工具
sudo apt install apparmor-utils # 强制模式配置
sudo aa-enforce /etc/apparmor.d/* # 查看状态
aa-status
3.2 SSH 安全加固
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
AllowUsers alice
MaxAuthTries 3
ClientAliveInterval 300
重启服务:
sudo systemctl restart sshd
4. 网络高级配置
4.1 网络绑定(Bonding)
# 安装工具
sudo apt install ifenslave # 配置(/etc/netplan/01-bond.yaml)
network: bonds: bond0: interfaces: [enp1s0, enp2s0] addresses: [192.168.1.100/24] gateway4: 192.168.1.1 parameters: mode: 802.3ad lacp-rate: fast
4.2 使用 WireGuard VPN
# 安装
sudo apt install wireguard # 生成密钥对
wg genkey | tee privatekey | wg pubkey > publickey # 配置文件(/etc/wireguard/wg0.conf)
[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.8.0.1/24
ListenPort = 51820 [Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32
5. 存储与 RAID 管理
5.1 创建软 RAID 5
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
sudo mkfs.ext4 /dev/md0
sudo mount /dev/md0 /mnt/raid
5.2 LVM 高级操作
# 扩展逻辑卷
sudo lvextend -L +20G /dev/vg0/lv_data
sudo resize2fs /dev/vg0/lv_data # 创建快照
sudo lvcreate -s -n snap_data -L 5G /dev/vg0/lv_data
6. 自动化运维与脚本
6.1 使用 Ansible
# playbook.yml
- hosts: webservers tasks: - name: Install Nginx apt: name: nginx state: latest - name: Start Service systemd: name: nginx state: started
执行命令:
ansible-playbook playbook.yml
6.2 编写 Systemd 服务
# /etc/systemd/system/my-service.service
[Unit]
Description=My Custom Service [Service]
ExecStart=/usr/local/bin/my-script.sh
Restart=on-failure [Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl enable my-service
7. 虚拟化与容器技术
7.1 KVM 虚拟化
# 安装 KVM
sudo apt install qemu-kvm libvirt-daemon-system # 创建虚拟机
virt-install \ --name ubuntu-vm \ --ram 2048 \ --disk path=/var/lib/libvirt/images/ubuntu.qcow2,size=20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu22.04 \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/'
7.2 构建 Docker 镜像
# Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
构建命令:
docker build -t my-nginx .
8. 性能分析与优化
8.1 使用 Perf 工具
# 安装
sudo apt install linux-tools-common linux-tools-generic # 分析 CPU 热点
perf record -g -F 99 -p $(pgrep nginx)
perf report
8.2 调整 I/O 调度器
# 查看当前调度器
cat /sys/block/sda/queue/scheduler # 修改为 deadline 调度器(SSD 推荐)
echo 'deadline' | sudo tee /sys/block/sda/queue/scheduler
9. 故障排查与恢复
9.1 修复 GRUB 引导
# 进入 Live CD 环境
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
grub-install /dev/sda
update-grub
9.2 恢复误删文件(ext4 文件系统)
sudo apt install extundelete
extundelete /dev/sda1 --restore-file /home/user/important.txt
10. 附录:工具链与资源
10.1 推荐工具
- 监控:Prometheus + Grafana
- 日志:ELK Stack (Elasticsearch, Logstash, Kibana)
- 调试:strace, ltrace, gdb
- 网络分析:tcpdump, Wireshark, nmap
10.2 学习资源
- 官方文档:Ubuntu Server Guide
- 书籍:《The Linux Programming Interface》《UNIX and Linux System Administration Handbook》
- 社区:Server Fault, Ubuntu Forums
注意:
- 所有涉及系统级修改的操作,建议提前备份数据。
- 内核编译、RAID/LVM 操作等高风险任务,需在测试环境验证后再应用于生产环境。
更新日期:2023年10月
版权声明:自由分享,禁止用于商业用途。