dhcpcd is a DHCP and DHCPv6 client. It is currently the most feature-rich open source DHCP client, see the home page for the full list of features.
dhcpcd(DHCP client daemon) is not the same as
dhcpd(DHCP (server) daemon).
The official repositories. It is part of the group, so it is likely already installed on your system.package is available in the
You might be interested in wpa_supplicant). It features a configuration dialogue and the ability to enter a pass phrase for wireless networks.AUR, which is a GTK+ frontend for the dhcpcd daemon (and optionally
dhcpcd is usually controlled via the provided service file
dhcpcd@.service, which takes the interface name as an argument (see systemd#Using units for details):
# systemctl start email@example.com # systemctl enable firstname.lastname@example.org
To start dhcpcd manually, simply run the following command:
# dhcpcd interface
dhcpcd: version 5.1.1 starting dhcpcd: interface: broadcasting for a lease ... dhcpcd: interface: leased 192.168.1.70 for 86400 seconds
The main configuration is done in
dhcpcd.conf(5) for details. Some of the frequently used options are highlighted below.
If you are on a network with DHCPv4 that filters Client IDs based on MAC addresses, you may need to change the following line:
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 Client ID as per RFC4361. duid
# Use the hardware address of the interface for the Client ID (DHCPv4). clientid
DHCP static route(s)
If you need to add a static route client-side, create a new dhcpcd hook-script in
/usr/lib/dhcpcd/dhcpcd-hooks. The example shows a new hook-script which adds a static route to a VPN subnet on
10.11.12.0/24 via a gateway machine at
ip route add 10.11.12.0/24 via 192.168.192.5
40 prefix means that it is the final hook-script to run when dhcpcd starts.
Speed up DHCP by disabling ARP probing
dhcpcd contains an implementation of a recommendation of the DHCP standard (RFC2131 section 2.2) to check via ARP if the assigned IP address is really not taken. This seems mostly useless in home networks, so you can save about 5 seconds on every connect by adding the following line to
This is equivalent to passing
dhcpcd, and disables the described ARP probing, speeding up connections to networks with DHCP.
Tips and tricks
Remove old DHCP lease
interface is the name of the interface on which you have a lease, contains the actual DHCP lease reply sent by the DHCP server. It is used to determine the last lease from the server, and its
mtime attribute is used to determine when it was issued. This last lease information is then used to request the same IP address previously held on a network, if it is available. If you do not want that, simply delete this file.
Check DHCP problem by releasing IP first
Problem may occur when DHCP get wrong IP assignment. For example when two routers are tied together through VPN. The router that is connected to me by VPN may assigning IP address. To fix it. On a console, as root, release IP address:
# dhcpcd -k
Then request a new one:
Maybe you had to run those two commands many times.
Problems with incompliant routers
For some (incompliant) routers, you will not be able to connect properly unless you comment the line
/etc/dhcpcd.conf. This should not cause issues unless you have multiple DHCP servers on your network (not typical); see this page for more information.
dhcpcd executes all scripts found in
/usr/lib/dhcpcd/dhcpcd-hooks/ in a lexical order. See
dhcpcd-run-hooks(8) for details.
- Each script can be disabled using the
envoption can be used to set an environment variable for all hooks. For example, you can force the hostname hook to always set the hostname with