Configuring Linux Static DHCP Clients by Sending Host Name

last updated in Categories , , , , , ,

Q. My DHCP server configured to assign static IPs to few Debian / Ubuntu Linux boxes using hostnames. My Windows 2000 and XP client computer sends hostname automatically. How do I send my hostname under Linux using dhcp client?

A. By default, the DHCP server requests the subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers and host-name options. DHCP client configuration allows you to set a hostname using send host-name “hostname” parameter.

Linux dhcpclient configuration – dhclient.conf

dhclient.conf is a configuration file for DHCP client under Linux:

  • Debian / Ubuntu Linux – /etc/dhcp3/dhclient.conf
  • RHEL / Fedora / CentOS Linux – /etc/sysconfig/network-scripts/ifcfg-eth0 (for 1st DHCP network interface)
WARNING! These examples requires correct hostname.

Debian / Ubuntu Linux DHCP Client Configuration

Open configuration file, enter:
$ sudo vi /etc/dhcp3/dhclient.conf
Set hostname as follows:
send host-name "vivek-laptop";
Save and close the file. Test new settings, enter:
$ sudo dhclient eth0
$ sudo dhclient interface-name

RHEL / CentOS / Fedora Linux DHCP Client Configuration

Open configuration file, enter:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Append hostname, enter:
Save and close the file. Restart network service:
# service network restart
Please refer to dhclient.conf man page for more information, enter:
$ man dhclient.conf

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

4 comment

  1. Just some additional points when I tried this on Ubuntu 12.10 Server. When editing the “dhclient.conf” file, I also had to comment out the the last two lines (shown below) for the technique above to work:

    send host-name “mypreferredhostname”

    #send host-name = gethostname();

    #send fqdn.fqdn = gethostname();

  2. For CentOS/Redhat 5/6, edit /etc/sysconfig/network file
    and put :


    and finally
    # /etc/init.d/network restart

  3. @Mr Xhark

    In CentOS
    /etc/init.d/network [restart/start] or /sbin/service network [start/restart] does not send the hostname when requesting ip, via dhcp, if the variable DHCP_HOSTNAME is not defined in /etc/sysconfig/network-scripts/ifcfg-ethX (where X is a number)

    /sbin/service NetworkManager [restart/start] does send the hostname, even if not defined in ifcfg-ethX.

    Still, have a question? Get help on our forum!