不知道您會不會設定 linux 的 dns client 呢﹖如果忘記了要打屁屁了哦~~~ 事實上我們在第一章的“網路設定”那裡就設定過了﹐也就是修改 /etc/resolv.conf 這個檔案﹐將您剛設定好的 DNS 主機 IP 放在檔案的前排位置﹐如﹕
nameserver192.168.100.23
nameserver168.95.1.1
nameserver139.175.10.20
domainsiyongc.domain
searchsiyongc.domain dmz.domain test.com
假如您的 client 和 server 在同一台機器上﹐那可以將第一個 name server 設定為 0.0.0.0 或 127.0.0.1 。
要是您使用 Windows ﹐但不是透過 DHCP 來指定 DNS 的話﹐那您或許需要手工設定了﹕控制台 --> 網路 --> TCP/IP (-> 網路卡) --> 內容 --> DNS 組態 ﹕
請注意﹕如果您修改了這裡的設定﹐就算您的 Windows 是透過 DHCP 取得 IP 設定的話﹐也會以這裡的設定為準。如果您想使用 DHCP 的設定﹐那就選擇“關閉 DNS”吧。
測試 DNS
要測試我們的設定是否生效﹐我們可以使用的方法有很多﹐其中最簡單的莫過於 ping 命令了。直接 ping 一下您所預期的 dns 名稱就知道結果了。
不過﹐ping 畢竟很有限﹐例如﹕您不能查詢 MX 和 NS 等記錄。實作上﹐我們最最常使用的 DNS 查詢工具是 nslookup 命令。關於 nslookup ﹐在“學習網路”的“DNS 協定”文章中有很詳細的例子﹐這裡不再重複。如果我們在測試中失敗﹐例如 nslookup 回應說﹕
*** rh71.siyongc.domain can't find XXX.XXXX.XXXX:
Non-existent host/domain
這通常是反解記錄沒設定好的緣故﹐請確定 DNS 主機本身的反解有設定起來﹐而且可以被 DNS 追查得到。如果反解沒有授權下來﹐那就請上游 ISP 幫忙設定。不過﹐我發現這個錯誤信息似乎在新版的 nslookup 中不會出現﹐anyway ﹐請您自己留意吧。
有時候 nslookup 會停在某處一動也不動﹐其實它不是當掉了﹐而是在查詢沒結果之後等 time out 而已。您可以按 Ctrl C 終止查詢﹐再打 exit 跳出來。不過﹐如果您在按了 Ctrl C 之後接著再輸入一個無結果的查詢﹐那就好可能將 nslookup 當掉。這樣您可能要登錄進另外一個 terminal ﹐然後用 kill 將 PID 殺掉。同上﹐新版的 nslookup 沒有這個困繞﹐但如果按 Ctrl C 的話﹐則會直接跳離 nslookup 程式。
然而﹐nslookup 似乎在以後的版本中不再維護了﹐取而代之的﹐就是 dig 命令﹐所以﹐當您在 Redhat 7.1 上輸入 nslookup﹐您會看到如下這樣的信息﹕
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
這段文字不用解釋了吧﹖真的不知道說什麼就查字典吧~~ 這裡﹐我們不妨學習一下如何用 dig 來查詢和測試 DNS 服務。
基本上﹐dig 命令的語法如下﹕
dig [@server] domain [<query-type>] [<query-class>] [ <query-option>]
[-<dig-option>] [%comment]
看起來蠻複雜的﹐恐怕要 man dig 才知道怎麼使用。不過﹐我們平時只用它來查詢 dns 資料的話﹐要使用到的選項也不會太多啦﹐如果您會得在 nslookup 中設定 type=XXX 的話﹐那您也可以用 dig 來查詢不同的記錄類別資料。例如﹕
# dig siyongc.domain mx
; <<>> DiG 9.1.0 <<>> siyongc.domain mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8198
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;siyongc.domain. IN MX
;; ANSWER SECTION:
siyongc.domain. 86400 IN MX 20 lp64.dmz.domain.
siyongc.domain. 86400 IN MX 10 rh71.siyongc.domain.
;; AUTHORITY SECTION:
siyongc.domain. 86400 IN NS lp64.dmz.domain.
siyongc.domain. 86400 IN NS rh71.siyongc.domain.
;; ADDITIONAL SECTION:
rh71.siyongc.domain. 86400 IN A 192.168.100.23
lp64.dmz.domain. 86400 IN A 10.0.1.130
;; Query time: 8 msec
;; SERVER: 192.168.100.23#53(192.168.100.23)
;; WHEN: Fri Nov 16 21:13:18 2001
;; MSG SIZE rcvd: 138
上面是的命令是使用預設的 name server 來查詢 siyongc.domain 的 mx 記錄。當然﹐您也可以用 @ 來指定用某一台 name server 來查詢其它的資訊。例如﹐我要用 hinet 的 dns 來查詢負責 com.tw 的 NS 有哪些﹕
# dig @168.95.1.1 com.tw ns
; <<>> DiG 9.1.0 <<>> @168.95.1.1 com.tw ns
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33339
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 4
;; QUESTION SECTION:
;com.tw. IN NS
;; ANSWER SECTION:
com.tw. 518400 IN NS b.twnic.net.tw.
com.tw. 518400 IN NS c.twnic.net.tw.
com.tw. 518400 IN NS a.twnic.net.tw.
;; ADDITIONAL SECTION:
b.twnic.net.tw. 159497 IN A 192.72.81.200
c.twnic.net.tw. 159497 IN A 168.95.192.10
a.twnic.net.tw. 159497 IN A 163.28.1.2
a.twnic.net.tw. 159497 IN A 140.111.1.2
;; Query time: 167 msec
;; SERVER: 168.95.1.1#53(168.95.1.1)
;; WHEN: Fri Nov 16 21:17:46 2001
;; MSG SIZE rcvd: 146
除了用 nslookup 和 dig 之外﹐如果您只想簡單的查詢 dns 資訊的話﹐那您可以用 host 命令。例如﹕
# host -t any siyongc.domain 0.0.0.0
Using domain server:
Name: 0.0.0.0
Address: 0.0.0.0#53
Aliases:
siyongc.domain. SOA rh71.siyongc.domain. root.rh71.siyongc.domain. 2001111601 28
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




