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