Table of Contents
Was this article helpful?

1  out of  1 found this helpful

Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

Setup Your Own DNS Server on Debian/Ubuntu

Last Updated: Wed, Oct 8, 2014
Debian Linux Guides Networking Ubuntu

This tutorial explains how to setup a DNS server using Bind9 on Debian or Ubuntu. Throughout the article, substitute accordingly. At the end of the tutorial, you will have a functional Ubuntu DNS server.

Install Bind9

apt-get install bind9


Backup current Bind9 settings.

cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bak

Edit /etc/bind/named.conf.options and replace the content to following:

options {

        directory "/var/cache/bind";

        auth-nxdomain no;

        listen-on-v6 { any; };

        statistics-file "/var/cache/bind/named.stats";

        rrset-order {order cyclic;};

    allow-transfer {; };


logging {

        channel b_query {

                file "/var/log/bind9/query.log" versions 2 size 1m;

                print-time yes;

                severity info;


        category queries { b_query; };


Create the log directory for Bind9.

mkdir /var/log/bind9

chown bind:bind /var/log/bind9

Edit /etc/bind/named.conf to configure your domain zone file location. Append the following lines:

zone "" {

        type master;

        file "/etc/bind/zones/";


Create your domain zone file at /etc/bind/zones/ Insert your DNS records by following this template:

$TTL    86400

@   IN  SOA (

            2014100801  ; Serial

            43200       ; Refresh

            3600        ; Retry

            1209600     ; Expire

            180 )       ; Minimum TTL

; Nameservers

    IN  NS

    IN  NS

    IN  NS

; Root site

    IN  A   123.456.78.90

; Hostname records

*   IN  A   123.456.78.90

sub1    IN  A   123.456.78.91

sub2    IN  A   123.456.78.92

; Aliases


webmail IN  CNAME

; MX records

@   IN  MX  1

@   IN  MX  3

@   IN  MX  3

@   IN  MX  5

@   IN  MX  5

@   IN  MX  5

@   IN  MX  5

; SPF records

@   IN  TXT "v=spf1 ip4: ~all"

Restart Bind9:

/etc/init.d/bind9 restart

You're all set. At this point, you may want to register your DNS server with your domain registrar. After doing that, you can change your existing name server to your own DNS server.

If you come across problems and need to view errors, you may use the following command.

/etc/init.d/bind9 status

Want to contribute?

You could earn up to $600 by adding new articles.