Networking

Revision as of 02:09, 27 May 2019 by imported>Dalto (Added section on dhcpcd)


Overview

Networking on Manjaro generally works out of the box without and special user intervention. This article presents some specialized circumstances which some users may encounter and provides advice on how to overcome them.


Manually Setting DNS Servers

Usually, your DNS servers will be provided by your ISP automatically through DHCP. However, sometimes it nesecary to use different DNS servers than the ones provided by your ISP. In this situation you may find that your DNS or other non-standard nameserver addresses will get reset on reboot as /etc/resolv.conf can be overwritten by NetworkManager or during the boot process. Here we will look at some techniques to preserve your settings.


NetworkManager

If you are using NetworkManager, this is one solution to the problem. The NetworkManager's config drop folder is placed in /etc/NetworkManager/confg.d. In this folder you can place snippets which controls how NetworkManager works. The files should be named with a number and a description of its purpose and always end with .conf. The files are then applied in numerical order from the lowest to the highest. A configuration in a file with a higher number will override what could have been configured in a lower numbered file.

Use resolvconf

To have the resolvconf script handle the resolv.conf file for NetworkManager. Create a configuration file in NetworkManager's config drop folder

/etc/NetworkManager/conf.d/20-rc-manager.conf

Save the file with this content

[main]
rc-manager=resolvconf

To effectively make DNS handling a manual task create a file named

/etc/NetworkManager/conf.d/99-dont-touch-my-dns.conf

Save the file with this content

[main]
dns=none


/etc/resolvconf.conf

The resolvconf.conf file is a shell script that is sourced by resolvconf, meaning that resolvconf.conf must contain valid shell commands. Take a look at its man page for more details and commands. The file is located at /etc/resolvconf.conf and will require root privelege to edit. For more information on how to edit a configuration file owned by root, please review this article.


As an example, we will prepend OpenDNS nameservers to the top of our resolvconf file whenever called. We can achieve this by adding the following lines to the bottom of resolvconf.conf.

# OpenDNS servers
name_servers="208.67.222.222 208.67.220.220"


After making any changes simply update and apply your settings with the following command

sudo resolvconf -u


dhcpcd and resolv.conf.head/tail

Note
Most Manjaro installs will not be using dhcpd by default


An alternative solution if you are using dhcpd is to input our settings to the /etc/resolv.conf.head file. If this file does not exist then create it. The contents of /etc/resolv.conf.head get sent to the top of /etc/resolv.conf during the boot process.


Following our previous example, if we want to use the OpenDNS servers with this method, we could place the following in the file:

# OpenDNS servers
nameserver 208.67.222.222
nameserver 208.67.220.220


Using dhcpcd Instead of NetworkManager

NetworkManager is the default solution for networking on most Mnajaro editions. If you would prefer to use dhcpcd, that is also supported.


First, ensure NetworkManager is disabled and not running

sudo systemctl disable --now NetworkManager.service


Next, start and enable the dhcpcd service

sudo systemctl start --now dhcpcd.service


See Also