1. linux怎麼安裝及配置bind9.9.9p1-39.1
一,安裝BIND
1.下載BIND http://www.isc.org 也可以去本站下載 bind9 dns軟體。
2.編譯安裝
.代碼如下:
# tar zxvf bind-9.4.0.tar.gz
# cd bind-9.4.0
# ./configure sysconfdir=/etc //更多安裝選項 ./configure --help
# make
# make install
二,配置BIND
A.創建需要文件
1)./etc/named.conf
# vi /etc/named.conf 推出保存即可 或 touch /etc/named.conf
2)./etc/rndc.conf
# rndc-confgen > /etc/rndc.conf
B.創建目錄 /var/named
# mkdir /var/named
B.編輯/etc/named.conf 內容如下
.代碼如下:
options {
directory "/var/named"; //表示默認的資料庫文件在/var/named中 若沒有需手動創建
// pid-file "/var/run/named/named.pid"; //運行的PID文件路徑,用於使用其他用戶啟動named
};
zone "." { //創建root域
type hint;
file "named.ca";
};
zone "localhost" { //創建 localhost域
type master;
file "named.local";
};
zone "example.com" { //創建 example.com域
type master;
file "example.com.zone";
};
zone "0.0.127.in-addr.arpa"{ //localhost的反解析
type master;
file "127.0.0.zone";
};
zone "100.168.192.in-addr.arpa" { //example.com的反向解析
type master;
file "192.168.100.zone";
};
//這段文件在/etc/rndc.conf 的尾部需拷貝才能使用 # tail +13 /etc/rndc.conf >>/etc/named.conf
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "HWM3L+e7LWDZJJ/dJEzQEw==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
D.在/var/named 中創建相應的數據文件 文件名由named.conf 中的file 參數制定
由named.conf可知有 named.ca, named.local, example.com.zone, 127.0.0.zone , 192.168.100.zone
1. named.ca
# dig -t NS . >/var/named/named.ca
2. named.local #vi /var/named/named.local 加入以下內容
.代碼如下:
$TTL 1D
@ IN SOA localhost. root (
2007042801
1H
15M
1W
1D )
IN NS @
IN A 127.0.0.1
3. example.com.zone
.代碼如下:
$TTL 1D
@ IN SOA example.com. root (
2007042801
1H
15M
1W
1D )
IN NS ns.example.com.
IN MX 10 mail.example.com.
IN A 192.168.100.125
www IN A 192.168.100.125
db IN A 192.168.100.124
ns IN A 192.168.100.126
mail IN A 192.168.100.251
shop IN A 192.168.100.125
*.shop IN A 192.168.100.124
news IN CNAME www
3. 127.0.0.zone
$TTl 1D
@ IN SOA @ root.localhost. (
2007042801
1H
15M
1W
1D
)
IN NS localhost.
1 IN PTR localhost.
4. 192.168.100.zone
$TTL 1D
@ IN SOA @ root.example.com. (
2007042801
1H
15M
1W
1D )
IN NS example.com.
125 IN PTR example.com.
125 IN PTR www.example.com.
124 IN PTR db.example.com.
126 IN PTR ns.example.com.
251 IN PTR mail.example.com.
補充說明
a. named伺服器的啟動問題
1. 啟動 #named //以root用戶啟動
#named -u named //以named用戶啟動,必須有這個用戶而且,named.pid的屬主是 named
2. 更改配置後如何重啟
# rndc reload
3.測試配置是否成功,可用 host, dig ,nslookup 判斷
2. dig這個命令到底怎嗎用
呃...linux系統咱不懂...
從別的地方V了下
dig是一個linux/unix下用於查看域名詳情的小工具,類似於 nslookup ,但比 nslookup 的功能更強大,顯示的信息更全面。而 windows 系統下只帶有 nslookup 這個命令,下面是在 windows 系統下安裝 dig 命令的方法。
首先下載 dig 包,下載地址是:http://members.shaw.ca/nicholas.fong/dig/dig-files.zip
將此壓縮包解壓至例如 c:\dig 目錄
檢查 %WINDOWS%\system32 下有沒有 msvcr70.dll ,如果有則刪除 c:\dig\msvcr70.dll 。
接下來編輯 c:\dig\resolv.conf 文件,需要將你所用的DNS伺服器在此文件中指定,格式跟linux下的 /etc/resolv.conf 相同,例如:
nameserver 61.144.56.101
nameserver 202.96.128.68
編輯保存後將此文件拷貝至 %WINDOWS%\system32\drivers\etc 目錄下
接下來你可以將 c:\dig 目錄加到系統環境變數 path 中。
安裝完畢,可以試試了,使用命令如下:
dig --help
dig -h
dig sina.com.cn 運行結果如下:
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 291
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 349 IN A 202.108.33.32
;; AUTHORITY SECTION:
sina.com.cn. 17227 IN NS ns1.sina.com.cn.
sina.com.cn. 17227 IN NS ns3.sina.com.cn.
sina.com.cn. 17227 IN NS ns2.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 82579 IN A 202.106.184.166
ns2.sina.com.cn. 82579 IN A 61.172.201.254
ns3.sina.com.cn. 82579 IN A 202.108.44.55
;; Query time: 40 msec
;; SERVER: 61.144.56.101#53(61.144.56.101)
;; WHEN: Sat Sep 29 14:20:12 2007
;; MSG SIZE rcvd: 147
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dig命令使用詳解2007-06-08 15:27
用途
DNS 查詢實用程序。
語法
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n ][-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]
描述
dig (域信息搜索器)命令是一個用於詢問 DNS 域名伺服器的靈活的工具。它執行 DNS 搜索,顯示從受請求的域名伺服器返回的答復。多數 DNS 管理 員利用 dig 作為 DNS 問題的故障診斷,因為它靈活性好、易用、輸出清晰。雖然通常情況下 dig 使用命令行參數,但它也可以按批處理模式從文 件讀取搜索請求。不同於早期版本,dig 的 BIND9 實現允許從命令行發出多個查詢。除非被告知請求特定域名伺服器,dig 將嘗試 /etc/resolv.conf 中列舉的所有伺服器。當未指定任何命令行參數或選項時,dig 將對「.」(根)執行 NS 查詢。
標志
-b address 設置所要詢問地址的源 IP 地址。這必須是主機網路介面上的某一合法的地址。
-c class 預設查詢類(IN for internet)由選項 -c 重設。class 可以是任何合法類,比如查詢 Hesiod 記錄的 HS 類或查詢 CHAOSNET 記錄的 CH 類。
-f filename 使 dig 在批處理模式下運行,通過從文件 filename 讀取一系列搜索請求加以處理。文件包含許多查詢;每行一個。文件中的每一項都應該以和使用命令行介面對 dig 的查詢相同的方法來組織。
-h 當使用選項 -h 時,顯示一個簡短的命令行參數和選項摘要。
-k filename 要簽署由 dig 發送的 DNS 查詢以及對它們使用事務簽名(TSIG)的響應,用選項 -k 指定 TSIG 密鑰文件。
-n 預設情況下,使用 IP6.ARPA 域和 RFC2874 定義的二進制標號搜索 IPv6 地址。為了使用更早的、使用 IP6.INT 域和 nibble 標簽的 RFC1886 方法,指定選項 -n(nibble)。
-p port# 如果需要查詢一個非標準的埠號,則使用選項 -p。port# 是 dig 將發送其查詢的埠號,而不是標準的 DNS 埠號 53。該選項可用於測試已在非標准埠號上配置成偵聽查詢的域名伺服器。
-t type 設置查詢類型為 type。可以是 BIND9 支持的任意有效查詢類型。預設查詢類型是 A,除非提供 -x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區域傳輸。當需要增量區域傳輸(IXFR)時,type 設置為 ixfr=N。增量區域傳輸將包含自從區域的 SOA 記錄中的序列號改為 N 之後對區域所做的更改。
-x addr 逆向查詢(將地址映射到名稱)可以通過 -x 選項加以簡化。 addr 是一個以小數點為界的 IPv4 地址或冒號為界的 IPv6 地址。當使用這個選項時,無需提供 name、class 和 type 參 數。dig 自動運行類似 11.12.13.10.in-addr.arpa 的域名查詢,並分別設置查詢類型和類為 PTR 和 IN。
-y name: key 您可以通過命令行上的 -y 選項指定 TSIG 密鑰;name 是 TSIG 密碼的名稱,key 是實際的密碼。密碼是 64 位加密字元 串,通常由 dnssec-keygen(8)生成。當在多用戶系統上使用選項 -y 時應該謹慎,因為密碼在 ps(1)的輸出或 shell 的歷史 文件中可能是可見的。當同時使用 dig 和 TSCG 認證時,被查詢的名稱伺服器需要知道密碼和解碼規則。在 BIND 中,通過提供正確的密碼和 named.conf 中的伺服器聲明實現。
參數
global-queryopt... 全局查詢選項
query 查詢選項
查詢選項
dig 提供查詢選項號,它影響搜索方式和結果顯示。一些在查詢請求報頭設置或復位標志位,一部分決定顯示哪些回復信息,其他的確定超時和重試戰略。每個查詢選項 被帶前綴(+)的關鍵字標識。一些關鍵字設置或復位一個選項。通常前綴是求反關鍵字含義的字元串 no。其他關鍵字分配各選項的值,比如超時時間間隔。它 們的格式形如 +keyword=value。查詢選項是:
+[no]tcp
查詢域名伺服器時使用 [不使用] TCP。預設行為是使用 UDP,除非是 AXFR 或 IXFR 請求,才使用 TCP 連接。
+[no]vc
查詢名稱伺服器時使用 [不使用] TCP。+[no]tcp 的備用語法提供了向下兼容。vc 代表虛電路。
+[no]ignore
忽略 UDP 響應的中斷,而不是用 TCP 重試。預設情況運行 TCP 重試。
+domain=somename
設定包含單個域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域偽指令指定,並且啟用搜索列表處理,好像給定了 +search 選項。
+[no]search
使用 [不使用] 搜索列表或 resolv.conf 中的域偽指令(如果有的話)定義的搜索列表。預設情況不使用搜索列表。
+[no]defname
不建議看作 +[no]search 的同義詞。
+[no]aaonly
該選項不做任何事。它用來提供對設置成未實現解析器標志的 dig 的舊版本的兼容性。
+[no]adflag
在查詢中設置 [不設置] AD(真實數據)位。目前 AD 位只在響應中有標准含義,而查詢中沒有,但是出於完整性考慮在查詢中這種性能可以設置。
+[no]cdflag
在查詢中設置 [不設置] CD(檢查禁用)位。它請求伺服器不運行響應信息的 DNSSEC 合法性。
+[no]recursive
切換查詢中的 RD(要求遞歸)位設置。在預設情況下設置該位,也就是說 dig 正常情形下發送遞歸查詢。當使用查詢選項 +nssearch 或 +trace 時,遞歸自動禁用。
+[no]nssearch
這個選項被設置時,dig 試圖尋找包含待搜名稱的網段的權威域名伺服器,並顯示網段中每台域名伺服器的 SOA 記錄。
+[no]trace
切換為待查詢名稱從根名稱伺服器開始的代理路徑跟蹤。預設情況不使用跟蹤。一旦啟用跟蹤,dig 使用迭代查詢解析待查詢名稱。它將按照從根伺服器的參照,顯示來自每台使用解析查詢的伺服器的應答。
+[no]cmd
設定在輸出中顯示指出 dig 版本及其所用的查詢選項的初始注釋。預設情況下顯示注釋。
+[no]short
提供簡要答復。預設值是以冗長格式顯示答復信息。
+[no]identify
當啟用 +short 選項時,顯示 [或不顯示] 提供應答的 IP 地址和埠號。如果請求簡短格式應答,預設情況不顯示提供應答的伺服器的源地址和埠號。
+[no]comments
切換輸出中的注釋行顯示。預設值是顯示注釋。
+[no]stats
該查詢選項設定顯示統計信息:查詢進行時,應答的大小等等。預設顯示查詢統計信息。
+[no]qr
顯示 [不顯示] 發送的查詢請求。預設不顯示。
+[no]question
當返回應答時,顯示 [不顯示] 查詢請求的問題部分。預設作為注釋顯示問題部分。
+[no]answer
顯示 [不顯示] 應答的回答部分。預設顯示。
+[no]authority
顯示 [不顯示] 應答的許可權部分。預設顯示。
+[no]additional
顯示 [不顯示] 應答的附加部分。預設顯示。
+[no]all
設置或清除所有顯示標志。
+time=T
為查詢設置超時時間為 T 秒。預設是 5 秒。如果將 T 設置為小於 1 的數,則以 1 秒作為查詢超時時間。
+tries=A
設置向伺服器發送 UDP 查詢請求的重試次數為 A,代替預設的 3 次。如果把 A 小於或等於 0,則採用 1 為重試次數。
+ndots=D
出 於完全考慮,設置必須出現在名稱 D 的點數。預設值是使用在 /etc/resolv.conf 中的 ndots 語句定義的,或者是 1,如果沒有 ndots 語句的話。帶更少點數的名稱被解釋為相對名稱,並通過搜索列表中的域或文件 /etc/resolv.conf 中的域偽指令進行搜索。
+bufsize=B
設置使用 EDNS0 的 UDP 消息緩沖區大小為 B 位元組。緩沖區的最大值和最小值分別為 65535 和 0。超出這個范圍的值自動舍入到最近的有效值。
+[no]multiline
以詳細的多行格式顯示類似 SOA 的記錄,並附帶可讀注釋。預設值是每單個行上顯示一條記錄,以便於計算機解析 dig 的輸出。
多條查詢
dig 的 BIND9 支持在命令行上指定多個查詢(支持 -f 批處理文件選項的附加功能)。每條查詢可以使用自己的標志位、選項和查詢選項。
在這種情況下,在上面描述的命令行語法中,每條查詢自變數代表一個個別查詢。每一條由任意標准選項和標志、待查詢名稱、可選查詢類型和類以及任何適用於該查詢的查詢選項。
也可以使用對所有查詢均有效的查詢選項全局集合。全局查詢選項必須位於命令行上第一個名稱、類、類型、選項、標志和查詢選項的元組之前。任何全局查詢選項(除了 +[no]cmd 選項)可以被下面的查詢特別選項重設。例如:
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
顯 示 dig 如何從命令行出發進行三個查詢:一個針對 www.isc.org的任意查詢、一個 127.0.0.1 的逆向查詢,以及一個 isc.org 的 NS 記錄查詢。應用了 +qr 的全局查詢選項,以便 dig 顯示進行每條查詢的初始查詢。最後那個查詢有一個本地查詢選項 +noqr,表示 dig 在搜索 isc.org 的 NS 記錄時不顯示初始查詢。
示例
一個典型的 dig 調用類似:
dig @server name type
其中:
server
待 查詢名稱伺服器的名稱或 IP 地址。可以是用點分隔的 IPv4 地址或用冒號分隔的 IPv6 地址。當由主機提供伺服器參數時,dig 在查詢域名 伺服器前先解析那個名稱。如果沒有伺服器參數可以提供,dig 參考 /etc/resolv.conf,然後查詢列舉在那裡的域名伺服器。顯示來自域名 伺服器的應答。
name
將要查詢的資源記錄的名稱。
type
顯示所需的查詢類型 - ANY、A、MX、SIG,以及任何有效查詢類型等。如果不提供任何類型參數,dig 將對紀錄 A 執行查詢。
下面是 dig 的一些比較常用的命令:
# dig 最基本的用法
dig @server sina.com.cn.
# 用 dig 查看 zone 數據傳輸
dig @server zx.xmgd.com. AXFR
# 用 dig 查看 zone 數據的增量傳輸
dig @server zx.xmgd.com. IXFR=N
# 用 dig 查看反向解析
dig -x 210.52.83.228 @server
# 查找一個域的授權 dns 伺服器
dig xmgd.com. +nssearch
# 從根伺服器開始追蹤一個域名的解析過程
dig xmgd.com +trace
# 查看你使用的是哪個 F root dns server
dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT
# 查看 bind 的版本號
dig @bind_dns_server CHAOS TXT version.bind
3. 如何在 Arch Linux 中安裝 DNSCrypt 和 Unbound
DNSCrypt 是一個用於對 DNS 客戶端和 DNS 解析器之間通信進行加密和驗證的協議。它可以阻止 DNS 欺騙或中間人攻擊。 DNSCrypt 可用於大多數的操作系統,包括 Linux,Windows,MacOSX ,Android 和 iOS。而在本教程中我使用的是內核為4.1的 archlinux。
Unbound 是用來解析收到的任意 DNS 查詢的 DNS 緩存伺服器。如果用戶請求一個新的查詢,unbound 會將其存儲到緩存中,並且當用戶再次請求相同的請求時,unbound 將採用已經保存的緩存。這將比第一次請求查詢更快。
現在我將嘗試安裝「DNSCrypt」,以確保 DNS 的通信的安全,並用「Unbound」加速。
第一步 - 安裝 yaourt
Yaourt 是AUR(ARCH 用戶倉庫)的輔助工具之一,它可以使用戶能夠很容易地從 AUR 安裝程序。 Yaourt 和 pacman 使用相同的語法,你可以使用 yaourt 安裝該程序。下面是安裝 yaourt 的簡單方法:
1、 用 nano 或者 vi 編輯 arch 倉庫配置文件,存放在「/etc/pacman.conf」中。
$ nano /etc/pacman.conf
2、 在 yaourt 倉庫底部添加,粘貼下面的腳本:
[archlinuxfr]SigLevel = NeverServer = http://repo.archlinux.fr/$arch
3、 用「Ctrl + x」,接著用「Y」保存。
4、 接著升級倉庫資料庫並用pacman安裝yaourt:
$ sudo pacman -Sy yaourt
第二步 - 安裝 DNSCrypt 和 Unbound
DNSCrypt 和 unbound 就在 archlinux 倉庫中,你可以用下面的 pacman 命令安裝:
$ sudo pacman -S dnscrypt-proxy unbound
接著在安裝的過程中按下「Y」。
第三步 - 安裝 dnscrypt-autoinstall
Dnscrypt-autoinstall 是一個在基於 Linux 的系統上自動安裝和配置 DNSCrypt 的腳本。DNSCrypt 在 AUR 中,因此你必須使用「yaourt」命令來安裝它。
$ yaourt -S dnscrypt-autoinstall
注意 :
-S = 這和 pacman -S 安裝程序一樣。
第四步 - 運行 dnscrypt-autoinstall
用 root 許可權運行「dnscrypt-autoinstall」來自動配置 DNSCrypt。
$ sudo dnscrypt-autoinstall
下一步中按下「回車」,接著輸入"Y"來選擇你想使用的 DNS 提供者,我這里使用不帶日誌和 DNSSEC 的 DNSCrypt.eu。
吸煙必看:再不清肺毒就晚了
注意:即使您不想戒煙,但煙毒一定要除 煙毒不除要人命!!!
DNSCrypt autoinstall
第五步 - 配置 DNSCrypt 和 Unbound
1、 打開 dnscrypt 的「/etc/conf.d/dnscrypt-config」 ,確認配置文件中「DNSCRYPTLOCALIP」指向本地ip,「DNSCRYPTLOCALPORT」根據你本人的意願配置,我是用的是40埠。
$ nano /etc/conf.d/dnscrypt-configDNSCRYPT_LOCALIP=127.0.0.1DNSCRYPT_LOCALIP2=127.0.0.2DNSCRYPT_LOCALPORT=40
DNSCrypt Configuration
保存並退出。
2、 現在你用 nano 編輯器編輯「/etc/unbound/」下 unbound 的配置文件:
$ nano /etc/unbound/unbound.conf
3、 在腳本最後添加下面的行:
do-not-query-localhost: noforward-zone:name: "."forward-addr: 127.0.0.1@40
確保forward-addr和DNSCrypt中的「DNSCRYPT_LOCALPORT」一致。如你所見,用的是40埠。
Unbound Configuration
接著保存並退出。
第六步 - 運行 DNSCrypt 和 Unbound,接著添加到開機啟動中
請用 root 許可權運行 DNSCrypt 和 unbound,你可以用 systemctl 命令來運行:
$ sudo systemctl start dnscrypt-proxy unbound
將服務添加到啟動中。你可以運行「systemctl enable」:
$ sudo systemctl enable dnscrypt-proxy unbound
命令將會創建軟鏈接到「/usr/lib/systemd/system/」目錄的服務。
第七步 - 配置 resolv.conf 並重啟所有服務
resolv.conf 是一個在 linux 中用於配置 DNS 解析器的文件。它是一個由管理員創建的純文本,因此你必須用 root 許可權編輯並讓它不能被其他人修改。
用 nano 編輯器編輯:
$ nano /etc/resolv.conf
並添加本地IP 「127.0.0.1」。現在用「chattr」命令使他只讀:
$ chattr +i /etc/resolv.conf
注意:
如果你想要重新編輯,用「chattr -i /etc/resolv.conf」加入寫許可權。
現在你需要重啟 DNSCrypt 和 unbound 和網路;
$ sudo systemctl restart dnscrypt-proxy unbound netctl
如果你看到錯誤,檢查配置文件。
測試
1、 測試 DNSCrypt
你可以通過 https://dnsleaktest.com/ 來確認 DNSCrypt,點擊「標准測試」或者「擴展測試」,然後等待程序運行結束。
現在你可以看到 DNSCrypt.eu 就已經與作為 DNS 提供商的 DNSCrypt 協同工作了。
一招告別痔瘡
輕松簡單,一試一個准 方法在這里[點擊查看]
Testing DNSCrypt
2、 測試 Unbound
現在你應該確保 unbound 可以正確地與「dig」和「drill」命令一起工作。
這是 dig 命令的結果:
$ dig linoxide.com
我們現在看下結果,「Query time」是「533 msec」:
;; Query time: 533 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Sun Aug 30 14:48:19 WIB 2015;; MSG SIZE rcvd: 188
再次輸入命令,我們看到「Query time」是「0 msec」。
;; Query time: 0 msec;; SERVER: 127.0.0.1#53(127.0.0.1);; WHEN: Sun Aug 30 14:51:05 WIB 2015;; MSG SIZE rcvd: 188
65平小戶型裝修
linux入門
電視十大品牌
筆記本電腦推薦
Unbound Test
DNSCrypt 對 DNS 客戶端和解析端之間的通訊加密做的很好,並且 Unbound 通過緩存讓相同的請求在另一次請求同速度更快。
總結
DNSCrypt 是一個可以加密 DNS 客戶端和 DNS 解析器之間的數據流的協議。 DNSCrypt 可以在不同的操作系統上運行,無論是移動端或桌面端。選擇 DNS 提供商還包括一些重要的事情,應選擇那些提供 DNSSEC 同時沒有日誌的。Unbound 可被用作 DNS 緩存,從而加快解析過程,因為 Unbound 將請求緩存,那麼接下來客戶端請求相同的查詢時,unbound 將從緩存中取出保存的值。 DNSCrypt 和 Unbound 是針對安全性和速度的一個強大的組合。
4. linux中缺少某些命令該怎麼辦
1、例如ls命令,下面的結果說明ls屬於coreutils安裝包
which ls
/bin/ls
rpm -qf /bin/ls
coreutils-5.97-34.el5_8.1
2、例如dig ,下面的結果說明你需要安裝bind-utils才會有dig命令
which dig
/usr/bin/dig
rpm -qf /usr/bin/dig
bind-utils-9.3.6-25.P1.el5_11.6
3、每個命令都有個熟悉掌握過程,包含這個命令的安裝包和下載鏈接
4、在包含某命令的主機測試一下,然後在沒有此命令的主機安裝相應包
5. linux下如何配置DNS伺服器,
在linux下配置DNS伺服器,下面是配置過程中設置過的一些文件,
/etc/hosts 文件的具體內容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost fc4
192.168.1.3 a.test.com a
192.168.1.1 b.test.cn b
/etc/host.conf 文件:
order hosts,bind
表示先用hosts文件做解析,在用DNS解析
/etc/resolv.conf 文件:
; generated by NetworkManager, do not edit!
search test.com
nameserver 127.0.0.1
search test.cn
nameserver 192.168.1.1
nameserver 61.144.56.100
/etc/named.conf 文件:
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com"IN {
type master;
file "test.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa"IN {
type master;
file "192.168.1.rev";
allow-update { none; };
};
zone "test.cn"IN {
type master;
file "test.cn";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";
在/var/name/test.com 文件下:
$TTL 86400
@ IN SOA a.test.com. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS a.test.com.
IN MX 10 mail.test.com.
a IN A 192.168.1.3
mail IN A 192.168.1.3
//其中root.a.test.com的含義是管理員的郵箱
/var/name/test.cn 文件下:
$TTL 86400
@ IN SOA b.test.cn. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS b.test.cn.
IN MX 10 mail.test.cn.
b IN A 192.168.1.1
mail IN A 192.168.1.1
/var/name/192.168.1.rev 文件下:
$TTL 86400
@ IN SOA 1.168.192.in-addr.arpa. root.test.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS a.test.com.
IN NS b.test.cn.
IN MX 10 mail.test.com.
IN MX 10 mail.test.cn.
3 IN PTR a.test.com.
3 IN PTR mail.test.com.
1 IN PTR b.test.cn.
1 IN PTR mail.test.cn.
然後用/etc/init.d/named restart重啟DNS服務,在重啟過程中,我曾經出現過好幾次的錯誤,按照出錯的提示,會提示是named.conf文件第幾行出錯的。或者提示在那些包含文件例如test.cn這些文件裡面的問題,然後一個一個排除。
最後還有一些nslookup的命令比較有用:
set all用於顯示使用nslookup工具這台機器上的DNS伺服器的一些信息
set type=any會顯示完整信息包括域中郵件伺服器和主從DNS伺服器的名字和IP地址
server 192.168.0.1更換查詢的DNS伺服器地址
6. Linux下常用的DNS服務軟體是什麼,常用的DNS記錄有
Linux下常用的DNS服務軟體是BIND
以下是一個配置DNS服務的實例:
………………………………………………DNS的配置步驟:……………………………………………………
一、配置靜態IP地址:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.198.0.5
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
#/etc/init.d/network restart
#ifconfig eth0
二、使用BIND構建DNS伺服器
1、BIND伺服器安裝
RHEL4中包括了BIND服務相關的軟體包
bind-libs-9.2.4-2
提供了實現域名解析功能必備的庫文件 ,系統默認安裝
bind-utils-9.2.4-2
提供了對DNS伺服器的測試工具程序 ,系統默認安裝
bind-9.2.4-2 安裝文件位於第4張安裝光碟中
# rpm -ivh bind-9.2.4-2.i386.rpm
BIND伺服器的服務程序腳本名稱是named,默認沒有啟動,需手動設置。
#rpm -ql bind | grep init.d
/etc/rc.c/init.d/named
#chkconfig --level 35 named on
#chkconfig --list named
三、主域名伺服器的配置
1、在named.conf文件中設置域
全局配置
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
建立正向解析域
zone "." IN { (指定根域)
type hint;
file "named.ca";
};
zone "benet.com" { (指定本地域)
type master;
file "benet.com.zone";
};
建立反向解析域
zone "0.168.192.in-addr.arpa" { (指定反向域)
type master;
file "192.168.0.rev";
};
2、建立正向區域文件 (該文件需要用vi編輯器手動建立在/var/named中,並寫其內容)
#cat /var/named/benet.com.zone
$TTL 86400 (秒)
@ IN SOA benet.com. hostmaster.benet.com. (
42 ; serial (d. adams) (序列號)
3H ; refresh (3小時更新)
15M ; retry (15分鍾重試)
1W ; expiry (1周)
1D ) ; minimum (1天)
@ IN NS ns1.benet.com.
@ IN NS ns2.benet.com.
ns1 IN A 192.168.0.5
ns2 IN A 192.168.0.6
host1 IN A 192.168.0.7
host2 IN A 192.168.0.8
mail IN CNAME host1.benet.com.
www IN CNAME host2.benet.com.
@ IN MX 5 mail.benet.com.
3、建立反向區域文件 (該文件需要用vi編輯器手動建立在/var/named中,並寫其內容)
# cat /var/named/192.168.0.rev
$TTL 86400
@ IN SOA ns1.ltest.com. hostmaster.ltest.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.ltest.com.
@ IN NS ns2.ltest.com.
2 IN PTR ns1.ltest.com. (PTR可用IP省略方法,1.168.192.in-addr.rapa表192.168.1.2可寫為2)
3 IN PTR ns2.ltest.com.
11 IN PTR host1.ltest.com.
12 IN PTR host2.ltest.com.
4、配置文件和區域文件的測試
A、測試named.conf主配置文件
# named-checkconf (如果不顯示任何信息表示語法正確 )
B、測試區域文件
# named-checkzone benet.com /var/named/benet.com.zone
# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev
(named-checkzone命令對正向區域文件和反向區域文件進行檢查語法是否錯誤,第一個參數指定區域名稱,第二個參數指定區域文件名稱,如果語法正確將顯示OK)
5、重啟named服務
#service named restart
四、從域名伺服器 的配置
(它做為主域名伺服器的輔助和備份伺服器,自身不建立區域文件,而是從主域名伺服器中查詢並保存,它可以與主域名伺服器提供相同的域名解析服務,它需要在與主域名伺服器不同的主機中構建)
1、在named.conf文件中設置域
建立正向解析域
zone "benet.com" {
type slave; (type設置為「slave」,表示當前DNS伺服器是該域的從域名伺服器類型 )
file "slaves/benet.com.zone" (從域名伺服器中的區域文件應設置保存在 「slaves」子目錄中,區域文件將從主 域名伺服器中獲取並保存在該目錄中,為了便於管理,盡量使用與主伺服器相 同的區域文件名稱)
masters { 192.168.0.5; }; ( 使用masters設置主域名伺服器的IP地址 )
};
建立反向解析域
zone "0.168.192.in-addr.arpa" {
type slave;
file " slaves/192.168.0.rev";
masters { 192.168.0.5; };
};
2、檢測配置文件和啟動named服務
從域名伺服器只需要檢測配置文件的語法
# named-checkconf
啟動從域名伺服器
# service named start
查看區域文件
從伺服器啟動後將從主域名伺服器中獲得區域文件並保存在指定的目錄中
# ls /var/named/slaves/
192.168.0.rev benet.com.zone
(如果/var/named/slaves/目錄中沒有發現區域文件,說明從域名伺服器和主域名伺服器之間傳輸區域文件不成功,需要排錯。)
五、緩存域名伺服器的配置
(它應保證能夠與互聯網中的其他DNS伺服器進行連接,它的主要作用是提高域名解析速度和節約出口帶寬)
1、安裝caching-nameserver軟體包
(RHEL4系統為配置緩存域名伺服器專門提供了名為「caching-nameserver」的軟體包,該軟體包保存在第1張安裝光碟中,默認沒有安裝。)
# rpm -ivh caching-nameserver-7.3-3.noarch.rpm
(caching-nameserver軟體包安裝時將對BIND伺服器的配置文件named.conf的內容進行更改,原文件中的內容保存在/etc/named.conf.rpmorig中。)
2、named.conf中的全局設置 (其中以//開頭的行是無效行)
options {
directory "/var/named"; (directory用於設置BIND伺服器的工作目錄,即域名區域文件保存的目錄 )
mp-file "/var/named/data/cache_mp.db"; (mp-file用於設置域名緩存文件的保存位置和文件名 )
statistics-file "/var/named/data/named_stats.txt";
};
3、根區域設置
named.conf中的根區域設置
zone "." IN {
type hint; (type設置為hint表示該區域的類型是根區域)
file "named.ca"; (file用於設置區域文件,根區域文件的名稱是「named.ca」 )
};
(named.ca是根區域文件,位於「/var/named/ 」目錄中,named.ca中包含全球DNS根伺服器的地址信息請不要更改)
4、localhost正向解析
(localhost區域的作用是對主機名稱「localhost」和環回地址「127.0.0.1」 進行解析,總是代表本機)
zone "localhost" IN {
type master; ( type設置為master表示區域的類型為主伺服器 )
file "localhost.zone"; (file設置區域文件名的名字 ,localhost.zone在/var/named中,是安裝caching- nameserver時自動安裝的,用cat /var/named/localhost.zone查看內容)
};
5、localhost反向解析
zone "0.0.127.in-addr.arpa" IN {
type master; ( type設置為master表示區域的類型為主伺服器 )
file "named.local"; (file設置區域文件名的名字,named.local在/var/named中,是安裝caching-nameserver時 自動安裝的,用cat /var/named/named.local查看內容)
};
6、緩存域名伺服器在安裝caching-nameserver軟體包後不需要任何其他配置就可以啟動運行,並實現域名查詢和緩存功能,但它必須能夠訪問互聯網。可以使用nslookup命令進行測試。
六、DNS伺服器的測試
1、DNS測試原理
DNS伺服器的主要測試方法
使用nslookup、dig和host等專用工具可以對DNS伺服器進行較全面的測試
nslookup命令在Linux和Windows系統中都默認安裝,是比較常用的測試工具
2、使用nslookup測試DNS伺服器
進入nslookup命令交換環境
# nslookup
>
設置使用指定的DNS伺服器
> server 192.168.0.5
測試localhost主機域名的正向解析
> localhost
測試localhost主機域名的反向解析
> 127.0.0.1
測試互聯網中的域名解析
> www.benet.com
測試benet.com域中的A記錄
> host1.benet.com
測試benet.com域中的PTR記錄
> 192.168.0.7
測試benet.com域中的CNAME記錄
> www.benet.com
測試benet.com域中的NS記錄
> set type=ns (設置域名查詢類型為NS即域名記錄)
> benet.com
測試benet.com域中的MX記錄
> set type=mx (設置域名查詢類型為MX即郵件交換記錄)
> benet.com
設置進行A記錄的測試
> set type=a (設置域名查詢類型為A即地址記錄)
>mail.benet.com
3、使用dig測試DNS伺服器 (dig只運行在liunx平台,是domain information grep的縮寫)
1)#dig --help
dig命令的格式
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} [...]]
Use "dig -h" (or "dig -h | more") for complete list of options
2)dig命令可以比nslookup命令顯示更多的DNS伺服器信息
# dig @192.168.0.5 benet.com (@後是被查詢的DNS伺服器的IP地址,benet.com域名做為命令參數)
; <<>> DiG 9.2.4 <<>> @192.168.0.5 benet.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51201
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;benet.com. IN A
;; AUTHORITY SECTION:
benet.com. 86400 IN SOA ns1.benet.com. hostmaster.benet.com. 42 10800 900 604800 86400
以上dns是以benet.com域為實例講解………………
7. liunx怎麼安裝dns伺服器
主要配置文件解釋:
#rpm -ql bind|More
列出該軟體包的所有文件和位置。
配置文件一般在/etc/named.conf
資料庫文件一般在/var/named下
以下是這次配置DNS伺服器的幾個配置文件:
/etc/named.conf
/在NAMED.CONF配置文件中使用//和/* */來進行注釋,
ptions { /*OPTIONS選項用來定義一些影響整個DNS伺服器的環境,如這里的DI RECTORY用來指定在本文件指定的文件的路徑,如這里的是將其指定到 /var/named 下,在這里你還可以指定埠等等。不指定則埠是53
*/
directory "/var/named";
}; //
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在這個文件中是用zone關鍵字來定義域區的,一個zone關鍵字定義一個域區
type hint;
/*在這里type類型有三種,它們分別是master,slave和hint它們的含義分別是:
master:表示定義的是主域名伺服器
slave :表示定義的是輔助域名伺服器
hint:表示是互聯網中根域名伺服器
*/
file "named.ca"; //用來指定具體存放DNS記錄的文件
};
zone "localhost" IN { //定義一具域名為localhost的正向區域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "www.hostspaces.net" IN { //指定一個域名為test.net的正向區域
type master;
file "test.net」
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN { //定義一個IP為127.0.0.*的反向域區
type master;
file "named.local";
allow-update { none; };
};
zone "63.45.10.in-addr.arpa" IN { //定義一個IP為10.45.63.*反向域區
type master;
file "10.45.63";
/var/named/test.net文件
@ IN SOA linux.test.net. root.test.net. ( SOA表示授權開始
/* 上面的IN表示後面的數據使用的是INTERNET標准。而@則代表相應的域名,如在這里代表test.net,即表示一個域名記錄定義的開始。而 linux.test.net則是這個域的主域名伺服器,而webmaster.test.net則是管理員的郵件地址。注意這是郵件地址中用.來代替常見的郵件地址中的@.而SOA表示授權的開始
*/
2003012101 ; serial (d. adams) /*本行前面的數字表示配置文件的修改版本,格式是年月日當日修改的修改的次數,每次修改這個配置文件時都應該修改這個數字,要不然你所作的修改不會更新到網上的其它DNS伺服器的資料庫上,即你所做的更新很可能對於不以你的所配置的DNS伺服器為DNS伺服器的客戶端來說就不會反映出你的更新,也就對他們來說你更新是沒有意義的。
*/
28800 ; refresh
/*定義的是以為單位的刷新頻率 即規定從域名伺服器多長時間查詢一個主伺服器,以保證從伺服器的數據是最新的
*/
7200 ;retry
/*上面的這個值是規定了以秒為單位的重試的時間間隔,即當從服務試圖在主伺服器上查詢更時,而連接失敗了,則這個值規定了從服務多長時間後再試
*/
3600000 ; expiry
/*上面這個用來規定從伺服器在向主服務更新失敗後多長時間後清除對應的記錄,上述的數值是以分鍾為單位的
*/
8400 )
/*上面這個數據用來規定緩沖伺服器不能與主服務聯繫上後多長時間清除相應的記
錄
*/
IN NS linux
IN MX 10 linux
linux IN A 10.45.63.185
it IN A 10.45.63.188
www IN CNAME linux
/*上面的第一列表示是主機的名字,省去了後面的域。
NS:表示是這個主機是一個域名伺服器,
A:定義了一條A記錄,即主機名到IP地址的對應記錄
MX 定義了一郵件記錄
CNAME:定義了對應主機的一個別名
/var/named/10.45.63
@ IN SOA linux.www.hostspaces.net. root.www.hostspaces.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.www.hostspaces.net.
/*以上的各關鍵字的含義跟www.hostspaces.net是相同的
185 IN PTR linux.www.hostspaces.net.
188 IN PTR it.www.hostspaces.net.
/*
上面的第一列表示的是主機的IP地址。省略了網路地址部分。如185完整應該是:
10.45.63.185
PTR:表示反向記錄
最後一列表示的是主機的域名。
三、啟用與測試
啟動服務:
#/etc/init.d/named startd
測試工具:
linux:host dig ping
win:ping nslookup
客服端配置:
linux:修改/etc/resolv.conf
win:雙擊本地連接==》打開TCP/IP屬性==》選中自定義DNS伺服器地址
8. linux 不支持 dig命令
可能是因為還沒有安裝。
因為dig是bind的一部分,你可以安裝一下bind-utils
比如用yum的話就是yum install bind-utils
9. linux 查找軟體所在的軟體包,例如 想安裝dig 那如何查詢這在bind-utils這個安裝包呢在debian,centos下
centos 在聯網或者掛載yum源的情況下可以直接yum install dnsutils
ubuntu或者類debian可以使用apt-get install dnsutils
10. Linux系統上怎麼用nslookup和dig
1、安裝bind-utils
2、dig dns或ip
dig yourdomain +trace
dig yourdomain @ns
3、nslookup yourdomain
nslookup
>server ns
>yourdomain