06 - 网络配置(Netplan / systemd-networkd / ifupdown) 🌐
前提条件 ✅
- 已完成 Debian 12 Bookworm 最小化安装(主机名 LinuxDC,IP 192.168.1.100/24)
- 系统已升级、apt 源优化、时间同步完成
- 以 ops 用户登录(具有 sudo 权限)或 root
- 虚拟机环境:VMware Workstation Pro,网络适配器为桥接(Bridged)或 NAT
- 当前 IP 仍为安装时手动设置的 192.168.1.100/24(可能在 /etc/network/interfaces 中)
详细步骤 🛠️
Debian 12 默认使用 ifupdown(/etc/network/interfaces),但现代推荐逐步迁移到 systemd-networkd 或 Netplan(后者在 Ubuntu 更常见,Debian 可选安装)。
本章重点对比三种方式,生产环境推荐 systemd-networkd(纯 Debian 原生、轻量、可靠)。
1. 当前状态检查(ifupdown 方式)
ip addr show
cat /etc/network/interfaces
systemctl status networking
2. 方案一:继续使用经典 ifupdown(最简单,兼容旧习惯)
编辑主配置文件:
sudo nano /etc/network/interfaces
推荐生产配置示例(静态 IP + 持久化):
# 主网卡(根据实际情况替换 enp0s3 / ens33 / eth0)
auto ens33
iface ens33 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1 114.114.114.114
# 可选:dns-search localdomain
# 可选:第二块网卡(如果有)
# auto ens34
# iface ens34 inet dhcp
应用配置:
sudo ifdown ens33 --force
sudo ifup ens33
# 或重启网络服务(较安全)
sudo systemctl restart networking
3. 方案二:迁移到 systemd-networkd(推荐生产方式,轻量、无额外依赖)
停用 ifupdown:
sudo systemctl stop networking
sudo systemctl disable networking
启用 systemd-networkd:
sudo systemctl enable --now systemd-networkd
sudo systemctl enable --now systemd-resolved
创建配置文件(.network 文件):
sudo mkdir -p /etc/systemd/network
sudo nano /etc/systemd/network/10-static-enp.network
内容示例(网卡名替换为实际,如 ens33):
[Match]
Name=ens33
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=1.1.1.1
DNS=114.114.114.114
[Link]
RequiredForOnline=routable
应用并验证:
sudo systemctl restart systemd-networkd
networkctl status
ip addr show
resolvectl status # 检查 DNS 是否生效
4. 方案三:使用 Netplan(可选,偏 Ubuntu 风格,Debian 可安装)
安装 Netplan:
sudo apt update
sudo apt install -y netplan.io
创建配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
示例内容:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1, 114.114.114.114]
应用:
sudo netplan generate
sudo netplan apply
netplan status
5. 最终验证(所有方案通用)
ip -br addr show
ip route show
ping -c 4 8.8.8.8
ping -c 4 www.baidu.com
resolvectl query www.google.com
实践任务 🎯
- 检查当前网络配置文件是哪种方式(ifupdown / systemd-networkd / netplan)
- 将网络配置迁移到 systemd-networkd(推荐),设置静态 IP 192.168.1.100/24
- 重启网络服务后,用
networkctl status和resolvectl status验证 - (可选)尝试 Netplan 配置并对比使用感受
自测问题 ❓
- Debian 12 默认使用哪种网络管理方式?
- systemd-networkd 和 ifupdown 的主要区别是什么?
- 如何让 systemd-resolved 接管 DNS 解析(/etc/resolv.conf 指向哪里)?
- 如果迁移后网络不通,最常见的三种排查方向是什么?
总结 📌
本章完成了网络配置的现代化迁移。
生产环境强烈推荐 systemd-networkd(轻量、可靠、与 systemd 集成好)。
ifupdown 仍可继续使用(简单兼容),Netplan 适合有 Ubuntu 背景的团队。
后续所有章节假设网络已稳定在 192.168.1.100/24。