温馨提示×

DHCP租约时间:Linux中的设置方法

小樊
42
2025-10-18 03:39:47
栏目: 智能运维

Linux系统中设置DHCP租约时间的方法

1. 通过修改DHCP客户端配置文件(永久生效)

DHCP租约时间的永久设置需调整客户端配置文件,不同发行版的路径和参数略有差异:

  • Debian/Ubuntu系统:编辑/etc/dhcp/dhclient.conf文件,添加或修改send lease-time参数(单位:秒)。例如,设置租约时间为1小时(3600秒):
    sudo nano /etc/dhcp/dhclient.conf
    # 在文件中添加(或修改)以下行
    interface "eth0" { send lease-time 3600; }
    
  • Red Hat/CentOS/Fedora系统
    • 方式一:编辑/etc/sysconfig/network-scripts/ifcfg-<interface>(如ifcfg-eth0),添加DHCP_LEASE_TIME参数:
      sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
      # 添加以下行
      DHCP_LEASE_TIME=3600
      
    • 方式二:编辑/etc/dhcp/dhclient.conf文件,添加max-lease-time(最大租约时间)和min-lease-time(最小租约时间):
      sudo nano /etc/dhcp/dhclient.conf
      # 添加以下行(单位:秒)
      max-lease-time 86400;  # 最大24小时
      min-lease-time 3600;   # 最小1小时
      

2. 使用dhclient命令行工具(临时生效)

若需临时调整租约时间,可通过dhclient命令实现:

  • 释放当前租约
    sudo dhclient -r <interface>  # 如eth0、ens33
    
  • 重新获取租约并设置时间
    sudo dhclient -t <lease_time> <interface>  # lease_time为秒数,如3600
    
    示例:设置租约时间为2小时(7200秒):
    sudo dhclient -t 7200 eth0
    

3. 通过NetworkManager设置(图形界面或命令行)

若系统使用NetworkManager管理网络,可通过以下步骤设置:

  • 图形界面
    1. 点击桌面右上角网络图标→选择“编辑连接”;
    2. 选中目标网络连接→点击“编辑”;
    3. 进入“IPv4设置”→“方法”选择“DHCP”;
    4. 在“额外参数”中添加dhcp-lease-time=<seconds>(如3600);
    5. 点击“保存”并重启连接。
  • 命令行
    使用nmcli命令修改连接配置:
    nmcli connection modify <connection_name> ipv4.dhcp-lease-time <seconds> ipv4.method auto
    nmcli connection up <connection_name>
    
    示例:设置连接名为“Wired connection 1”的租约时间为1小时:
    nmcli connection modify "Wired connection 1" ipv4.dhcp-lease-time 3600 ipv4.method auto
    nmcli connection up "Wired connection 1"
    

注意事项

  • 权限要求:修改配置文件需使用sudo或root权限;
  • 服务重启:修改配置文件后,需重启网络服务或DHCP客户端使更改生效:
    • Debian/Ubuntu:sudo systemctl restart networking
    • Red Hat/CentOS:sudo systemctl restart network
    • Fedora:sudo systemctl restart NetworkManager
  • 语法验证:修改配置文件前建议备份,避免语法错误导致网络中断;
  • 服务器端设置:若需全局调整DHCP租约时间(影响所有客户端),需修改DHCP服务器配置(如/etc/dhcp/dhcpd.conf中的default-lease-timemax-lease-time),但这属于服务器端配置,非客户端操作。

0