---
name: "dhcpcd-2.2.x"
section: "8"
platform: "linux"
package: "dhcpcd"
version: "1:1.3.17pl2-8"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/dhcpcd-2.2.x"
---

# dhcpcd-2.2.x(8)

DHCP client daemon

## NAME

dhcpcd - DHCP client daemon

## SYNOPSIS

dhcpcd \[-dkrDHR\] \[-t timeout\] \[-c filename\] \[-h hostname\] \[-i vendorClassID\] \[-I clientID\] \[-l leasetime\] \[interface\]

## DESCRIPTION

**dhcpcd** is an implementation of the DHCP client specified in **RFC2131** (when -r option is not specified) and **RFC1541** (when -r option is specified).

It gets the host information (IP address, netmask, broadcast address, etc.) from a DHCP server and configures the network interface of the machine on which it is running. It also tries to renew the lease time according to **RFC2131** or **RFC1541** (obsolete).

## OPTIONS

- **-d**

  With this flag **dhcpcd** will syslog(LOG\_DEBUG,...) messages for about every step it does. It's recommended to use this option since it doesn't really produce too much output but will greatly help in resolving a problems if any.

- **-k**

  Sends a **SIGHUP** signal to the **dhcpcd** process that is currently running. If **dhcpcd** receives **SIGHUP** it will send **DCHP\_RELEASE** message to the server and destroy dhcpcd cache. In a case **dhcpcd** receives **SIGTERM** which is normally used by **[shutdown(8)](/shutdown/8.md)** when rebooting the system **dhcpcd** will not send **DHCP\_RELEASE** and will not destroy cache. When system boots **dhcpcd** will use cache to request the same IP address from DHCP server which was assigned before the system went down.

- **-r**

  Makes dhcpcd RFC1541 (obsolete) compliant. **dhcpcd** is RFC2131 compliant unless this option is specified.

- **-D**

  Forces **dhcpcd** to set domainname of the host to the domainname option supplied by DHCP server. By default **dhcpcd** will NOT set domainname of the host to the domainname option received from DHCP server.

- **-H**

  Forces **dhcpcd** to set hostname of the host to the hostname option supplied by DHCP server. By default **dhcpcd** will NOT set hostname of the host to the hostname option received from DHCP server.

- **-R**

  Prevents **dhcpcd** from replacing existing */etc/resolv.conf* file.

- **-t** *timeout*

  Specifies (in seconds ) for how long **dhcpcd** will try to get an IP address. The default is 60 seconds. **dhcpcd** will not fork into background until it gets a valid IP address in which case dhcpcd will return 0 to the parent process. In a case **dhcpcd** times out before receiving a valid IP address from DHCP server **dhcpcd** will return exit code 1 to the parent process.

- **-c** *filename*

  Deprecated option provided for compatibility with **dhcpcd** v.0.70. **dhcpcd** will try to execute  *filename* after it configures the interface.

- **-h** *hostname*

  specifies a string used for the hostname option field when **dhcpcd** sends DHCP messages. Some DHCP servers require the hostname option field containing a specific string in the DHCP messages from clients.

- **-i** *vendorClassID*

  Specifies the vendor class identifier string. **dhcpcd** uses the default vendor class identifier string (system name, sytem release, and machine type) if it is not specified.

- **-I** *clientID*

  Specifies the client identifier string. **dhcpcd** uses the default client identifier (Ethernet Address of the network interface) if it is not specified.

- **-l** *leasetime*

  Specifies (in seconds) the recommended lease time to the server. (Note that the server can override this value if it sees fit). This value is used in the **DHCP\_DISCOVER** message. The default is 86400 seconds (24 hours).

- **interface**

  Specifies the network interface name (eth0, eth1, etc.). **dhcpcd** uses the network interface *eth0* unless an explicit name is specified.

## FILES

- **/etc/dhcpc**

  directory used for storing files created by **dhcpcd**

- **/etc/dhcpc/dhcpcd-\<interface\>.info**

  file in which **dhcpcd** saves the host information. The word *interface* is actually replaced with the network interface name like *eth0* to which dhcpcd is attached.

- **/etc/dhcpc/dhcpcd-\<interface\>.exe**

  file which **dhcpcd** will try to execute whenever it detects a change in IP address.

- **/etc/resolv.conf**

  file created by **dhcpcd** when the client receives DNS and domain name options. The old **/etc/resolv.conf** file will be renamed to **/etc/resolv.conf.sv** and will be restored back when **dhcpcd** exits for any reason.

- **/var/run/dhcpcd-\<interface\>.pid**

  file containing the process id of **dhcpcd.** The word *interface* is actually replaced with the network interface name like *eth0* to which **dhcpcd** is attached.

- **/etc/dhcpc/dhcpcd-\<interface\>.cache**

  Cache file containing the previously assigned IP address and some other things. The word *interface* is actually replaced with the network interface name like *eth0* to which **dhcpcd** is attached.

## SEE ALSO

*Dynamic Host Configuration Protocol,* RFC2131 and RFC1541 (obsolete) *DHCP Options and BOOTP Vendor Extensions,* RFC1533

## BUGS

**dhcpcd** uses **[time(3)](/time/3.md)** to calculate the lease expiration time.  If the system time is changed while the client is running, the lease expiration time may not be predictable.

**dhcpcd** does not support the **DHCP\_INFORM** message.

**dhcpcd** cannot handle DHCP options (e.g. domain name) which have more than 255 characters. All the DHCP options have to be less than or equal to 255.

## AUTHORS

v.\<1.3

Yoichi Hariguchi \<yoichi@fore.com\>

v.1.3

Sergei Viznyuk \<sv@phystech.com\>
