1. 网络配置实战
刚装完Ubuntu 20.04 Server时最让人抓狂的就是连不上网。记得我第一次配置生产服务器时,因为网卡驱动问题折腾到凌晨三点。下面这些血泪经验能帮你少走弯路。
1.1 有线网络配置
现代服务器基本都采用Netplan管理网络,配置文件藏在/etc/netplan目录下。我习惯先用ip a命令查看网卡名称,通常类似enp3s0这样的格式。新建配置文件时有个坑要注意:YAML格式对缩进极其敏感,建议复制这个模板:
sudo nano /etc/netplan/00-installer-config.yaml写入以下内容(注意把ens3换成你的实际网卡名):
network: version: 2 ethernets: ens3: dhcp4: true optional: true应用配置时有个小技巧:先用sudo netplan try测试,60秒内不报错才会永久生效。如果直接sudo netplan apply导致断网,就只能接显示器操作了。
1.2 无线网络配置
给服务器配WiFi听起来不太专业,但在某些特殊场景(比如临时测试环境)确实有用。需要先安装wpasupplicant:
sudo apt install wpasupplicant配置模板比有线网络复杂些,关键是要正确填写SSID和密码。这是我常用的配置:
network: version: 2 wifis: wlp2s0: dhcp4: yes access-points: "你的WiFi名称": password: "无线密码"实测发现某些Intel无线网卡需要额外安装firmware-iwlwifi驱动包。连接成功后建议用ping -c 4 baidu.com测试外网连通性。
1.3 静态IP设置
生产环境强烈建议使用静态IP。在原有配置基础上修改:
network: version: 2 ethernets: ens3: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]这里有个容易踩的坑:子网掩码要写成/24形式而不是传统的255.255.255.0。配置完记得用networkd-resolve --status检查DNS是否生效。
2. 时间同步配置
去年我们有个数据库集群因为时间不同步导致数据不一致,排查了整整两天。时间配置看似简单,实则影响深远。
2.1 时区设置
很多人不知道Ubuntu Server默认使用UTC时间。要改为本地时区,推荐用交互式命令:
sudo dpkg-reconfigure tzdata选择Asia->Shanghai即可。紧急情况下也可以直接复制时区文件:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime2.2 NTP时间同步
Ubuntu 20.04默认使用systemd-timesyncd服务。查看状态用:
timedatectl status如果发现"NTP synchronized: no",需要修改配置:
sudo nano /etc/systemd/timesyncd.conf取消注释并修改为:
[Time] NTP=ntp.aliyun.com FallbackNTP=ntp.ubuntu.com重启服务后建议观察几天,使用chronyc tracking查看时间偏移量。对于金融类系统,建议部署本地NTP服务器。
3. 存储管理实战
处理过多台服务器存储配置后,我总结出一套"三看"原则:看类型、看性能、看用途。
3.1 磁盘识别与分区
先用lsblk -f查看所有磁盘,关键信息包括:
ROTA=1表示机械硬盘SSD标记固态硬盘NVMe则是更快的PCIe固态
分区工具推荐parted,比传统fdisk更适合大容量磁盘。创建GPT分区表的命令:
sudo parted /dev/nvme0n1 mklabel gpt对于2TB以上磁盘,一定要用GPT分区表。创建分区时建议预留1%空间给系统:
sudo parted -a opt /dev/nvme0n1 mkpart primary ext4 0% 99%3.2 文件系统选择
EXT4仍是默认选择,但根据使用场景不同:
- 数据库存储用XFS性能更好
- 小文件多的场景可以用Btrfs
- ZFS适合需要快照功能的场景
格式化命令示例:
sudo mkfs.xfs -f /dev/nvme0n1p1记得用blkid记录UUID,比设备名更可靠。
3.3 自动挂载配置
/etc/fstab的配置格式很有讲究,这是我常用的模板:
UUID=5b606b38-ff9d-4e19 /data1 xfs defaults,noatime,nodiratime 0 2几个关键参数:
noatime减少写入次数nobarrier对NVMe磁盘可提升性能- 最后两位分别是dump备份和fsck检查顺序
建议先用mount -a测试配置是否正确,避免系统无法启动。
4. 生产环境优化
4.1 禁用云初始化
云镜像默认的cloud-init在物理机上会造成启动延迟:
sudo touch /etc/cloud/cloud-init.disabled4.2 日志系统调整
默认的journald日志会占用大量空间,建议修改配置:
sudo nano /etc/systemd/journald.conf修改以下参数:
SystemMaxUse=500M ForwardToSyslog=yes4.3 内核参数调优
对于NVMe SSD,可以提升IO队列深度:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf echo "block/nvme0n1/queue/nr_requests=128" | sudo tee -a /etc/sysctl.conf网络方面建议调整TCP缓冲区大小:
echo "net.core.rmem_max=4194304" | sudo tee -a /etc/sysctl.conf这些配置需要根据实际硬件规格调整,建议先在测试环境验证效果。