温馨提示×

linux dhcp如何迁移

小樊
39
2026-09-12 15:53:47
栏目: 智能运维

在 Linux 环境下进行 DHCP 服务迁移,通常是从一台运行 DHCP 服务器的机器(源服务器)迁移到另一台机器(目标服务器),常见场景包括:

  • ISC DHCP(isc-dhcp-server)
  • Kea DHCP
  • 基于发行版的系统(CentOS / Rocky / Ubuntu / Debian)

下面以 ISC DHCP 迁移 为例,介绍通用、安全的迁移步骤。


一、迁移前准备

1. 确认原 DHCP 服务信息

在源服务器上查看:

ps aux | grep dhcpd
netstat -tunlp | grep :67

确认:

  • 配置文件路径(通常是 /etc/dhcp/dhcpd.conf
  • 租约文件(通常是 /var/lib/dhcpd/dhcpd.leases
  • 子网、保留地址、选项等

2. 安装目标服务器 DHCP 服务

Ubuntu / Debian

apt update
apt install isc-dhcp-server

CentOS / Rocky / Alma

yum install dhcp-server
# 或
dnf install dhcp-server

二、迁移配置文件和租约文件

1. 拷贝配置文件

在源服务器:

scp /etc/dhcp/dhcpd.conf root@目标IP:/etc/dhcp/

如有额外包含文件(如 subnet.conf),也要一起拷贝。


2. 拷贝租约文件(重要)

租约文件记录了当前已分配 IP,避免 IP 冲突。

源服务器:

scp /var/lib/dhcpd/dhcpd.leases root@目标IP:/var/lib/dhcpd/

注意:

  • Ubuntu 路径可能是 /var/lib/dhcp/dhcpd.leases
  • CentOS 是 /var/lib/dhcpd/dhcpd.leases

三、目标服务器配置

1. 修改监听网卡(如有)

Ubuntu:

vi /etc/default/isc-dhcp-server
INTERFACESv4="eth0"

CentOS:

vi /etc/sysconfig/dhcpd
DHCPDARGS="eth0"

2. 校验配置文件

dhcpd -t -cf /etc/dhcp/dhcpd.conf

无报错再进行下一步。


四、切换 DHCP 服务(关键)

方式一:先停后启(推荐,避免冲突)

  1. 在源服务器停止 DHCP:
systemctl stop isc-dhcp-server
# 或
systemctl stop dhcpd
  1. 在目标服务器启动 DHCP:
systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server

方式二:网络中有多个 DHCP(不推荐)

若网络中只能有一个 DHCP 服务器,务必确保旧服务器已关闭。


五、验证迁移是否成功

1. 查看日志

journalctl -u isc-dhcp-server
# 或
tail -f /var/log/messages

2. 客户端重新获取 IP

dhclient -r
dhclient
ip addr

3. 检查租约文件

cat /var/lib/dhcpd/dhcpd.leases

六、常见问题

1. 启动失败:Address already in use

说明还有 DHCP 在运行,确认源服务器已停。

2. 配置文件权限问题

chown root:root /etc/dhcp/dhcpd.conf
chmod 644 /etc/dhcp/dhcpd.conf

3. 防火墙

确保 UDP 67/68 放行:

firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

七、如果是 Kea DHCP

步骤类似,但文件不同:

  • 配置:/etc/kea/kea-dhcp4.conf
  • 租约:通常是 MySQL / PostgreSQL 或 CSV 文件

如果你能告诉我:

  • 使用的 Linux 发行版
  • DHCP 软件(ISC / Kea)
  • 是否 HA(故障切换)

我可以给你更精确的迁移方案。

0