目录

Ubuntu-高级进阶教程

Ubuntu 高级进阶教程

适用对象:具备 Ubuntu 基础知识的开发者、运维工程师、系统管理员


目录

  1. 内核编译与调优
  2. 高级包管理
  3. 系统安全加固
  4. 网络高级配置
  5. 存储与 RAID 管理
  6. 自动化运维与脚本
  7. 虚拟化与容器技术
  8. 性能分析与优化
  9. 故障排查与恢复
  10. 附录:工具链与资源

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 学习资源
  • 官方文档
  • 书籍 :《The Linux Programming Interface》《UNIX and Linux System Administration Handbook》
  • 社区 : ,

注意

  • 所有涉及系统级修改的操作,建议提前备份数据。
  • 内核编译、RAID/LVM 操作等高风险任务,需在测试环境验证后再应用于生产环境。

更新日期 :2023年10月

版权声明 :自由分享,禁止用于商业用途。