1. 环境准备与基础配置刚拿到一台全新的Ubuntu 22.04服务器时就像搬进毛坯房得先通水电、装门窗。我通常会从这几个基础配置开始它们决定了后续所有操作的稳定性。1.1 系统更新与源配置国内用户第一步要做的就是更换软件源。阿里云的镜像源速度稳定我实测下载速度能提升5-8倍。操作时记得先备份原始配置sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后用vim编辑sources.list文件替换为以下内容以阿里云源为例deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse更新软件包列表时有个小技巧先运行sudo apt update --fix-missing修复可能的索引错误再执行常规更新。遇到锁文件报错时用sudo rm /var/lib/apt/lists/lock清除锁文件。1.2 基础工具安装生产环境必备的工具集我习惯称为运维瑞士军刀网络诊断系net-tools(包含ifconfig)、iproute2、traceroute文件传输系lrzsz(支持rz/sz命令)、curl、wget文本处理系vim、jq(JSON处理)、tree(目录树展示)系统监控系htop、iotop、nmon安装命令如下sudo apt install -y vim net-tools curl wget lrzsz htop iotop nmon jq tree特别提醒如果服务器内存小于2GB建议用nano替代vim因为vim的内存占用可能影响服务性能。我在低配云主机上就遇到过vim导致OOM的问题。2. 系统安全加固安全配置就像给服务器穿上防弹衣下面这些措施是我在金融级项目中验证过的方案。2.1 SSH安全防护首先修改SSH默认端口建议选择1024-65535之间的冷门端口。修改/etc/ssh/sshd_config时要注意Port 58234 # 新端口号 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 强制密钥认证 ClientAliveInterval 300 # 5分钟无操作自动断开改完后务必先测试新端口能否连接再关闭原端口。我有次忘了测试就直接重启服务结果把自己锁在服务器外面...2.2 防火墙配置UFW是Ubuntu自带的防火墙工具比iptables友好多了。建议这样配置sudo ufw allow 58234/tcp # 放行SSH新端口 sudo ufw allow 80,443/tcp # 放行Web服务 sudo ufw enable # 启用防火墙重要提示云服务器还需要在控制台配置安全组规则两者是互补关系。我就遇到过UFW放行了端口但阿里云安全组没配置的情况。2.3 用户权限控制创建专用运维账号比直接用root安全得多sudo adduser deployer sudo usermod -aG sudo deployer # 加入sudo组然后配置sudo免密码生产环境慎用echo deployer ALL(ALL) NOPASSWD:ALL | sudo tee /etc/sudoers.d/deployer3. 性能调优实战这部分是重头戏好的调优能让服务器性能提升30%以上。3.1 内核参数优化编辑/etc/sysctl.conf时我通常会调整这些关键参数# TCP连接优化 net.ipv4.tcp_syncookies 1 net.ipv4.tcp_max_syn_backlog 8192 net.ipv4.tcp_tw_reuse 1 # 内存管理 vm.swappiness 10 # 减少swap使用 vm.overcommit_memory 1 # 允许内存超配 # 文件系统 fs.file-max 65535 # 最大文件描述符应用配置后用sysctl -p生效。注意这些值需要根据实际负载调整我在高并发场景会把tcp_max_syn_backlog调到16384。3.2 资源限制调整修改/etc/security/limits.conf解除默认限制* soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535对于Java应用服务器还需要额外设置echo DefaultLimitNOFILE65535 /etc/systemd/system.conf systemctl daemon-reload3.3 磁盘I/O优化如果是传统硬盘非SSD可以调整电梯算法echo deadline /sys/block/sda/queue/scheduler对于数据库服务器建议关闭文件系统atime属性vim /etc/fstab # 在挂载选项中加入noatime,nodiratime4. 生产环境必备服务4.1 时间同步配置分布式系统对时间同步要求极高我推荐用chrony替代默认的timesyncdsudo apt install -y chrony sudo systemctl enable --now chronyd配置文件中建议添加国内NTP服务器server ntp.aliyun.com iburst server ntp1.tencent.com iburst4.2 日志管理Ubuntu默认使用rsyslog生产环境建议这样配置# 限制日志文件大小 vim /etc/logrotate.d/rsyslog # 添加以下内容 size 100M rotate 5 compress对于容器化环境可以考虑安装Loki或Elasticsearch集成。4.3 监控告警基础监控我习惯用PrometheusNode Exporter组合wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar xvf node_exporter-*.tar.gz sudo mv node_exporter-*/node_exporter /usr/local/bin/创建systemd服务[Unit] DescriptionNode Exporter Afternetwork.target [Service] Usernode_exporter ExecStart/usr/local/bin/node_exporter [Install] WantedBymulti-user.target记得配置防火墙放行9100端口。这套监控方案在我管理的50节点集群中稳定运行了3年。