Software & AppsOperating SystemLinux

How To Replace systemd-resolved and Configure DNS on Ubuntu 18?

Ubuntu 3

In this article, we will guide you through the process of replacing systemd-resolved and configuring DNS on Ubuntu 18. Systemd-resolved is a service that provides network name resolution to applications. However, there may be situations where you need to disable it and configure your own DNS settings. Let’s dive in.

Quick Answer

To replace systemd-resolved and configure DNS on Ubuntu 18, you need to disable systemd-resolved using the systemctl command, remove and symlink the resolv.conf file, and configure your DNS servers by editing the resolv.conf file. Restart the networking service to apply the changes.

Disabling systemd-resolved

The first step in this process is to disable systemd-resolved. This service is responsible for DNS resolution in Ubuntu, and we need to disable it before we can configure our own DNS settings.

To disable systemd-resolved, you will need to use the systemctl command. This command is used to control the systemd system and service manager, which is responsible for controlling how services are started and run on your Ubuntu system.

Open a terminal and run the following command:

sudo systemctl disable systemd-resolved.service

This command disables the systemd-resolved service, preventing it from starting automatically on boot.

Removing and Symlinking resolv.conf

Next, you will need to remove the existing resolv.conf file and create a symbolic link to the stub-resolv.conf file provided by systemd-resolved. The resolv.conf file is used by the resolver library to determine the DNS servers that the system will use.

To do this, run the following commands in the terminal:

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

The rm command removes the existing resolv.conf file, and the ln -s command creates a symbolic link to the stub-resolv.conf file.

Configuring DNS Servers

Now that you have disabled systemd-resolved and set up the resolv.conf file correctly, you can configure your DNS servers. To do this, you will need to edit the /etc/resolv.conf file and add the IP address of your local DNS server.

Open the resolv.conf file in a text editor of your choice, such as nano or vim:

sudo nano /etc/resolv.conf

In this file, add the following line, replacing 192.168.1.2 with the IP address of your local DNS server:

nameserver 192.168.1.2

You can also add additional DNS servers if needed, each on a new line starting with nameserver.

Restarting Networking Services

After configuring your DNS servers, you will need to restart the networking service to apply the changes. To do this, run the following command in the terminal:

sudo systemctl restart networking.service

This command restarts the networking service, applying the changes you made to the resolv.conf file.

Conclusion

By following these steps, you should have successfully disabled systemd-resolved and configured your own DNS servers on Ubuntu 18. Please note that this solution may not work well with VPN connections that provide their own DNS servers for a specific domain.

If you encounter any issues or need further assistance, you can refer to the Ask Ubuntu answer and Ask Ubuntu question for additional details and troubleshooting tips.

Remember, disabling systemd-resolved and manually configuring DNS settings can have implications on system functionality and updates. Always proceed with caution and ensure you have a backup or a clear understanding of the changes you are making.

What is systemd-resolved?

Systemd-resolved is a service in Ubuntu that provides network name resolution to applications. It is responsible for DNS resolution on the system.

Why would I need to disable systemd-resolved?

There may be situations where you need to disable systemd-resolved and configure your own DNS settings. This could be necessary if you want to use a different DNS server or if you are experiencing issues with systemd-resolved.

How do I disable systemd-resolved?

To disable systemd-resolved, you can use the systemctl command. Open a terminal and run the command sudo systemctl disable systemd-resolved.service. This will prevent systemd-resolved from starting automatically on boot.

What is the purpose of removing and symlinking resolv.conf?

Removing the existing resolv.conf file and creating a symbolic link to the stub-resolv.conf file provided by systemd-resolved is necessary to correctly configure DNS settings. This ensures that the resolver library uses the correct DNS servers.

How do I configure my DNS servers?

After disabling systemd-resolved and setting up the resolv.conf file correctly, you can configure your DNS servers by editing the /etc/resolv.conf file. Open the file in a text editor and add the IP address of your local DNS server using the nameserver keyword. You can add additional DNS servers if needed.

How do I restart networking services after configuring DNS servers?

To apply the changes made to the resolv.conf file, you will need to restart the networking service. Use the command sudo systemctl restart networking.service to restart the networking service and apply the changes.

Are there any limitations to this solution?

Please note that this solution may not work well with VPN connections that provide their own DNS servers for a specific domain. It is important to be aware of this limitation and consider it when configuring DNS settings.

Where can I find more information or troubleshooting tips?

If you encounter any issues or need further assistance, you can refer to the Ask Ubuntu answer and Ask Ubuntu question for additional details and troubleshooting tips.

Leave a Comment

Your email address will not be published. Required fields are marked *