[實踐Ok]在CentOS6.2下安裝DNS并快速配置實例,共八步,心路歷程如下:
背景介紹:
在日常的開發中,往往會在測試機和外網的Http的Url實際接口是不一樣的,在測試機一個Url地址,在外網中又是一個地址。
這樣在我們在開發時,在上線時就會去修改一下接口,在線下測試時用線下的Url接口,最后的情況是,在SVN的管理中會變得
很混亂,也就是在上線上的版本和線下測試的版本在改動上來回切換,版本號不段的切換,為此,為了解決這個問題,必須引入
自己建立一套內網測試系統的DNS來實現其和外網一樣的環境,進而在實際開發中就不會出現因URL的接口包含的不同域名而導致
了代碼版本管理的版本號不段攀升。
實際操作:
在Linux下尤其是CentOS這樣的免費系統上有Yum這樣的包管理工具來安DNS服務器,但是我在實踐中發現其并不理想,可能是打出的Rpm包多少有些
不太讓人滿意,我試過用直接運行:yum install bind bind-utils bind-libs bind-chroot caching-nameserver,但后來在配置DNS時出現這樣那樣的問題.
找不到配置文件?(loading from master file 225.168.192.in-add.arpa failed: file not found)我X,什么權限問題都試了,但就是搞不定,于是否,
改用源碼安裝,這樣來得更保險此些,操控性也強很多,有人問我,你的人生由誰來操盤:我操!
我的上手安裝和配置如下:
一:開始安裝DNS服務器Bind:
下載 bind??http://www.isc.org,解壓bind-9.9.1-P1.tar.gz。
tar -zxvf bind-9.9.1-P1.tar.gz
進入 bind-9.9.1-P1.tar.gz文件夾
cd bind-9.9.1-P1
創建安裝目錄,我是安裝在 /usr/local/named
mkdir /usr/local/named
編譯,指定安裝目錄,指定man目錄,開啟多線程支持(測試環境也就沒有必要搞多線程了,要整看幫助。)
./configure --prefix=/usr/local/named
Make 大約需要幾分鐘,只要不報錯就繼續下去。
make
Make install 安裝
make install
沒有報錯,就表示安裝成功了。
創建以下目錄以備用
mkdir /usr/local/named/namedb
二:開始配置bind
創建 rndc.conf文件,用bind自帶程序生成
cd /usr/local/named/
sbin/rndc-confgen > etc/rndc.conf?? //一直死在這兒了,只得強制終止。
查原因,在網上搜索:linux安裝dns,rndc-confgen沒反應,哈,有一篇文章說到點上了,
Url:http://www.nginxs.com/linux/43.html,他說是,摘錄如下:
在官方網站上看到這么一條信息
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)
start typing:
rndc-confgen: generate key: out of entropy
大概意思就是服務器上沒有random產生器,這種情況下我們就手動偽造一個文件代替/dev/random的功能
###新建一個 random 文件隨即輸入一串數字“記得要長~~
shell $> vim random
asdkfjalsjdflajsldfjlasjdflajsldfjalsjdflajslfjalsjflasjfl
###查看 rndc-confgen 幫助
shell $> ../sbin/rndc-confgen –help
rndc-confgen: invalid argument –
Usage:
rndc-confgen [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] [-s addr] [-t chrootdir] [-u user]
??-a:?????????? generate just the key clause and write it to keyfile (/usr/local/named/etc/rndc.key)
??-b bits:??????from 1 through 512, default 128; total length of the secret
??-c keyfile:?? specify an alternate key file (requires -a)
??-k keyname:?? the name as it will be used??in named.conf and rndc.conf
??-p port:??????the port named will listen on and rndc will connect to
??-r randomfile: a file containing random data
??-s addr:??????the address to which rndc should connect
??-t chrootdir: write a keyfile in chrootdir as well (requires -a)
??-u user:??????set the keyfile owner to “user” (requires -a)
,上面這一句是核心,自己整個Random文件是橋梁。
tail -10 rndc.key | head -9 | sed 's/# //g' > named.conf
把這個named.conf放在etc的文件夾子下:/usr/local/named/etc/named.conf。
ok 問題解決了,接下來我們配置 我們的 域名服務器吧。
三:配置篇
編輯named.conf
# vi??/usr/local/named/etc/named.conf
寫入以下內容:我的Ip:192.168.225.128 ,注意:225.168.192.in-add.arpa是Ip的反解,剛好倒過來。
退出,保存。
創建并編輯 localhost.zone 文件
vi??/usr/local/named/localhost.zone
寫入以下內容:
創建并編輯 localhost.rev 文件
# vi /usr/local/named/localhost.rev
因前面在,51test.com這個是在其他網頁上抄過來的簡單示例,于是也就順便把文件也貼上:
vi??/usr/local/named/51test.com.zone
再不是51test.com的反解配置文件:
vi /usr/local/named/225.168.192.in-add.arpa
配置注意事項:
配置文件中的 "@" 符號前不能有任何空白字符
配置文件中的 "IN" 字符前必須有空格或TAB
到此,配置大功告成。
四:
下載一個named.root 到/usr/local/named/下
ftp://ftp.rs.internic.net/domain/named.root
Ftp失效,從這兒下載:
http://www.smth.edu.cn/bbsgcon.php?board=FreeBSD&num=1209
特別注意:bind的配置文檔是區分大小寫的,因現在那個FTP好像下載不了,于是我也貼下面。
vi /usr/local/named/named.ca
五:運行Bind程序,如下方式加載配置文件啟動,加上調試信息參數:
如果運行結果最后一行顯示Running
表明安裝并啟動成功。
最后需要注意的內容是不要忘了是否真正的開啟服務器端口(以下是named.conf文件中端口的設置語句,可以看到端口號是 53:telnet x.x.x.x 53)
當然也可以用:nmap localhost ,沒有yum安裝,這種小工具問題不大用yum來做。
yum install nmap
Total download size: 2.3 M
Installed size: 7.5 M
Is this ok [y/N]: y
Downloading Packages:
root@192.168.225.128:/usr/local/named# nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-18 03:09 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000033s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 994 closed ports
PORT???? STATE SERVICE
22/tcp?? open??ssh
53/tcp?? open??domain
80/tcp?? open??http
111/tcp??open??rpcbind
3306/tcp open??mysql
9000/tcp open??cslistener
端口號是 53就是DNS Bind的端口。
六:停止及啟動:
root@192.168.225.128:/usr/local/named# ps aux|grep name
root???? 19024??0.0??1.2??10624??6216 pts/0????T????03:00?? 0:00 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
root@192.168.225.128:/usr/local/named# kill -9 19024
root@192.168.225.128:/usr/local/named# ps aux|grep name
[2]+??已殺死?????????????? /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
七:本機測試,外部機器測試是否dns生效:
vi /etc/resolv.conf
加上,去掉注釋其他Dns的Ip值:
nameserver 192.168.225.128
啟動Dns后,清楚Bind服務器上的Dns緩存:
root@192.168.225.128:/usr/local/named# ./sbin/rndc flush
root@192.168.225.128:/usr/local/named# ping www.51test.com
PING www.51test.com (192.168.225.128) 56(84) bytes of data.
64 bytes from 192.168.225.128: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 192.168.225.128: icmp_seq=2 ttl=64 time=0.058 ms
八:將服務設置為開機自啟,把named 添加到啟動項,隨操作系統一起啟動即可:
但是,我們現在是源碼的安裝,So,得這樣子喔。
修改來自Apache里的啟動shell(參看一下自啟動的標準),也可以不用修改,直接如下也成,內容如下:
1)保存為/etc/init.d/dns
腳本執行權限添加:
2)chmod -R a+x /etc/init.d/dns??//env: /etc/init.d/dns: 權限不夠 ,必須給加上。
3)把腳本拷貝至/etc/init.d/目錄下,執行命令:
ln -s /etc/init.d/dns /etc/rc.d/rc3.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc4.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc5.d/S61dns
再執行:
chkconfig --add dns??//解釋:相當于Windows下的自動啟動服務,特別要注意:chkconfig –add dns的時候,出現dns服務不支持chkconfig。
如果想讓服務支持chkconfig,必須定義服務的啟動級,啟動優先級,關閉優先級,還有描述,如上,必須得加上描述等。
chkconfig --levels dns345 on //也成
開機啟動設置完畢:
service dns start
-----------------------------------------------
下次一開機也就會運行這個腳本,以啟動自己定義的Dns服務器。
啟動后,查看是否自己就啟動了呢?如下:
果然,又啟動起來了,大功告成,整完收工。
Dns服務器從安裝到調試配置并測試完成,Eof。Write and Opt??By:jackxiang 2012/06/17 20:30:00
后來,我自己配置了一個新的域名:naimanqi.com.cn ,我的Linux機器IP是:192.168.1.105
修改配置文件:
1)共用如下:
3)反向解析文件:
4)正向解析的文件:
注意這一行:??????????IN??????A?????? 192.168.1.105
這個目的是把瀏覽器訪問:naimanqi.com.cn這個域名也給解析到IP: 192.168.1.105上來,跟在后面的www??IN??????A?????? 192.168.1.105 這個是對www解析的,其實它是一個二級域名和admin 這種二級域名是一個意思:admin???? IN??????A??????192.168.1.105 。。。EOF。
最后,可以這樣玩這個DNS,這個CentOs6.3的Linux 不是建立在這個NAT下的嘛,后修改為Bridge(橋連),這樣后,反正是在一個網段內(路由器下),把自己外網的這臺Windows下的機器的DNS由192.168.1.1修改為:192.168.1.105,這樣既可以調試剛才配置的內部DNS進行調試,也可 以訪問外網,為什么呢?是因為:
是因,內部DNS沒有找到那個地址后,它自動轉給上一級DNS去了,后得到那個外部網站的IP地址了。但修改為NAT后,好像啟動Centos里的DNS后,再在Windows上修改IP為橋連后的IP好像DNS解析不了,在Linux自己修改 /etc/resolve.conf后是可以的,所以,建議用橋連方式來開發,少用NAT方式,這樣可以在一個路由器下的電腦都可以配置上這個Dns來訪問該網站和開發網部(samba),很是方便,而DNS設置后,如果沒有這個網站在內網,它便會訪問外網,這種機制也是很好的
背景介紹:
在日常的開發中,往往會在測試機和外網的Http的Url實際接口是不一樣的,在測試機一個Url地址,在外網中又是一個地址。
這樣在我們在開發時,在上線時就會去修改一下接口,在線下測試時用線下的Url接口,最后的情況是,在SVN的管理中會變得
很混亂,也就是在上線上的版本和線下測試的版本在改動上來回切換,版本號不段的切換,為此,為了解決這個問題,必須引入
自己建立一套內網測試系統的DNS來實現其和外網一樣的環境,進而在實際開發中就不會出現因URL的接口包含的不同域名而導致
了代碼版本管理的版本號不段攀升。
實際操作:
在Linux下尤其是CentOS這樣的免費系統上有Yum這樣的包管理工具來安DNS服務器,但是我在實踐中發現其并不理想,可能是打出的Rpm包多少有些
不太讓人滿意,我試過用直接運行:yum install bind bind-utils bind-libs bind-chroot caching-nameserver,但后來在配置DNS時出現這樣那樣的問題.
找不到配置文件?(loading from master file 225.168.192.in-add.arpa failed: file not found)我X,什么權限問題都試了,但就是搞不定,于是否,
改用源碼安裝,這樣來得更保險此些,操控性也強很多,有人問我,你的人生由誰來操盤:我操!
我的上手安裝和配置如下:
一:開始安裝DNS服務器Bind:
下載 bind??http://www.isc.org,解壓bind-9.9.1-P1.tar.gz。
tar -zxvf bind-9.9.1-P1.tar.gz
進入 bind-9.9.1-P1.tar.gz文件夾
cd bind-9.9.1-P1
創建安裝目錄,我是安裝在 /usr/local/named
mkdir /usr/local/named
編譯,指定安裝目錄,指定man目錄,開啟多線程支持(測試環境也就沒有必要搞多線程了,要整看幫助。)
./configure --prefix=/usr/local/named
Make 大約需要幾分鐘,只要不報錯就繼續下去。
make
Make install 安裝
make install
沒有報錯,就表示安裝成功了。
創建以下目錄以備用
mkdir /usr/local/named/namedb
二:開始配置bind
創建 rndc.conf文件,用bind自帶程序生成
cd /usr/local/named/
sbin/rndc-confgen > etc/rndc.conf?? //一直死在這兒了,只得強制終止。
查原因,在網上搜索:linux安裝dns,rndc-confgen沒反應,哈,有一篇文章說到點上了,
Url:http://www.nginxs.com/linux/43.html,他說是,摘錄如下:
在官方網站上看到這么一條信息
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)
start typing:
rndc-confgen: generate key: out of entropy
大概意思就是服務器上沒有random產生器,這種情況下我們就手動偽造一個文件代替/dev/random的功能
###新建一個 random 文件隨即輸入一串數字“記得要長~~
shell $> vim random
asdkfjalsjdflajsldfjlasjdflajsldfjalsjdflajslfjalsjflasjfl
###查看 rndc-confgen 幫助
shell $> ../sbin/rndc-confgen –help
rndc-confgen: invalid argument –
Usage:
rndc-confgen [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] [-s addr] [-t chrootdir] [-u user]
??-a:?????????? generate just the key clause and write it to keyfile (/usr/local/named/etc/rndc.key)
??-b bits:??????from 1 through 512, default 128; total length of the secret
??-c keyfile:?? specify an alternate key file (requires -a)
??-k keyname:?? the name as it will be used??in named.conf and rndc.conf
??-p port:??????the port named will listen on and rndc will connect to
??-r randomfile: a file containing random data
??-s addr:??????the address to which rndc should connect
??-t chrootdir: write a keyfile in chrootdir as well (requires -a)
??-u user:??????set the keyfile owner to “user” (requires -a)
- shell?$>?../sbin/rndc-confgen?-r?random?>?rndc.key ??
tail -10 rndc.key | head -9 | sed 's/# //g' > named.conf
把這個named.conf放在etc的文件夾子下:/usr/local/named/etc/named.conf。
ok 問題解決了,接下來我們配置 我們的 域名服務器吧。
三:配置篇
編輯named.conf
# vi??/usr/local/named/etc/named.conf
寫入以下內容:我的Ip:192.168.225.128 ,注意:225.168.192.in-add.arpa是Ip的反解,剛好倒過來。
- key?"rndc-key"?{ ??
- ??algorithm?hmac-md5; ??
- ??secret?"SnK8Ph1zCAnnykZ07qt+TQ=="; ??
- }; ??
- ??
- controls?{ ??
- ??inet?127.0.0.1?port?953 ??
- ????allow?{?127.0.0.1;?}?keys?{?"rndc-key";?}; ??
- }; ??
- ??
- options?{ ??
- ??Directory?"/usr/local/named"; ??
- ??Pid-file?"named.pid"; ??
- ??Allow-query?{?any?;}; ??
- ??Dump-file?"/usr/local/named/data/cache_dump.db"; ??
- ??Statistics-file?"/usr/local/named/data/named_stats.txt"; ??
- }; ??
- Zone?"localhost"?in?{ ??
- ??Type?master; ??
- ??File?"localhost.zone"; ??
- }; ??
- Zone?"0.0.127.in-addr.arpa"?in?{ ??
- ??Type?master; ??
- ??File?"localhost.rev"; ??
- }; ??
- ??
- zone?"51test.com"?{ ??
- ??????type?master; ??
- ??????file?"51test.com.zone"; ??
- };zone?"225.168.192.in-add.arpa"?IN?{ ??
- ????????type?master; ??
- ?????????file?"225.168.192.in-add.arpa"; ??
- }; ??
- ??
退出,保存。
創建并編輯 localhost.zone 文件
vi??/usr/local/named/localhost.zone
寫入以下內容:
- $TTL?3600 ??
- $ORIGIN?127.0.0.1. ??
- @??1D?IN?SOA?localhost.?root.localhost.?( ??
- ?????????????????????42?????????; ??
- ?????????????????????3H?????????; ??
- ?????????????????????15M????????; ??
- ?????????????????????1W?????????; ??
- ?????????????????????3600); ??
- ???1D?IN?NS??127.0.0.1 ??
- ???1D?IN?A???127.0.0.1 ??
- ??
創建并編輯 localhost.rev 文件
# vi /usr/local/named/localhost.rev
- $TTL?3600 ??
- @??IN?SOA??localhost.??root.localhost.?( ??
- ??????????????1;?serial ??
- ??????????????3600;?refresh?every?hour ??
- ??????????????900;??retry?every?15?minutes ??
- ??????????????3600000;?expire?1000?hours ??
- ??????????????3600);?minimun?1?hour ??
- ???IN?NS?localhost. ??
- 1??IN?PTR?localhost. ??
- ??
因前面在,51test.com這個是在其他網頁上抄過來的簡單示例,于是也就順便把文件也貼上:
vi??/usr/local/named/51test.com.zone
- $TTL?86400 ??
- @????????IN????????SOA????????www.51test.com.??root.localhost?( ??
- ????????????????????????2?;?serial ??
- ????????????????????????28800?;?refresh ??
- ????????????????????????7200?;?retry ??
- ????????????????????????604800?;?expire ??
- ????????????????????????86400?;?ttl ??
- ????????????????????????) ??
- ????????IN??????NS??????www.51test.com. ??
- ??
- www??????IN??????A???????192.168.225.128 ??
- admin?????IN??????A??????192.168.225.128 ??
- ??
再不是51test.com的反解配置文件:
vi /usr/local/named/225.168.192.in-add.arpa
- $TTL????86400 ??
- @???????IN??????SOA?????51test.com.??root.51test.com.??( ??
- ??????????????????????????????????????1997022700?;?Serial ??
- ??????????????????????????????????????28800??????;?Refresh ??
- ??????????????????????????????????????14400??????;?Retry ??
- ??????????????????????????????????????3600000????;?Expire ??
- ??????????????????????????????????????86400?)????;?Minimum ??
- @?????????IN??????NS??????51test.com. ??
- 128???????IN??????PTR????www.51test.com. ??
- 128???????IN??????PTR????admin.51test.com. ??
- ??
配置注意事項:
配置文件中的 "@" 符號前不能有任何空白字符
配置文件中的 "IN" 字符前必須有空格或TAB
到此,配置大功告成。
四:
下載一個named.root 到/usr/local/named/下
ftp://ftp.rs.internic.net/domain/named.root
Ftp失效,從這兒下載:
http://www.smth.edu.cn/bbsgcon.php?board=FreeBSD&num=1209
特別注意:bind的配置文檔是區分大小寫的,因現在那個FTP好像下載不了,于是我也貼下面。
vi /usr/local/named/named.ca
- more?named.root ??
- ;?This?file?holds?the?information?on?root?name?servers?needed?to ??
- ;?initialize?cache?of?Internet?domain?name?servers ??
- ;?(e.g.?reference?this?file?in?the?"cache?.?<file>" ??
- ;?configuration?file?of?BIND?domain?name?servers). ??
- ; ??
- ;?This?file?is?made?available?by?InterNIC ??
- ;?under?anonymous?FTP?as ??
- ;?file?/domain/named.root ??
- ;?on?server?FTP.INTERNIC.NET ??
- ; ??
- ;?last?update:?Nov?5,?2002 ??
- ;?related?version?of?root?zone:?2002110501 ??
- ; ??
- ; ??
- ;?formerly?NS.INTERNIC.NET ??
- ; ??
- .?3600000?IN?NS?A.ROOT-SERVERS.NET. ??
- A.ROOT-SERVERS.NET.?3600000?A?198.41.0.4 ??
- ; ??
- ;?formerly?NS1.ISI.EDU ??
- ; ??
- .?3600000?NS?B.ROOT-SERVERS.NET. ??
- B.ROOT-SERVERS.NET.?3600000?A?128.9.0.107 ??
- ; ??
- ;?formerly?C.PSI.NET ??
- ; ??
- .?3600000?NS?C.ROOT-SERVERS.NET. ??
- C.ROOT-SERVERS.NET.?3600000?A?192.33.4.12 ??
- ; ??
- ;?formerly?TERP.UMD.EDU ??
- ; ??
- .?3600000?NS?D.ROOT-SERVERS.NET. ??
- D.ROOT-SERVERS.NET.?3600000?A?128.8.10.90 ??
- ; ??
- ;?formerly?NS.NASA.GOV ??
- ; ??
- .?3600000?NS?E.ROOT-SERVERS.NET. ??
- E.ROOT-SERVERS.NET.?3600000?A?192.203.230.10 ??
- ; ??
- ;?formerly?NS.ISC.ORG ??
- ; ??
- .?3600000?NS?F.ROOT-SERVERS.NET. ??
- F.ROOT-SERVERS.NET.?3600000?A?192.5.5.241 ??
- ; ??
- ;?formerly?NS.NIC.DDN.MIL ??
- ; ??
- .?3600000?NS?G.ROOT-SERVERS.NET. ??
- G.ROOT-SERVERS.NET.?3600000?A?192.112.36.4 ??
- ; ??
- ;?formerly?AOS.ARL.ARMY.MIL ??
- ; ??
- .?3600000?NS?H.ROOT-SERVERS.NET. ??
- H.ROOT-SERVERS.NET.?3600000?A?128.63.2.53 ??
- ; ??
- ;?formerly?NIC.NORDU.NET ??
- ; ??
- .?3600000?NS?I.ROOT-SERVERS.NET. ??
- I.ROOT-SERVERS.NET.?3600000?A?192.36.148.17 ??
- ; ??
- ;?operated?by?VeriSign,?Inc. ??
- ; ??
- .?3600000?NS?J.ROOT-SERVERS.NET. ??
- J.ROOT-SERVERS.NET.?3600000?A?192.58.128.30 ??
- ; ??
- ;?housed?in?LINX,?operated?by?RIPE?NCC ??
- ; ??
- .?3600000?NS?K.ROOT-SERVERS.NET. ??
- K.ROOT-SERVERS.NET.?3600000?A?193.0.14.129 ??
- ; ??
- ;?operated?by?IANA ??
- ; ??
- .?3600000?NS?L.ROOT-SERVERS.NET. ??
- L.ROOT-SERVERS.NET.?3600000?A?198.32.64.12 ??
- ; ??
- ;?housed?in?Japan,?operated?by?WIDE ??
- ; ??
- .?3600000?NS?M.ROOT-SERVERS.NET. ??
- M.ROOT-SERVERS.NET.?3600000?A?202.12.27.33 ??
- ;?End?of?File ??
- ??
五:運行Bind程序,如下方式加載配置文件啟動,加上調試信息參數:
如果運行結果最后一行顯示Running
表明安裝并啟動成功。
最后需要注意的內容是不要忘了是否真正的開啟服務器端口(以下是named.conf文件中端口的設置語句,可以看到端口號是 53:telnet x.x.x.x 53)
當然也可以用:nmap localhost ,沒有yum安裝,這種小工具問題不大用yum來做。
yum install nmap
Total download size: 2.3 M
Installed size: 7.5 M
Is this ok [y/N]: y
Downloading Packages:
root@192.168.225.128:/usr/local/named# nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-18 03:09 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000033s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 994 closed ports
PORT???? STATE SERVICE
22/tcp?? open??ssh
53/tcp?? open??domain
80/tcp?? open??http
111/tcp??open??rpcbind
3306/tcp open??mysql
9000/tcp open??cslistener
端口號是 53就是DNS Bind的端口。
六:停止及啟動:
root@192.168.225.128:/usr/local/named# ps aux|grep name
root???? 19024??0.0??1.2??10624??6216 pts/0????T????03:00?? 0:00 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
root@192.168.225.128:/usr/local/named# kill -9 19024
root@192.168.225.128:/usr/local/named# ps aux|grep name
[2]+??已殺死?????????????? /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
七:本機測試,外部機器測試是否dns生效:
vi /etc/resolv.conf
加上,去掉注釋其他Dns的Ip值:
nameserver 192.168.225.128
啟動Dns后,清楚Bind服務器上的Dns緩存:
root@192.168.225.128:/usr/local/named# ./sbin/rndc flush
root@192.168.225.128:/usr/local/named# ping www.51test.com
PING www.51test.com (192.168.225.128) 56(84) bytes of data.
64 bytes from 192.168.225.128: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 192.168.225.128: icmp_seq=2 ttl=64 time=0.058 ms
八:將服務設置為開機自啟,把named 添加到啟動項,隨操作系統一起啟動即可:
但是,我們現在是源碼的安裝,So,得這樣子喔。
修改來自Apache里的啟動shell(參看一下自啟動的標準),也可以不用修改,直接如下也成,內容如下:
1)保存為/etc/init.d/dns
腳本執行權限添加:
2)chmod -R a+x /etc/init.d/dns??//env: /etc/init.d/dns: 權限不夠 ,必須給加上。
3)把腳本拷貝至/etc/init.d/目錄下,執行命令:
ln -s /etc/init.d/dns /etc/rc.d/rc3.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc4.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc5.d/S61dns
再執行:
chkconfig --add dns??//解釋:相當于Windows下的自動啟動服務,特別要注意:chkconfig –add dns的時候,出現dns服務不支持chkconfig。
如果想讓服務支持chkconfig,必須定義服務的啟動級,啟動優先級,關閉優先級,還有描述,如上,必須得加上描述等。
chkconfig --levels dns345 on //也成
開機啟動設置完畢:
service dns start
-----------------------------------------------
下次一開機也就會運行這個腳本,以啟動自己定義的Dns服務器。
- reboot ??
啟動后,查看是否自己就啟動了呢?如下:
- root@192.168.225.128:~#?ps?aux|grep?named ??
- root??????1272??0.0??1.1??10232??5680??????????S????05:20???0:00?/usr/local/named/sbin/named?-gc?/usr/local/named/etc/named.conf ??
- root??????2039??0.0??0.1???5956???756?pts/0????S+???05:22???0:00?grep?named ??
果然,又啟動起來了,大功告成,整完收工。
Dns服務器從安裝到調試配置并測試完成,Eof。Write and Opt??By:jackxiang 2012/06/17 20:30:00
后來,我自己配置了一個新的域名:naimanqi.com.cn ,我的Linux機器IP是:192.168.1.105
修改配置文件:
1)共用如下:
- options?{ ??
- ????????Directory?"/usr/local/named"; ??
- ????????Pid-file?"named.pid"; ??
- ????????Allow-query?{?any?;}; ??
- ????????Dump-file?"/usr/local/named/data/cache_dump.db"; ??
- ????????Statistics-file?"/usr/local/named/data/named_stats.txt"; ??
- }; ??
- 2)添加如下兩個正向解析和反向解析的配置文件: ??
- vi??/usr/local/named/etc/named.conf ??
- ??
- zone?"naimanqi.com.cn"?{ ??
- ??????type?master; ??
- ??????file?"naimanqi.com.cn.zone"; ??
- };zone?"1.168.192.in-add.arpa"?IN?{ ??
- ????????type?master; ??
- ?????????file?"1.168.192.in-add.arpa"; ??
- }; ??
3)反向解析文件:
- vi?/usr/local/named/1.168.192.in-add.arpa ??
- $TTL????86400 ??
- @???????IN??????SOA?????naimanqi.com.cn.??root.naimanqi.com.cn.??( ??
- ??????????????????????????????????????1997022700?;?Serial ??
- ??????????????????????????????????????28800??????;?Refresh ??
- ??????????????????????????????????????14400??????;?Retry ??
- ??????????????????????????????????????3600000????;?Expire ??
- ??????????????????????????????????????86400?)????;?Minimum ??
- @?????????IN??????NS??????naimanqi.com.cn. ??
- 128???????IN??????PTR????www.naimanqi.com.cn. ??
- 128???????IN??????PTR????admin.naimanqi.com.cn. ??
4)正向解析的文件:
- vi??/usr/local/named/naimanqi.com.cn.zone ??
- ??
- $TTL?86400 ??
- @????????IN????????SOA????????naimanqi.com.cn.??root.localhost?( ??
- ????????????????????????2?;?serial ??
- ????????????????????????28800?;?refresh ??
- ????????????????????????7200?;?retry ??
- ????????????????????????604800?;?expire???????? ??
- ????????????????????????86400?;?ttl ??
- ????????????????????????) ??
- ????????IN??????NS??????naimanqi.com.com. ??
- ??
- ?????????IN??????A???????192.168.1.105 ??
- www??????IN??????A???????192.168.1.105 ??
- admin?????IN??????A??????192.168.1.105 ??
注意這一行:??????????IN??????A?????? 192.168.1.105
這個目的是把瀏覽器訪問:naimanqi.com.cn這個域名也給解析到IP: 192.168.1.105上來,跟在后面的www??IN??????A?????? 192.168.1.105 這個是對www解析的,其實它是一個二級域名和admin 這種二級域名是一個意思:admin???? IN??????A??????192.168.1.105 。。。EOF。
最后,可以這樣玩這個DNS,這個CentOs6.3的Linux 不是建立在這個NAT下的嘛,后修改為Bridge(橋連),這樣后,反正是在一個網段內(路由器下),把自己外網的這臺Windows下的機器的DNS由192.168.1.1修改為:192.168.1.105,這樣既可以調試剛才配置的內部DNS進行調試,也可 以訪問外網,為什么呢?是因為:
- C:\Documents?and?Settings\Administrator>nslookup?justwinit.cn ??
- DNS?request?timed?out. ??
- ????timeout?was?2?seconds. ??
- ***?Can't?find?server?name?for?address?192.168.1.105:?Timed?out ??
- ***?Default?servers?are?not?available ??
- Server:??UnKnown ??
- Address:??192.168.1.105 ??
- ??
- Non-authoritative?answer: ??
- Name:????justwinit.cn ??
- Address:??72.46.128.86 ??
是因,內部DNS沒有找到那個地址后,它自動轉給上一級DNS去了,后得到那個外部網站的IP地址了。但修改為NAT后,好像啟動Centos里的DNS后,再在Windows上修改IP為橋連后的IP好像DNS解析不了,在Linux自己修改 /etc/resolve.conf后是可以的,所以,建議用橋連方式來開發,少用NAT方式,這樣可以在一個路由器下的電腦都可以配置上這個Dns來訪問該網站和開發網部(samba),很是方便,而DNS設置后,如果沒有這個網站在內網,它便會訪問外網,這種機制也是很好的