上一篇
Linux如何开启DHCP服务?
- Linux
- 2025-07-03
- 2328
安装dhcpd或isc-dhcp-server软件包,编辑/etc/dhcp/dhcpd.conf配置文件定义地址池等参数,使用systemctl start dhcpd启动服务,并用systemctl enable dhcpd设置开机自启。
在Linux系统中,开启DHCP服务通常涉及两种场景:将本机配置为DHCP客户端(自动获取IP)或将本机配置为DHCP服务器(为其他设备分配IP),以下是详细操作指南,涵盖主流发行版(Ubuntu/Debian、CentOS/RHEL)的配置方法。
Linux 作为 DHCP 客户端(自动获取IP)
适用于通过DHCP自动获取IP地址,无需手动配置网络。
使用 NetworkManager(推荐)
适用系统:Ubuntu/Debian、CentOS/RHEL(桌面/服务器版通用)
# 查看网络接口名称 nmcli device status # 启用DHCP(以接口 eth0 为例) nmcli connection modify "有线连接1" ipv4.method auto # 设置为自动获取IP nmcli connection down "有线连接1" && nmcli connection up "有线连接1" # 重启连接
修改网络配置文件
-
Ubuntu/Debian(Netplan)
编辑配置文件(如/etc/netplan/01-netcfg.yaml
):network: version: 2 ethernets: eth0: dhcp4: true # 启用DHCP
应用配置:
sudo netplan apply
-
CentOS/RHEL(ifcfg 文件)
编辑配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth0
):BOOTPROTO=dhcp # 关键参数 ONBOOT=yes
重启网络服务:
sudo systemctl restart NetworkManager
验证DHCP客户端
ip addr show eth0 # 查看IP是否以 dhcp 分配 dhclient -v eth0 # 手动请求IP(调试用)
Linux 作为 DHCP 服务器(为其他设备分配IP)
通过 isc-dhcp-server
软件提供DHCP服务。
安装 DHCP 服务
- Ubuntu/Debian:
sudo apt update sudo apt install isc-dhcp-server
- CentOS/RHEL:
sudo yum install dhcp
配置 DHCP 服务器
编辑主配置文件 /etc/dhcp/dhcpd.conf
:
subnet 192.168.1.0 netmask 255.255.255.0 { # 分配的子网 range 192.168.1.100 192.168.1.200; # IP地址池 option routers 192.168.1.1; # 网关地址 option domain-name-servers 8.8.8.8; # DNS服务器 default-lease-time 600; # 默认租期(秒) max-lease-time 7200; # 最大租期 }
指定服务监听的网卡
编辑 /etc/default/isc-dhcp-server
(Ubuntu/Debian)或 /etc/sysconfig/dhcpd
(CentOS):
INTERFACESv4="eth0" # 替换为你的网卡名
启动服务并验证
sudo systemctl start isc-dhcp-server # Ubuntu/Debian sudo systemctl start dhcpd # CentOS/RHEL sudo systemctl enable dhcpd # 设置开机自启 # 检查状态 sudo systemctl status isc-dhcp-server tail -f /var/log/syslog | grep dhcp # 查看日志(Ubuntu)
故障排除与注意事项
-
防火墙放行:
DHCP服务使用UDP端口67(服务器)和68(客户端):sudo ufw allow 67/udp # Ubuntu sudo firewall-cmd --add-service=dhcp --permanent # CentOS
-
多网卡冲突:
确保dhcpd.conf
中的子网配置与监听网卡的IP段匹配。 -
客户端无法获取IP:
- 检查服务状态:
systemctl status isc-dhcp-server
- 重启服务:
sudo systemctl restart isc-dhcp-server
- 释放客户端IP:
dhclient -r eth0 && dhclient eth0
- 检查服务状态:
-
日志位置:
- Ubuntu/Debian:
/var/log/syslog
- CentOS:
/var/log/messages
- Ubuntu/Debian:
- 客户端模式:通过
NetworkManager
或配置文件设置dhcp4: true
/BOOTPROTO=dhcp
。 - 服务器模式:安装
isc-dhcp-server
,配置子网/IP池,监听指定网卡。 - 关键点:配置文件语法、防火墙规则、日志监控是成功部署的核心。
引用说明:
- DHCP协议规范:RFC 2131 (https://tools.ietf.org/html/rfc2131)
- ISC DHCP官方文档:https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcpd
- Ubuntu Netplan配置指南:https://netplan.io/examples
- Red Hat网络配置手册:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8