温馨提示×

Ubuntu DHCP如何恢复配置

小樊
40
2025-12-16 07:26:22
栏目: 智能运维

Ubuntu DHCP配置恢复指南

适用场景与准备

  • 区分角色:
    • DHCP服务器:提供地址分配(常见软件为 ISC DHCP Server isc-dhcp-serverdnsmasq)。
    • DHCP客户端:从上游获取地址(桌面/服务器使用 NetworkManagerNetplan 管理网络)。
  • 准备事项:
    • 有备份时,优先使用备份文件(配置文件与租约数据库)。
    • 无备份时,准备一份最小化可用配置,并按实际网络参数(如 子网、网关、DNS、地址池)调整。
    • 操作前建议备份当前状态:sudo cp -a /etc/dhcp /etc/dhcp.bak-$(date +%F);如使用 dnsmasq,亦备份 /etc/dnsmasq.conf

恢复步骤

  • 一、恢复为DHCP客户端(让网卡重新通过DHCP获取地址)
    • 使用 Netplan(Ubuntu 18.04/20.04/22.04 常见)
      1. 编辑 Netplan 配置(文件名可能不同,如 /etc/netplan/01-network-manager-all.yaml50-cloud-init.yaml):
        network:
          version: 2
          renderer: NetworkManager   # 或 NetworkManager/networkd
          ethernets:
            eth0:                  # 替换为你的网卡名,如 ens33/enp0s3
              dhcp4: true
        
      2. 应用配置:sudo netplan apply
      3. 如无地址,可手动触发请求:sudo dhclient -v eth0
      4. 验证:ip a show dev eth0networkctl status eth0
    • 使用 ifupdown(较少见)
      • 编辑 /etc/network/interfacesauto eth0; iface eth0 inet dhcp
      • 重启网络:sudo systemctl restart networkingsudo ifdown eth0 && sudo ifup eth0
  • 二、恢复为DHCP服务器(以 ISC DHCP Server 为例)
    1. 停止服务:sudo systemctl stop isc-dhcp-server
    2. 恢复配置(示例路径):sudo cp /path/to/backup/dhcpd.conf /etc/dhcp/dhcpd.conf
    3. 恢复租约数据库(避免地址冲突):sudo cp /path/to/backup/dhcpd.leases /var/lib/dhcp/dhcpd.leases
    4. 语法检查:sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
    5. 启动服务:sudo systemctl start isc-dhcp-server;如需开机自启:sudo systemctl enable isc-dhcp-server
    6. 验证:sudo systemctl status isc-dhcp-server,并检查 UDP 67 端口监听:sudo ss -ulnp | grep :67
  • 三、恢复为 dnsmasq 作为DHCP服务器
    1. 停止服务:sudo systemctl stop dnsmasq
    2. 恢复配置:sudo cp /path/to/backup/dnsmasq.conf /etc/dnsmasq.conf
    3. 恢复租约:sudo cp /path/to/backup/dnsmasq.leases /var/lib/misc/dnsmasq.leases
    4. 启动服务:sudo systemctl start dnsmasq;如需开机自启:sudo systemctl enable dnsmasq
    5. 验证:sudo systemctl status dnsmasq,并检查 UDP 67 端口监听:sudo ss -ulnp | grep :67
  • 四、无备份时的最小可用配置示例(ISC DHCP Server)
    option domain-name "example.com";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.100 192.168.1.200;
      option routers 192.168.1.1;
      option broadcast-address 192.168.1.255;
    }
    
    保存为 /etc/dhcp/dhcpd.conf 后执行语法检查并启动服务。

验证与排错

  • 服务状态与端口
    • ISC DHCP:sudo systemctl status isc-dhcp-server;端口:sudo ss -ulnp | grep :67
    • dnsmasq:sudo systemctl status dnsmasq;端口:sudo ss -ulnp | grep :67
  • 日志与语法
    • 查看系统日志:sudo tail -n50 /var/log/syslog | grep -i dhcp
    • 配置语法:sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
  • 客户端快速验证
    • 观察地址分配:ip a
    • 手动请求:sudo dhclient -v eth0
  • 常见修复
    • 配置错误:修正后再次 dhcpd -t 并重启服务
    • 包损坏或文件缺失:重装服务(如 sudo apt-get remove --purge isc-dhcp-server && sudo apt-get install isc-dhcp-server),再恢复配置与租约文件。

0