DHCPCD [0] ________________________________________________________________________________ Dynamic Host Configuration Protocol Client Daemon is a popular DHCP client capable of handling both IPv4 and IPv6 configuration. Dynamic IP Configuration ________________________________________________________________________________ Begin by first verifying that you have dhcpcd installed: +------------------------------------------------------------------------------+ | | | $ kiss b dhcpcd && kiss i dhcpcd | | | +------------------------------------------------------------------------------+ Once installed, dhcpcd can be used to automatically configure a network device interface: +------------------------------------------------------------------------------+ | | | $ dhcpcd INTERFACE | | | +------------------------------------------------------------------------------+ Remember to replace INTERFACE in the command above with the name of the device that you wish to configure. A network device's interface status can be inspected via ip-link: +------------------------------------------------------------------------------+ | | | $ ip link show dev INTERFACE | | | +------------------------------------------------------------------------------+ ip-link can also be used to enable or disable an interface: +------------------------------------------------------------------------------+ | | | $ ip link set INTERFACE down # disable the interface | | $ ip link set INTERFACE up # enable the interface | | | +------------------------------------------------------------------------------+ Static IP Configuration ________________________________________________________________________________ Continuing from the previous section, we can use ip-address to display the current DHCP address information: +------------------------------------------------------------------------------+ | | | $ ip address show | | | +------------------------------------------------------------------------------+ Using the output of the previous command, add the following lines to the /etc/dhcpcd.conf file using your preferred text editor: +------------------------------------------------------------------------------+ | | | interface INTERFACE | | static ip_address=STATIC_IP | | static routers=GATEWAY | | static domain_name_servers=DNS_SERVER | | | +------------------------------------------------------------------------------+ Remember to replace the INTERFACE, STATIC_IP, GATEWAY and DNS_SERVER in the block above with your own parameters. Hostname ________________________________________________________________________________ A system's hostname can be set by simply creating a /etc/hostname file: +------------------------------------------------------------------------------+ | | | $ echo "HOSTNAME" > /etc/hostname | | | +------------------------------------------------------------------------------+ Remember to replace HOSTNAME with the string of your choosing. Note: Valid characters for hostnames include ASCII letters from A to Z, digits from 0 to 9, and the hyphen character (-). A hostname may not start with a hyphen. Managed via runsv ________________________________________________________________________________ Busybox's runsv can be used to create a new managed service with the following command: +------------------------------------------------------------------------------+ | | | $ ln -s /etc/sv/dhcpcd/ /var/service | | | +------------------------------------------------------------------------------+ To start the new managed service, use the following command: +------------------------------------------------------------------------------+ | | | $ sv up dhcpcd | | | +------------------------------------------------------------------------------+ Tips and Tricks ________________________________________________________________________________ * A list of possible INTERFACE names can be obtained by running the following: +----------------------------------------------------------------------------+ | | | $ ls /sys/class/net | | | +----------------------------------------------------------------------------+ * The ping command can be used to verify connectivity with a network device interface: +----------------------------------------------------------------------------+ | | | $ ping www.google.com | | | +----------------------------------------------------------------------------+ * Some network administrators require that the hostname and domain name provided by the DHCP server is used by the system. In that case, pass the "-HD" switch: +----------------------------------------------------------------------------+ | | | $ dhcpcd -HD INTERFACE | | | +----------------------------------------------------------------------------+ * If you are not sure what to put in the STATIC_IP, GATEWAY and DNS_SERVER, you can use the following example for reference: +----------------------------------------------------------------------------+ | | | interface eth0 | | static ip_address=192.168.0.4/24 | | static routers=192.168.0.1 | | static domain_name_servers=192.168.0.1 | | | +----------------------------------------------------------------------------+ Notice the "/24" suffix, which is an abbreviation for the subnet mask 255.255.255.0. Also, GATEWAY and DNS_SERVER are the same in this example. References ________________________________________________________________________________ [0] https://github.com/rsmarples/dhcpcd [1] https://wiki.archlinux.org/index.php/Network_configuration [2] https://wiki.gentoo.org/wiki/Dhcpcd