Posted on

Setting Up Private Nameservers in WHM/cPanel

Setting up your own private nameservers on a cPanel server has many benefits, most importantly enabling all of cPanel’s built in DNS tools which can make DNS changes much easier.

This guide will show you how to set up and register new private nameservers on a cPanel server using the WHM (Web Host Manager) interface.

Most users will want to use a domain name they already own, often the same domain name that is being used for the hostname of the server that will be running the private nameservers.

For this example, we will use a fake domain called example.com. Our server is called host.example.com and we will be setting up ns1.example.com and ns2.example.com.

There are three parts to setting your private nameservers: Configuring the server to accept and process the DNS requests, registering your your new nameservers at the registrar who controls the domain name, and finally pointing domains at those new nameservers.

Step 1: Configuring the Server

Log in to your server’s WHM interface and find the navigation section on the left called Basic cPanel & WHM Setup, under Server Configuration. This is the first item on the left navigation bar.

At the bottom, you will find the Nameservers section.

WHM Nameserver Setup

When you load this screen for the first time you may see that two nameservers, using the same domain name as the server’s hostname, are already in place. If this is the case skip to Step 2: Registering Your Private Nameservers.

If there are no nameservers listed here then we will need to create them. Type the name of the nameserver you wish to set up in the text box (1) and click the Assign IP Address button (2).

You will be returned to the same screen now showing your new nameserver and the IP it has been assigned. You need to have at least two nameserver names configured, so repeat this step to create your second nameserver.

When you are finished assigning IP addresses, make sure to click Save Changes (3).

Optional: Editing Nameserver IPs via SSH

cPanel stores the nameserver IP assignments in a file located at:

/var/cpanel/nameserverips.yaml

If you log in to your server using SSH it is possible to edit this file by hand and have cPanel use your new settings.

root@host [/]# cat /var/cpanel/nameserverips.yaml
---
ns1.example.com:
  72.52.129.244: 1
  count: '4'
  zones: example.com,domain.com,ns1.example.com,ns2.example.com
ns2.example.com
  72.52.129.245: 1
  count: '4'
  zones: example.com,domain.com,ns1.example.com,ns2.example.com

In the above example we are using the command cat to display the contents of the file. Changes can be made to this file using your favorite shell text editor such as vim, nano, or whatever you are comfortable using. Before editing the nameserverips.yaml file, you will need to delete the following cache file:

root@host [/]# rm /var/cpanel/nameserverips.cache

cPanel will rebuild that file after you have made your changes.

As always, I recommends you make a backup of any files you change by hand using SSH before you modify them!

A simple backup command:

root@host [/]# cp /var/cpanel/nameserverips.yaml /var/cpanel/nameserverips.yaml.bak

Now you can modify the file as much as you want, and if anything really bad happens you can simply delete the file and rename your .bak copy to the original file name.

IMPORTANTIf you change your existing nameserver IP assignments you will need to update the assignments at the registrar!

Step 2: Registering Your Private Nameservers

The vast majority of registrars do not charge their customers any extra fee for registering nameservers as long as the main domain name itself has already been purchased.

If you registered the domain yourself:

If you are setting up nameservers for a domain name that you own, which you also purchased yourself at a domain registrar, you will need to login to your account at that same registrar and use their tool to register the new names.

For example, if you are setting up ns1.testdomain.com and ns2.testdomain.com, and you purchased testdomain.com from GoDaddy, you would need to login to your GoDaddy account in order to register the new nameservers.

Once you have found the tool/page you need at your registrar’s web site the registration itself is very straightforward. Most registrars use a simple form where you enter in the name of the nameserver you wish to create and the corresponding IP address (that we obtained from the steps described above).

 

Step 3: Pointing Your Domain(s) at Your New Nameservers

The final step in creating your own nameservers is to start using them by correctly pointing your domain(s). Log in to your registrar and edit the assigned nameservers so that it now points at your new nameserver names.

Please note that if you change a domain’s nameservers the domain will temporarily stop working while the new settings propagate throughout the entire internet. If downtime is a critical issue for your domain we recommend you make this during a weekend or late at night when traffic is likely to be low.

Now that your domain is pointing at your server’s nameservers you can use the DNS tools in the WHM and cPanel interfaces to modify your zone files!