问题

公司会有一些内部的网站,而这些网站只能在内部局域网中访问使用(链接同一个路由器的PC端),当访问这些网站时需要在浏览器中手动输入服务器ip地址访问,但是无法通过域名访问(比如:jd.com 就是一个常见域名),这时可以通过搭建公司内部的dns服务器解决。

在这里插入图片描述

想要通过 http://hbtest.xingfafa.com 就可以访问到位于后端 192.168.2.100 主机上自己搭建的OWT服务器。
本文中要搭建的DNS服务器与OWT服务器位于同一台server上 IP都是192.168.2.100,当然也可以不在同一台上。

下载bind9

执行如下命令

apt-get install bind9
root@ubuntu18-Master:~# apt-get install bind9
Reading package lists... Done
Building dependency tree       
Reading state information... Done
bind9 is already the newest version (1:9.11.3+dfsg-1ubuntu1.17).
The following packages were automatically installed and are no longer required:
  libsodium23 linux-headers-4.15.0-173 linux-headers-4.15.0-173-generic
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 23 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y

然后编辑bind9主配置文件

找到/etc/bind/name.conf.default-zones 文件
并在末尾添加

zone "hbtest.xingfafa.com" {
        type master;
        file "/etc/bind/db.ip2hbtest.xingfafa.com";
};

zone "100.2.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.hbtest.xingfafa.com2ip";
};

解析:
其中192.168.2.100是myowt服务器的ip的反写,若你的服务器ip是abc.def.ghi.jkl 那么则在这写成 jkl.ghi.def.abc 。

然后在/etc/bind 中创建 db.ip2hbtest.xingfafa.com 文件 和 db.hbtest.xingfafa.com2ip 文件,注意这两个文件名要和 name.conf.default-zones 中配置的File相同

然后在 db.ip2hbtest.xingfafa.com 文件中填写如下内容,注意 :需要把下面的hbtest.xingfafa.com换成你的域名,不要漏掉了域名后面的小数点,192.168.0.100是myowt服务器的ip,需要替换成你自己的。

; 
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA    ns.hbtest.xingfafa.com. root.hbtest.xingfafa.com. (
                              2               ; Serial
                         604800               ; Refresh
                          86400               ; Retry
                        2419200               ; Expire
                         604800 )             ; Negative Cache TTL
;
@       IN      NS     ns.hbtest.xingfafa.com.
@       IN      A      192.168.2.100
ns      IN      A      192.168.2.100
cn      IN      A      192.168.2.100

然后在db.hbtest.xingfafa.com2ip文件中填写如下内容,同样要替换hbtest.xingfafa.com为你的域名。100是myowt服务器的ip的最后一段,需要替换成你自己的。

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.hbtest.xingfafa.com. root.hbtest.xingfafa.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      hbtest.xingfafa.com.
147     IN      PTR     cn.hbtest.xingfafa.com.
147     IN      PTR     hbtest.xingfafa.com.
147     IN      PTR     www.hbtest.xingfafa.com.
147     IN      PTR     dns.hbtest.xingfafa.com.
147     IN      PTR     cn.hbtest.xingfafa.com.

然后修改 /etc/bind/named.conf.options 文件为如下内容

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

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         forwarders {
                 0.0.0.0;
         };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

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

其实只需要修改

         forwarders {
                202.96.199.133;
                218.30.118.6;
         };

这很关键,网上很多人说修改成8.8.8.88.8.4.4 0.0.0.0,当修改成这三个后你会发现访问外网特别慢,比如在公司内网访问 baidu.com,就非常慢,访问任何一个外网都很慢,原因是本地没有配置外网域名对应的IP,bind9会去寻8.8.8.8或8.8.4.4 或0.0.0.0 这几个大众dns服务器去查询IP
而本文中修改成了 202.96.199.133218.30.118.6是因为自己搭建的dns服务器位于北京,用的电信的网,所以设置这样。
具体设置成多少,取决你的所在地区网络运营商提供上决定(你可以先百度一下IP就可以知道用的是电信还是联通还是移动的网,然后在百度一下你所在城市对应网络运营商的dns服务器IP即可)
国内哪个DNS服务器最快最好?
其他可参考:
https://wenku.baidu.com/view/ebfd6468757f5acfa1c7aa00b52acfc788eb9f43.html

修改/etc/bind时个别主机可能没有权限,可以切换到bind目录,执行chmod -R a=rwx,g=rx,o=rx bind/ 为当前目录及文件以及子目录中文件赋予读写执行权限。

重启启动生效

然后执行service bind9 restart重启bind9 * dns服务器,
在这里插入图片描述

可以通过 nslookup 你的域名 查看是否配置成功

root@ubuntu18-Saury:/etc/bind# nslookup hbtest.xingfafa.com
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	hbtest.xingfafa.com
Address: 111.63.101.149
Name:	hbtest.xingfafa.com
Address: 192.168.2.100

DNS记录类型

  • A记录:指定域名对应IP的记录。
  • PTR记录:指定IP对应域名的记录。
  • MX记录:邮件交换记录,也叫邮件路由记录,指向邮件服务器的IP。
  • CNAME记录:别名记录,用于指向另一个域名。
  • NS记录:域名服务器记录,指定该域名由哪个DNS服务器来解析。
  • SOA记录:起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器。

于是后自己分别试了下 hbtest.xingfafa.com 和 weibo.com ,很快就返回了数据,若回应很慢 说明forwarders 中配置外网dns服务器有问题。

修改路由器

在这里插入图片描述

接下来还需要修改路由配置,把上面dns服务器ip换成自己搭建的dns服务器的ip即可。

登录路由器,找局域网设置==>DHCP自动分配==>下游的DNS设置选项,我的路由器是Tp-link,把dns服务器IP换成自己搭建的dns服务器的ip就可了,我的是192.168.2.100 保存并生效,重启即可。
在这里插入图片描述
一会过后其他电脑会断开网络然后重新链接wifi,这时在网络链接属性中就可以看到ipv4 dns服务器ip变成了自己搭建的dns服务器的ip了,而备选的dns服务器一般是路由器的ip。

然后其他电脑只要在公司内网并且直接通过浏览器 hbtest.xingfafa.com 就可以访问了,但只能在公司内网通过域名进行访问,在外网中无法直接通过 hbtest.xingfafa.com进行访问!

在这里插入图片描述
在这里插入图片描述

There is no fate but what we make for ourselves. 一切尚未定局,未来由我们自己创造
本篇完_

Logo

更多推荐