悠悠楠杉
Ubuntu18及以上版本网络配置指南:从基础到高阶实践
二、实战:配置静态IP地址
1. 定位配置文件
首先通过ls /etc/netplan/
查看现有配置,通常能看到类似50-cloud-init.yaml
的文件。建议新建99-custom.yaml
避免与系统默认配置冲突:
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
2. 关键参数解析
version: 2
:必须声明的netplan语法版本/24
子网掩码:等效于传统255.255.255.0gateway4
:IPv4默认网关(注意:Ubuntu 22.04开始推荐使用routes方式)
3. 应用配置
执行两阶段验证:
bash
sudo netplan generate # 语法检查
sudo netplan apply # 应用配置
遇到问题时,journalctl -xe
和networkctl status
是你的排错利器。
三、动态IP配置:当DHCP遇上复杂场景
虽然DHCP看似简单,但在企业环境中可能需要特殊处理:
yaml
network:
version: 2
ethernets:
enp3s0:
dhcp4: yes
dhcp-identifier: mac # 解决某些ISP的DHCP绑定问题
dhcp4-overrides:
use-dns: false # 禁用DHCP下发的DNS
四、高阶应用场景
1. 多网卡绑定(Bonding)
实现网络冗余和负载均衡:
yaml
network:
version: 2
bonds:
bond0:
interfaces: [enp3s0, enp4s0]
parameters:
mode: 802.3ad
lacp-rate: fast
2. VLAN配置
为服务器添加虚拟局域网支持:
yaml
network:
version: 2
vlans:
vlan100:
id: 100
link: enp3s0
addresses: [10.0.100.2/24]
五、深度排错指南
当网络出现异常时,建议按照以下顺序排查:
1. ip a
检查网卡状态(注意:ifconfig已逐渐被淘汰)
2. ping 127.0.0.1
验证基础协议栈
3. sudo lshw -class network
查看硬件识别状态
4. 检查/var/log/syslog
中的NetworkManager日志
六、传统与现代的碰撞
有趣的是,你仍可以通过安装ifupdown包回归传统方式:
bash
sudo apt install ifupdown
但要注意两种配置方式互相排斥,混合使用会导致不可预测的行为(笔者曾因此浪费三小时排查)。
结语:
netplan的设计体现了Linux配置向声明式发展的趋势。虽然初期学习曲线略陡,但其清晰的YAML语法和与云环境的深度整合,正在成为新一代Ubuntu系统的网络管理标准方案。建议在日常使用中养成注释配置的习惯,毕竟六个月后的你,可能也记不清当初为什么要把MTU设置为9000。