跳转至

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-networkdNetplan(后者在 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

实践任务 🎯

  1. 检查当前网络配置文件是哪种方式(ifupdown / systemd-networkd / netplan)
  2. 将网络配置迁移到 systemd-networkd(推荐),设置静态 IP 192.168.1.100/24
  3. 重启网络服务后,用 networkctl statusresolvectl status 验证
  4. (可选)尝试 Netplan 配置并对比使用感受

自测问题 ❓

  1. Debian 12 默认使用哪种网络管理方式?
  2. systemd-networkd 和 ifupdown 的主要区别是什么?
  3. 如何让 systemd-resolved 接管 DNS 解析(/etc/resolv.conf 指向哪里)?
  4. 如果迁移后网络不通,最常见的三种排查方向是什么?

总结 📌

本章完成了网络配置的现代化迁移。
生产环境强烈推荐 systemd-networkd(轻量、可靠、与 systemd 集成好)。
ifupdown 仍可继续使用(简单兼容),Netplan 适合有 Ubuntu 背景的团队。
后续所有章节假设网络已稳定在 192.168.1.100/24。