bind9的初步使用(1)

本文首發於我的博客:bind9的初步使用(1)

前言

週五把自己的電腦重裝了一下,還是使用的經典的windows+vmware+ubuntu的經典方式(對我來說)。但是我不想每次都修改host文件來實現我的域名訪問,所以我在想有沒有一個更好的方式,可以讓我實現域名映射。這個時候我想到了自己架設一個dns服務器。說幹就幹,我就準備用dns的開源系統bind9來搞一番。

環境介紹

  • Ubuntu: 18.10 (ip: 192.168.1.230)
  • bind9: 9.11.4
  • Windows 10 (ip: 192.168.1.230)

安裝

其實安裝非常簡單,一條命令就搞定了

sudo apt install bind9

管理命令

啓動:

sudo systemctl start bind9

停止:

sudo systemctl stop bind9

重啓:

sudo systemctl restart bind9

狀態:

sudo systemctl status bind9

配置域名

舉個例子,比如現在我們有個域名是:baoguoxiao.pro。現在我們要對這個域名進行虛擬映射。

首先打開/etc/bind/named.conf.local,追加如下內容到文件尾部:

zone "baoguoxiao.pro" {
    type master;
    file "/etc/bind/zones/baoguoxiao.pro.db";
};

那麼現在這個文件的內容完整如下:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "baoguoxiao.pro" {
    type master;
    file "/etc/bind/zones/baoguoxiao.pro.db"; // 這個文件定義了文件地址
};

我們定義的地址是/etc/bind/zones/baoguoxiao.pro.db。但是我們的/etc/bind/並沒有該目錄。所以需要如下命令進行創建:

cd /etc/bind/
sudo mkdir zones

進入該目錄:

cd zones

然後創建該文件baoguoxiao.pro.db,並追加如下命令:

; BIND data file for baoguoxiao.pro
;
$TTL 14400
@ IN SOA ns1.baoguoxiao.pro. host.baoguoxiao.pro. (
201006601 ; Serial
7200 ; Refresh
120 ; Retry
2419200 ; Expire
604800) ; Default TTL
;
baoguoxiao.pro. IN NS ns1.baoguoxiao.pro.
 
;baoguoxiao.pro. IN A 192.168.1.231
 
ns1 IN A 192.168.1.231
www IN A 192.168.1.231

這樣就設置完成了。然後我們將bind9進行重啓。

測試DNS效果

$ dig @192.168.1.231 www.baoguoxiao.pro

; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> @192.168.1.231 www.baoguoxiao.pro
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35630
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f077ba72f04b75a1ac9b27275c16148f4732abac11c21ce8 (good)
;; QUESTION SECTION:
;www.baoguoxiao.pro.            IN    A

;; ANSWER SECTION:
www.baoguoxiao.pro.        14400    IN    A    192.168.1.231

;; AUTHORITY SECTION:
baoguoxiao.pro.            14400    IN    NS    ns1.baoguoxiao.pro.

;; ADDITIONAL SECTION:
ns1.baoguoxiao.pro.        14400    IN    A    192.168.1.231

;; Query time: 0 msec
;; SERVER: 192.168.1.231#53(192.168.1.231)
;; WHEN: Sun Dec 16 17:02:07 CST 2018
;; MSG SIZE  rcvd: 117

好了,這樣就表示已經配置成功了

設置默認本機DNS可用

之前的設置我們需要指定本機的DNS服務器纔可以使用,如果我們不指定的話,那麼查詢該域名是沒有效果的:

$ dig baoguoxiao.pro

; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> baoguoxiao.pro
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 52385
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;baoguoxiao.pro.            IN    A

;; Query time: 274 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Dec 16 17:03:59 CST 2018
;; MSG SIZE  rcvd: 43

這樣的話,需要我們把該dns服務器ip放到我們本地的dns配置文件中。

首先我們打開文件/etc/resolv.conf,添加如下代碼:

nameserver 192.168.1.231

完整內容如下:

$ cat /etc/resolv.conf 
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 192.168.1.231
nameserver 127.0.0.53

這樣我們在本機就可以不指定dns服務器的基礎上進行獲取域名的ip了。

$ dig www.bgx.me

; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> www.baoguoxiao.pro
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58219
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 15d0881d8eed3292569558cd5c1623fa33a2d05212e7e662 (good)
;; QUESTION SECTION:
;www.baoguoxiao.pro.            IN    A

;; ANSWER SECTION:
www.baoguoxiao.pro.        14400    IN    A    192.168.1.231

;; AUTHORITY SECTION:
baoguoxiao.pro.            14400    IN    NS    ns1.baoguoxiao.pro.

;; ADDITIONAL SECTION:
ns1.baoguoxiao.pro.        14400    IN    A    192.168.1.231

;; Query time: 0 msec
;; SERVER: 192.168.1.231#53(192.168.1.231)
;; WHEN: Sun Dec 16 18:07:54 CST 2018
;; MSG SIZE  rcvd: 117

本篇文章就說到這裏。下一篇講如何配置可局域網訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章