mirror of
https://github.com/rsmarples/dhcpcd.git
synced 2024-11-23 10:06:42 +08:00
97 lines
3.2 KiB
Markdown
97 lines
3.2 KiB
Markdown
# dhcpcd
|
|
|
|
dhcpcd is a
|
|
[DHCP](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) and a
|
|
[DHCPv6](https://en.wikipedia.org/wiki/DHCPv6) client.
|
|
It's also an IPv4LL (aka [ZeroConf](https://en.wikipedia.org/wiki/Zeroconf))
|
|
client.
|
|
In layperson's terms, dhcpcd runs on your machine and silently configures your
|
|
computer to work on the attached networks without trouble and mostly without
|
|
configuration.
|
|
|
|
If you're a desktop user then you may also be interested in
|
|
[Network Configurator (dhcpcd-ui)](http://roy.marples.name/projects/dhcpcd-ui)
|
|
which sits in the notification area and monitors the state of the network via
|
|
dhcpcd.
|
|
It also has a nice configuration dialog and the ability to enter a pass phrase
|
|
for wireless networks.
|
|
|
|
dhcpcd may not be the only daemon running that wants to configure DNS on the
|
|
host, so it uses [openresolv](http://roy.marples.name/projects/openresolv)
|
|
to ensure they can co-exist.
|
|
|
|
See [BUILDING.md](BUILDING.md) for how to build dhcpcd.
|
|
|
|
## Configuration
|
|
|
|
You should read the dhcpcd.conf man page
|
|
and put your options into `/etc/dhcpcd.conf`.
|
|
The default configuration file should work for most people just fine.
|
|
Here it is, in case you lose it.
|
|
|
|
```
|
|
# A sample configuration for dhcpcd.
|
|
# See dhcpcd.conf(5) for details.
|
|
|
|
# Allow users of this group to interact with dhcpcd via the control socket.
|
|
#controlgroup wheel
|
|
|
|
# Inform the DHCP server of our hostname for DDNS.
|
|
hostname
|
|
|
|
# Use the hardware address of the interface for the Client ID.
|
|
#clientid
|
|
# or
|
|
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
|
|
# Some non-RFC compliant DHCP servers do not reply with this set.
|
|
# In this case, comment out duid and enable clientid above.
|
|
duid
|
|
|
|
# Persist interface configuration when dhcpcd exits.
|
|
persistent
|
|
|
|
# Rapid commit support.
|
|
# Safe to enable by default because it requires the equivalent option set
|
|
# on the server to actually work.
|
|
option rapid_commit
|
|
|
|
# A list of options to request from the DHCP server.
|
|
option domain_name_servers, domain_name, domain_search, host_name
|
|
option classless_static_routes
|
|
# Respect the network MTU. This is applied to DHCP routes.
|
|
option interface_mtu
|
|
|
|
# Most distributions have NTP support.
|
|
#option ntp_servers
|
|
|
|
# A ServerID is required by RFC2131.
|
|
require dhcp_server_identifier
|
|
|
|
# Generate SLAAC address using the Hardware Address of the interface
|
|
#slaac hwaddr
|
|
# OR generate Stable Private IPv6 Addresses based from the DUID
|
|
slaac private
|
|
```
|
|
|
|
The dhcpcd man page has a lot of the same options and more,
|
|
which only apply to calling dhcpcd from the command line.
|
|
|
|
|
|
## Compatibility
|
|
dhcpcd-5 is only fully command line compatible with dhcpcd-4.
|
|
For compatibility with older versions, use dhcpcd-4.
|
|
|
|
## Upgrading
|
|
dhcpcd-7 defaults the database directory to `/var/db/dhcpcd` instead of
|
|
`/var/db` and now stores dhcpcd.duid and dhcpcd.secret in there instead of
|
|
in /etc.
|
|
|
|
dhcpcd-9 defaults the run directory to `/var/run/dhcpcd` instead of
|
|
`/var/run` and the prefix of dhcpcd has been removed from the files therein.
|
|
|
|
## ChangeLog
|
|
We no longer supply a ChangeLog.
|
|
However, you're more than welcome to read the
|
|
[commit log](https://github.com/NetworkConfiguration/dhcpcd/commits) and
|
|
[release announcements](https://github.com/NetworkConfiguration/dhcpcd/releases).
|