【Linux的开胃小菜】基于Ubuntu搭建内网DNS服务器
问题公司会有一些内部的网站,而这些网站只能在公司的局域网中访问使用(链接同一个路由器PC端),当访问这些网站时需要在浏览器中手动输入服务器ip地址进行访问,但是无法通过域名访问(比如域名:jd.com 就是一个域名),这时我们可以通过搭建公司内部的dns服务器解决。现在想通过访问 http://hbtest.xingfafa.com 就可以访问到位于 192.168.2.100 主机上的自己搭建的
问题
公司会有一些内部的网站,而这些网站只能在内部局域网中访问使用(链接同一个路由器的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.8
或8.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.133
和218.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. 一切尚未定局,未来由我们自己创造
本篇完_
更多推荐
所有评论(0)