使用 Ubuntu Server 设置家庭 DNS

使用 Ubuntu Server 设置家庭 DNS

我有一个 Web 服务器(具有静态 IP 192.168.1.5),我希望我的本地网络上的计算机能够访问它而无需修改/etc/hosts(或 Windows/OSX 的等效方法)。我的路由器有

Primary DNS server 192.168.1.5
Secondary DNS server 8.8.8.8 (Google's public DNS).

Nginx 被设置为对外提供网站服务

*.example.com

从内心来说,我想要

*.example.local

指向服务器。

我的 Web 服务器已安装 BIND9,但我不确定设置。我看过各种相互矛盾的教程,因此我的大部分设置都被破坏了。我删除了让我感到困惑的行。

我看过的教程是http://tech.surveypoint.com/blog/installing-a-local-dns-server-behind-a-hardware-router/http://ubuntuforums.org/showthread.php?t=236093。它们主要在应该在/etc/bind/zones/db.example.local和 中输入什么方面存在差异/etc/bind/zones/db.192,因此我省略了下面有冲突的行。有人可以建议哪些行是正确的,才能实现上述行为(即*.example.local指向192.168.1.5)吗?

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.5
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.254

/etc/hostname

avalon

/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

/etc/bind/named.conf.options

options {
    directory "/var/cache/bind";

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

/etc/bind/named.conf.local

zone "example.local" {
    type master;
    file "/etc/bind/zones/db.example.local";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.192";
};

/etc/bind/zones/db.example.local

$TTL    604800
@   IN  SOA avalon.example.local.   webadmin.example.local. (
                  5     ; Serial, increment each edit
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL

/etc/bind/zones/db.192

$TTL    604800
@   IN  SOA avalon.example.local.   webadmin.example.local. (
                  4     ; Serial, increment each edit
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;

我需要向上述文件添加什么内容,以便在内部网络上的笔记本电脑上输入,webapp.example.local并由我的网络服务器提供服务?

编辑

我对网络服务器上的上述文件做了一些更改。

/etc/network/interfaces(文件结束)

    dns-nameservers 127.0.0.1
    dns-search example.local

/etc/bind/zones/db.example.local(文件结束)

@   IN  NS  avalon.example.local.
@   IN  A   192.168.1.5
avalon  IN  A   192.168.1.5
webapp  IN  A   192.168.1.5
www IN  CNAME   192.168.1.5

/etc/bind/zones/db.192(文件结束)

    IN  NS  avalon.example.local.
73  IN  PTR avalon.example.local.

附注一下,我的备用 Win7 机器能够直接连接到webapp.example.local,但对于 Ubuntu 13.10 机器,我还必须进行以下更改(不是在网络服务器上,而是在另一台机器上):

/etc/nsswitch.conf

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

hosts:          files dns

/etc/NetworkManager/NetworkManager.conf

dns=dnsmasq

#dns=dnsmasq

问题仍然是它不是通配符 DNS,因此我必须向/etc/bind/zones/db.example.localfor webapp1、、添加条目webapp2...

相关内容