linux的命令名和它的選項名稱, 必定是 某個單詞的 簡寫, 因此 你用不着 去刻意去記憶的. 真的知道了/記住了 對應的單詞, 纔會永遠的 記得住! php
named域名服務 , 他的包名稱叫 bind: Berkeley internet named daemon. 由於有不少 named 的軟件, bind只是其中的一個.
配置和啓動文件的名稱 都是 named...
其實進行域名名稱 解析, 還有兩種方式, 一是 hosts, 另外一個是 NIS. 之前的解析方式, 還真的是經過 hosts文件 來實現的 當你要上網的時候, 首先就是 到一個 服務器上去 手工下載/ 更新 hosts文件???html
isc.org是 internet system/software consortium: 因特網軟件(系統??)聯盟 con'sortium 聯盟, 財團linux
設置機器的dns服務器地址, 的命令, 不是 dns... , 而是 nameserver 1.1.1.1
第一次去挖掘named.ca文件內容的時候, 須要指定一個 遠程的 ns服務器, 好比: 202.98.96.69, 當配置好本地dns服務器, 做爲 "生產dns服務器"時, 就要指定 127.0.0.1 , 若是是局域網內的其餘機器, 就要指定 本地局域網內的 這臺生產dns服務器的 ip地址..c++
windows上的 共享,使用的協議是ms開發的 叫 CIFS: common internet filesystem. 通用internet 文件系統. 能夠被 linux直接 mount. mount的時候要指定 類型是 -t cifs 就能夠了.算法
Windows機器上 有幾個 默認的 共享 包括 幾個分區的共享, 好比: C$, D$, 還有一個 IPC$ 共享數據庫
linux的程序包rpm 就相似 於win中的 exe程序文件, 是已經編譯好了的文件. 所以, 要查看某個軟件是否安裝了, 就是查看 這個 對應的rpm包是否安裝了.
dnf是一種包管理軟件, 由於 linux中 爲了不包和包之間的 功能的重複 開發, 因此 就把 你們都要使用的 功能 單獨拿出來, 造成 一個包, 這樣之後你們使用時 就只依賴這一個包就好了.編程
DHCP是基於255.255.255.255的廣播機制進行的, dhcp不能穿越路由器,因此是 局域網內的協議, 所以, 在一個 lan中, 只能有一個 dhcp, 不然就會發生衝突!vim
dhcp是由 internet 軟件聯盟: isc.org
提供的,windows
經過查看 /var/log/ messages: 這個message是複數 因此有 複數後綴s緩存
dhcp的啓動命令, 是 /usr/bin/dhcpd 這個命令文件, 不是 用 service dhcp 來啓動的.
httpd, vsftpd 主要是 遠程網絡 進行共享和鏈接的, 對於 局域網內的 文件共享, 主要 是經過 smb / samber 協議 來實現的 samber主要 是用來 讓windows 的機器 來 對 linux 主機 進行 文件共享的, 由於對於 linux 共享win的文件來講, 能夠直接 mount -t cifs 就好了.
而另外一個 共享程序, nfs : network filesystem 協議, 則 只能 是用在 linux主機和 linux主機進行文件共享. win的主機 不能使用 nfs共享 ??
/usr/local/named/sbin/named -g 會列出 named運行的 全局 (global) 信息, 好比有多個worker thread, 有多少個 udp listener, 載入的配置文件是哪一個, 結果怎樣. 用 named -v | -V 能夠 看到更多的 信息.
關於多個目錄的操做
cat foo.txt | more
, 而實際上, more 還能夠直接 more 分屏顯示 文件: more foo.txt
因此 , 之後只是在 沒有文件, 只有控制檯的命令輸出 使用分屏時, 才使用 管道!echo 1.1.1.1 > /etc/resolv.conf
每次 都用 徹底覆蓋的方式.dig -t NS .
找到一個 點根地址後, 要 將 resolv.conf 中的 nameserver 的地址 換成 那個 第一次查出的 點根 ip地址 . 必定要 直到 列出 所有的 13個 點根dns服務器 的地址, 就是 從 A.ROOT-SERVERS.NET. 一直到 M.ROOT-SERVERS.NET.運行 rndc-confgen命令 , 重定向到 > /etc/rndc.conf , 就生成 /etc/rndc.conf, 按照文件中所說的那樣, 要把 rndc.conf 文件後面的 部分的內容 追加到 named.conf中.
這個實際上, 是生成了 rndc.key 用來讓 rndc和named 通訊聯絡的 tcp/ip套接字, 而後 將 key "rndc.key" {...} controls ....
中的key內容 拷貝到named.conf中, 這樣 named.conf和 rndc.conf中 就都有了 相同的 共享的 密鑰key了.
配置 好rndc.conf 後, 先直接 運行rndc , 而後 運行 named, 就好. 監視 /var/log/messages 和 ps -aux | grep named ...
myzone.com.
了, 表示 到com後面就結束了.rndc reload
就能夠了.whereis 和which的區別, 從他們的語義上來就能看出: whereis說的是, 在哪裏, 就是問你 某個命令 /文件, 存在於哪些地方, 即找到/顯示這個命令及相關內容的存放位置(whereis 根 $PATH 沒有什麼關係的) ; 而which 指的是 在當前的可執行命令環境中, 即$PATH顯示的目錄中(注意 $PATH不包含 目錄的子目錄) 是哪個, 指的是, 若是一個命令 有alternatives, 那麼當前直接執行 某個命令 使用的是 哪個(幾個中的哪個?)
more和cat 的區別, 都是打印, 之後的使用方法是: 若是不顯示行號, 就都用more, 若是要顯示行號, 才使用 cat -n.. 同時cat還有 鏈接 的 含義和 用法.
### 因此說, 不是輸入 rndc-confgen 沒有反應, 而是由於隨機數 要從 /dev/random 僞隨機設備來 產生, 而是由於 產生隨機字符的速度比較慢而已!
配置 /etc/rc.conf 文件, 告知內核 使用特定中斷做爲隨機事件的源。你能夠經過在/etc/rc.conf中設置rand_irqs來使之永久生效。 /etc/rc.conf rand_irqs="3 14 15"
===========================
他們是產生 隨機數字節流的 僞設備 文件. 能夠產生永不爲空的 隨機數. 許多加密/解密的應用 程序如 ssh, ssl等 都會用到它, 還有好比這裏的 rndc-confgen要產生的隨機數key文件也要用到它.
其中 /dev/random依賴於系統的中斷, 當中斷數量不夠的時候, 會阻塞掛起...而/dev/urandom則不依賴於系統的中斷, 因此前者產生的隨機數較慢, 可是 前者的字節流數據的隨機性更好.
od是 octal ( [2ktl] 八的; 八進制的... ) dump的意思. 是用來 顯示一些特殊內容和格式的文件內容的 . 他默認的是用 octal 來顯示的, 可是還能夠用 -d -x(十六進制)來查看
好比 executalbe 可執行文件, 直接用more / cat等來查看會顯示亂碼或不顯示, 可是能夠用 od -x轉換後查看..
dd 是 data dump? 的意思, 是 將數據 進行 copy and convert . 主要的參數有 : if=/dev/cdrom, of=./cdrom.iso bs=100M count=1 (bs是說一次讀入寫出的 字節數 等於 數字加單位,如512K, 100M等, count是說轉換dump 多少塊/多少次) 好比 dd if=/dev/zero of=./zero.txt bs=1M count=1
特殊設備文件 ? 在linux中, 全部的設備 都看成是 文件來看待的, 好比硬盤是 看成block 塊文件的, 鍵盤鼠標是看成 character字符設備看待的. 還有一些 特殊功能的 "僞" 設備文件, 用來產生特殊字符或實現特殊功能的, 好比: /dev/zero(產生空字符 0 字符,但並無 真實的 字符0,或空格) , /dev/random 用來產生隨機數的... /dev/null是無底洞 設備, 能夠存聽任何多的任何內容, 且永遠不會被撐着...
linux中, 能夠直接使用 命令 : CDRECORD 將 iso文件 刻錄到 cd盤 或 dvd盤均可以, 不用再找其餘刻錄軟件了, 就一條命令:
cdrecord -v -eject speed=8 dev=0,3,0 driveopts=burnfree test.iso
通常不用指定 speed, 刻錄倍速, 刻錄機會自動檢查最佳的 刻錄倍速
刻錄設備, 使用 cdrecord --scanbus
來查看可用的 刻錄機設備.
================
[root@localhost named]# grep rndc /etc/services rndc 953/tcp # rndc control sockets (BIND 9) rndc 953/udp # rndc control sockets (BIND 9) [root@localhost named]#
# Start of rndc.conf key "rndc-key" { algorithm hmac-md5; 注意 只有 純粹的字符串才加引號, 若是不是 則不能加引號, 好比這裏, 還好比 在named.conf 中的 type 的 master, hint等. secret "Ak/Nf2ERn+H4yOrzji6b/A=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; // 這裏要注意, 配置文件的格式 是很嚴格的: 好比 每一行 / 每一條語句 後面都要加上 分號, 最後的 大括號後面 也要 加上 分號. # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "Ak/Nf2ERn+H4yOrzji6b/A=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf
killall -9 named
而後 ,再 從新 啓動 named 服務. 直到 使用 host可以解析 外網了, 那麼就表示 本地dns服務器配置成功了.有兩個參數, 能夠 更正 wget的默認設置,
-P --directory-prefix 能夠指定 wget 下載的 路徑, 默認的下載路徑是 當前使用 wget的 目錄, 這個一般不太合適, 你能夠本身從新指定
-O ( --output-document )能夠從新指定 下載的文件的名稱, 有些站點若是地址是一個目錄, 這時即便你得到的資源是一個 tar.gz文件, 它也默認保存爲index.html 這個就很差了, 並且下載完成後, 很容易忘記更更名稱, 從而形成 誤解和誤操做!!
=======================
hostname 是一個 顯示主機名的命令, 其實它還有 不少選項:
-a 顯示別名alias
-i 顯示對應的 ipaddress
-I 顯示 更多的本機ip, 即網卡的ip地址
-d 顯示他的域名
-f 顯示徹底限定域名
因此 127.0.0.1 localhost.localhostdomain localhost
都是 機器名, 後面的那個 localhost 是機器的別名.
dns服務器分爲: master dns 服務區 + slave dns 服務器 + 緩存服務器
named-checkconf 檢查配置文件是否正確,
named-checkzone 是 檢查區域文件的配置是否正確的命令: 格式是 named-checkzone "域名的名稱" "域名的文件名", 好比: named-checkzone "localhost" /usr/local/namedvar/localhost.zone
(這些域名 和 域名文件名 能夠加引號, 也能夠不加引號)
若是配置有錯誤, 會報告出來, 而後就能夠 照着 去修改.
comment(s): 主要有三種意思: 註釋/註解, 好比編程語言中的註釋; 評論, 評語; 最後還有一個意思是: 意見.
好比: 徵求意見: Request For Comments: RFC 能夠叫作 "意見徵求書, 意見徵求稿"
RFC是internet機構的engineers和計算機科學家制定的一些標準和規範. 你能夠對它提出建議等... 好比: dns的 zone文件的格式不是由BIND制定的,而是DNS標準文檔制定的(見RFC1035)
$
開頭, 而不是以 @ 開頭的localhost.
定義 區域 zone "localhost" IN {...} , 而後 在 區域文件中 這個 @ 就等於 localhost.
參考: www.phpfans.net/ask/fansa1/1021757816.html 在正向中, @ 就表明 home. 算是根域吧 在反向中, @ 就表明 123.168.192.in-addr.arpa. 這個。 因此在使用中,要不就用@ 省寫代替,要不就統一寫完整的。
[root@localhost named]# sbin/named-checkzone localhost var/localhost.zone zone localhost/IN: loaded serial 1 OK [root@localhost named]# more var/localhost.zone $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( 1 3H 15M 1W 1D ) IN NS @ IN A 127.0.0.1 [root@localhost named]#
host localhost 或 host localhost. 可以正確地解析出 127.0.0.1, 可是 使用 host localhost.localhost 就會報錯?
這是由於, @ 就等於 localhost.
注意這裏的主機名就是localhost, 由於無論是SOA 後面的主機名稱, 仍是 下面的 A記錄 的 localhost. 都是 帶點號結尾的localhost. 記錄
, (點號表示 結束, 表示 這個主機名稱 或域名 是 fqdn, 即 主機名 就是 localhost了, 後面不能/不須要再加上 .localhost這個域名了. 也就是說, 這裏的 localhost. 就至關於 完整的 www.baidu.com 了) 因此...http://www.home., www.foodom.com. , localhost.
, 也可使用 相對的 , 不完整的 主機名或域名 這時的主機名或域名 就會自動的 在 後面 加上 當前域名, 好比: 管理員root 就等於: root.foodom.com. 主機: locolhost 就等於 localhost.foodom.com. 注意這裏的localhost後面沒有帶點. www就等於 www.foodom.com.
=============================
解開註釋的方法, 有兩種, 一種是在vim中, 解開: 這個能夠支持 $-1 的行號的寫法, 好比: : ., $-1 s/^#\ //
另外一種方法是 使用 sed , 可是在 sed 命令中 是 不支持 $-1 的寫法的: 好比: sed -i -e '10, $-1s/^#\ //' ./etc/named.conf
這時會提示 說 - character 不合法...
[root@localhost named]# host www.localhost www.localhost has address 192.168.0.104 [root@localhost named]# host www.localhost. www.localhost has address 192.168.0.104 [root@localhost named]# more var/localhost.zone $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( 1 3H 15M 1W 1D ) IN NS @ IN A 127.0.0.1 /// 是由於在這裏就隱含了 localhost 這個域名/主機名??? www IN A 192.168.0.104 [root@localhost named]#
2017121001
這樣, 正好 若是是後面的日期 修改了的, 那麼 後面的 日期數字 也要比 前面的日期數字大~dig -t A www.foodom.com
@ 1D IN SOA @ (這裏的@ 表示 一個 根域名稱同名的 主機名) root ( 2017101001 3H 15M 1W 1D) IN NS ns (或@) IN MX 10 mail IN A 10.10.1.254 ns IN A 10.10.1.254 (10.0.0.1) 能夠是本身, 也能夠是別的主機, 根據具體狀況. 若是用的是本身, 那麼 上面的 NS 和 MX 就能夠寫本身 , 即: @ NS是指明 這個區域 的 名稱服務器, 就是用 的ns主機, 這裏用的是 省略的名稱, 因此 在後面必定補上 ns的記錄 entry 條目. mail 是指明這個區域的 郵件服務器, 就是用的 mail主機, 完整的名稱 是: mail.foodom.com. 在後面也要補上條目
search foodom.com
表示解析主機的時候, 能夠在後面自動的加上 這個 search的域名...SOA, 其中的 s 表示的是 section . 即SOA = section of authority 受權區域, 因此 SOA的後面是 一個 域! 而不是主機???
;; AUTHORITY SECTION: foodom.com. 86400 IN NS ns.foodom.com.
DNS 自己的端口爲53 UDP是用來作DNS解析的。通常域名提供商,提供的dns服務器,都是走udp53端口的。
搭建dns服務器,提供域名解析,也是一樣作udp53端口。若是端口沒開放,或是被其餘內容給佔用了,都會致使域名解析不正常。
而機子的 953 端口, 是提供給 rndc來 鏈接 dns的
[root@localhost named]# sbin/rndc reload rndc: connect failed: 127.0.0.1#953: connection refused [root@localhost named]# [root@localhost named]# cat /etc/services | grep rndc rndc 953/tcp # rndc control sockets (BIND 9) rndc 953/udp # rndc control sockets (BIND 9) [root@localhost named]# 這個953 和 好記: 一個是bind 9的 dns版本, 而後 他控制的 是 dns的運行端口 53. 就是這兩個數字的 結合: 9 + 53 = 953
;; ANSWER SECTION: dig -t SOA .... foodom.com. 86400 IN SOA foodom.com. root.foodom.com. 2018011001 10800 900 604800 86400 ;; ANSWER SECTION: dig -t A .... www.foodom.com. 86400 IN A 1.1.1.10
=================================================
0.168.192.in-addr.arpa .zone
文件的配置 跟正向區域配置的區別和不一樣配置 反向區域的 時候, 裏面的 全部關於 主機名稱的 地方 就 都不 能 省略了, 由於你省略的話, 默認的就是要加上 0.168.192.in-addr.arpa.
後綴, 很明顯這個是要不得的, 好比, 管理員 要用 root.localhost. 而不能只是寫root, 後面的 NS, MX等 都要 寫成 正確的 完整的 主機名稱, 如: ns.localhost. mail.localhost. 而不能寫成 @ 等等.
可是 SOA後面的 區域 能夠用 @ 來表示, 所以, 再一次說明了 SOA 後面的 @ 表示的 是 "受權的區域", 不是什麼管理主機. 是區域, 所以, 老是能夠用 @ 來表示的
特別注意的 是, 就是 反向區域中的 IN類型是 PTR, 再也不是 A了.
;; QUESTION SECTION: //提問區域 ;1.0.0.127.in-addr.arpa. IN PTR ;; ANSWER SECTION: // 應答區域 1.0.0.127.in-addr.arpa. 86400 IN PTR localhost. ;; AUTHORITY SECTION: 0.0.127.in-addr.arpa. 86400 IN NS localhost. ;; ADDITIONAL SECTION: localhost. 86400 IN A 127.0.0.1
[root@localhost named]# host 127.0.0.1 1.0.0.127.in-addr.arpa domain name pointer localhost.
[root@localhost named]# dig -x 127.0.0.1 // 使用 -x選項 後面跟 正常的ip地址 或者 使用 -t ptr類型, 可是後面要跟 完整的 反向地址域名 [root@localhost named]# dig -t ptr 1.0.0.127.in-addr.arpa
關於反向區域的命名: 域名 必須嚴格的 寫做 : 0.168.192.in-addr.arpa, 可是 區域文件的名稱 一般仍是寫做 正向ip區域的zone: 好比: 192.168.0.zone
[root@localhost named]# sbin/named-checkzone "0.168.192.in-addr.arpa" var/192.168.0.zone var/192.168.0.zone:1: no TTL specified; using SOA MINTTL instead // 當沒有在 區域文件中 明顯地指定 TTL的時候, 就是用 soa中的 最小ttl minttl來代替 zone 0.168.192.in-addr.arpa/IN: loaded serial 2018101001 OK [root@localhost named]# more var/192.168.0.zone @ IN SOA bardom.com root.bardom.com. ( 2018101001 3H 15M 1W 1D ) IN NS ns.bardom.com. 254 IN PTR ns.bardom.com. 1 IN ptr www.bardom.com. 2 in ptr ftp.bardom.com. // **這裏使用的是 小寫的 in, 小寫的ptr**// 可是 named-checkzone 是 ok的! [root@localhost named]#
[root@localhost named]# dig -t ptr 254.0.168.192.in-add.arpa ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t ptr 254.0.168.192.in-add.arpa ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 63773 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;254.0.168.192.in-add.arpa. IN PTR /// 這裏 沒有看到 answer section, 是由於 : 上面的 in-add 寫錯了, 正確 的 應該是 in-addr. ;; AUTHORITY SECTION: arpa. 10733 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018011600 1800 900 604800 86400