DNS服务器的配置与应用: BIND9 的安装与配置
3. BIND9 的安装与配置
3.1 bind简介
BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括
- 域名服务器 (named)
- DNS解析库函数
- DNS服务器运行调试所用的工具
是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,
按照ISC的调查报告,BIND是世界上使用最多最广泛的域名服务系统。不论你的邮件服务器,WEB服务器或者其他的services如何的安全可靠,DNS的故障会给你带来用户根本无法访问这些服务。
BIND,也是我们常说的named,由于多数网络应用程序使用其功能,所以在很多BIND的弱点及时被发现。主要分为三个版本:
- v4
-
1998年多数UNIX捆绑的是BIND4,已经被多数厂商抛弃了,除了OpenBSD还在使用。OpenBSD核心人为BIND8过于复杂和不安全,所以继续使用BIND4。这样一来BIND8/9的很多优点都不包括在v4中。
- v8
-
就是如今使用最多最广的版本,其详细内容可以参阅 BIND 8+ 域名服务器安全增强
- v9
-
最新版本的BIND,全部重新写过,免费(但是由商业公司资助),也添加了许多新的功能(但是安全上也可能有更多的问题)。BIND9在2000年十月份推出,现在稳定版本是9.3.2。
3.2 软件的相关资源
官方网站: http://www.bind.com/
最新版本: 9.3.2 http://www.isc.org/sw/bind/bind9.3.php#download
帮助文档: http://www.isc.org/sw/bind/
配置文件样例: http://www.bind.com/bind.html
FAQ: http://www.nominum.com/getOpenSourceResource.php?id=6
3.3 配置环境
环境:GNU/Linux Debian/testing Linux 2.6.8-2-386 版本:bind9 9.3.2-2 测试域名:mydebian.org 测试ip: 192.168.102.47 主域名服务器
192.168.102.48 纯缓存域名服务器
192.168.102.49 辅助域名服务器
192.168.102.49 测试客户机
3.4 配置文件说明
安装bind9的命令:
~# aptitude update
~# aptitude install bind9 bind9-host dnsutils
配置文件族:
# ls /etc/bind/ -l
total 44
-rw-r--r-- 1 root root 237 Jan 16 2006 db.0
-rw-r--r-- 1 root root 271 Jan 16 2006 db.127
-rw-r--r-- 1 root root 237 Jan 16 2006 db.255
-rw-r--r-- 1 root root 353 Jan 16 2006 db.empty
-rw-r--r-- 1 root root 256 Jan 16 2006 db.local
-rw-r--r-- 1 root root 1507 Jan 16 2006 db.root
-rw-r--r-- 1 root bind 1611 Jan 16 2006 named.conf
-rw-r--r-- 1 root bind 165 Jan 16 2006 named.conf.local
-rw-r--r-- 1 root bind 672 Jan 16 2006 named.conf.options
-rw-r----- 1 bind bind 77 Aug 4 08:41 rndc.key
-rw-r--r-- 1 root root 1317 Jan 16 2006 zones.rfc1918
配置文件说明:
- named.conf
-
设置一般的named参数,指向该服务器使用的域数据库的信息源
- named.conf.options
-
全局选项
- db.root
-
根服务器指向文件, 由Internet NIC创建和维护, 无需修改, 但是需要定期更新
- db.local
-
localhost正向区文件,用于将名字localhost转换为本地回送IP地址 (127.0.0.1)
- db.127
-
localhost反向区文件,用于将本地回送IP地址(127.0.0.1)转换为名字localhost
其中,主配置文件/etc/named.conf的配置语句
命令 用法
acl 定义IP地址的访问控制清单
control 定义ndc使用的控制通道
include 把其他文件包含到配置文件中
key 定义授权的安全密钥
logging 定义日志写什么,写到哪
opitons 定义全局配置选项和缺省值
server 定义远程服务器的特征
trunsted-keys 为服务器定义DNSSEC加密密钥
zone 定义一个区
默认情况下, 内容如下:
include "/etc/bind/named.conf.options"; zone "." {
type hint;
file "/etc/bind/db.root";
}; zone "localhost" {
type master;
file "/etc/bind/db.local";
}; zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
}; zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
}; zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
}; include "/etc/bind/named.conf.local";
其中type项的值:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
在Debian环境中,options语句的配置内容, 被移至named.conf.options文件中:
options {
directory "/var/cache/bind"; // 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 and later use an unprivileged
// port by default. // query-source address * port 53; // If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder. // forwarders {
// 0.0.0.0;
// }; auth-nxdomain no; # conform to RFC1035 };
3.5 创建主域名服务器
a. 首先, 在在192.168.102.47机器上安全bind9
b. 使用编辑器,比如vi, 编辑配置文件/etc/bind/named.conf
加入如下内容
zone "mydebian.org" {
type master; //定义此区为主服务器
file "/etc/bind/db.mydebian"; 指定区资源文件的位置
}; zone "102.168.192.in-addr.arpa" {
type master; //定义此区为主服务器
file "/etc/bind/db.192"; //指定区资源文件的位置
};
c. 创建区资源文件:
创建区资源文件/etc/bind/db.mydebian内容如下
;
; BIND data file for local loopback interface
;
$TTL 604800
$ORIGIN mydebian.org.
@ IN SOA mydebian.org. root.mydebian.org. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; IN NS ns
IN MX 0 mail.mydebian.org.
@ IN A 192.168.102.47
ns IN A 192.168.102.47
www IN A 192.168.102.47
webserver IN CNAME www
mail IN A 192.168.102.47
ftp IN A 192.168.102.48
ns2 IN A 192.168.102.48
ns3 IN A 192.168.102.49
第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周.
第二行是$ORIGIN设定,说明下面的记录出自何处.请您加倍留意最后的一个小小数点"."
然后,第三行,是一个 SOA 记录的设定,在这里我们看到一个特殊字符 @ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN mydebian.org. 的内容,您可以写成 mydebian.org. 也可以用 @ 来代替。
假如这个文件前面没有定义 $ ORIGIN 的话, 那這个 @ 的值就以 named.conf 里的 zone .
接着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"mydebian.org." 和"root.mydebian.org."。我们平时使用的信箱通常是“user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 "root@mydebian.org."。
接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料:
Serial:其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!
Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。
Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。
Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期(
expired )。
Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。
请注意:SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在注解符号 “ ;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ; )开头,也不在 SOA 的 “ ( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几行用空白或 Tab 来缩排就可以了。
NS表明负责mydebian.org.这个域的Name Server是mydebian.org这台主机
MX记录标明发往mydebian.org域的邮件由mail.mydebian.org这台服务器接收
A记录标明了IP地址和域名之间的对应关系
接下来创建该区的反向映射资源文件
/etc/bind/db.192内容如下:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA mydebian.org. root.mydebian.org. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mydebian.org.
47 IN PTR mail.mydebian.org.
47 IN PTR www.mydebian.org.
47 IN PTR ns.mydebian.org.
48 IN PTR ftp.mydebian.org.
48 IN PTR ns2.mydebian.org.
49 IN PTR ns3.mydebian.org.
其中PTR记录用来解析IP地址对应的域名
d. 重启DNS服务
/etc/init.d/bind9 restart
此时查看系统日志,可了解BIND的启动情况,比如如下输出,则说明引导正常
tonybox:~# tail /var/log/syslog
Aug 14 08:36:45 localhost named[2792]: zone 127.in-addr.arpa/IN: loaded serial 1
Aug 14 08:36:45 localhost named[2792]: zone 102.168.192.in-addr.arpa/IN: loaded serial 2006080801
Aug 14 08:36:45 localhost named[2792]: zone 255.in-addr.arpa/IN: loaded serial 1
Aug 14 08:36:45 localhost named[2792]: zone localhost/IN: loaded serial 1
Aug 14 08:36:45 localhost named[2792]: zone mydebian.org/IN: loaded serial 2006080801
Aug 14 08:36:45 localhost named[2792]: running
Aug 14 08:36:45 localhost named[2792]: zone mydebian.org/IN: sending notifies (serial 2006080801)
Aug 14 08:36:45 localhost named[2792]: zone 102.168.192.in-addr.arpa/IN: sending notifies (serial 2006080801)
Aug 14 08:36:45 localhost named[2792]: client 192.168.102.47#1030: received notify for zone 'mydebian.org'
Aug 14 08:36:45 localhost named[2792]: client 192.168.102.47#1030: received notify for zone '102.168.192.in-addr.arpa'
e. 在客户机上的设置
# cat /etc/resolv.conf
search mydebian.org
nameserver 192.168.102.47
f. 测试:
使用nslookup 测试
tonybox2:~# nslookup
> set type=any
> mydebian.org
Server: 192.168.102.47
Address: 192.168.102.47#53 mydebian.org
origin = mydebian.org
mail addr = root.mydebian.org
serial = 2006080801
refresh = 604800
retry = 86400
expire = 2419200
minimum = 604800
mydebian.org nameserver = ns.mydebian.org.
mydebian.org mail exchanger = 0 mail.mydebian.org.
Name: mydebian.org
Address: 192.168.102.47
使用dig测试
tonybox2:~# dig @192.168.102.47 mydebian.org ; <<>> DiG 9.3.2 <<>> @192.168.102.47 mydebian.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41793
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;mydebian.org. IN A ;; ANSWER SECTION:
mydebian.org. 604800 IN A 192.168.102.47 ;; AUTHORITY SECTION:
mydebian.org. 604800 IN NS ns.mydebian.org. ;; ADDITIONAL SECTION:
ns.mydebian.org. 604800 IN A 192.168.102.47 ;; Query time: 31 msec
;; SERVER: 192.168.102.47#53(192.168.102.47)
;; WHEN: Mon Aug 14 09:16:27 2006
;; MSG SIZE rcvd: 79 tonybox2:~# dig @192.168.102.47 ftp.mydebian.org ; <<>> DiG 9.3.2 <<>> @192.168.102.47 ftp.mydebian.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63890
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;ftp.mydebian.org. IN A ;; ANSWER SECTION:
ftp.mydebian.org. 604800 IN A 192.168.102.48 ;; AUTHORITY SECTION:
mydebian.org. 604800 IN NS ns.mydebian.org. ;; ADDITIONAL SECTION:
ns.mydebian.org. 604800 IN A 192.168.102.47 ;; Query time: 22 msec
;; SERVER: 192.168.102.47#53(192.168.102.47)
;; WHEN: Mon Aug 14 09:16:41 2006
;; MSG SIZE rcvd: 83
反向查询
tonybox2:~# dig @192.168.102.47 -x 192.168.102.47 ; <<>> DiG 9.3.2 <<>> @192.168.102.47 -x 192.168.102.47
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21885
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;47.102.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
47.102.168.192.in-addr.arpa. 604800 IN PTR www.mydebian.org.
47.102.168.192.in-addr.arpa. 604800 IN PTR mail.mydebian.org.
47.102.168.192.in-addr.arpa. 604800 IN PTR mydebian.org. ;; AUTHORITY SECTION:
102.168.192.in-addr.arpa. 604800 IN NS mydebian.org. ;; ADDITIONAL SECTION:
mydebian.org. 604800 IN A 192.168.102.47 ;; Query time: 33 msec
;; SERVER: 192.168.102.47#53(192.168.102.47)
;; WHEN: Mon Aug 14 09:17:00 2006
;; MSG SIZE rcvd: 138
3.6 纯缓存域名服务器
192.168.102.48 为我们的dns 缓存服务器,首先, 在在192.168.102.48 机器上安全bind9, 在配置前我们用dig 进行测试
tonybox2:/etc/bind# dig @192.168.102.48 www.mydebian.org ; <<>> DiG 9.3.2 <<>> @192.168.102.48 www.mydebian.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 34137
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION:
;www.mydebian.org. IN A ;; Query time: 1844 msec
;; SERVER: 192.168.102.48#53(192.168.102.48)
;; WHEN: Tue Aug 8 12:05:17 2006
;; MSG SIZE rcvd: 34
修改named.conf.options文件
tonybox2:/etc/bind# cat named.conf.options
options {
directory "/var/cache/bind"; // 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 and later use an unprivileged
// port by default. // query-source address * port 53; // If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder. forwarders {
192.168.102.47; //主域名服务器的IP地址
}; auth-nxdomain no; # conform to RFC1035 };
然后再进行测试
tonybox2:/etc/bind# dig @192.168.102.48 www.mydebian.org ; <<>> DiG 9.3.2 <<>> @192.168.102.48 www.mydebian.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54332
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION:
;www.mydebian.org. IN A ;; ANSWER SECTION:
www.mydebian.org. 604800 IN A 192.168.102.47 ;; AUTHORITY SECTION:
mydebian.org. 604800 IN NS mydebian.org. ;; ADDITIONAL SECTION:
mydebian.org. 604800 IN A 192.168.102.47 ;; Query time: 44 msec
;; SERVER: 192.168.102.48#53(192.168.102.48)
;; WHEN: Tue Aug 8 12:05:47 2006
;; MSG SIZE rcvd: 80
所谓的 forwarder,就是当某一台 NS 主机遇到非本机负责的 zone ( slave zone 也属于本机负责的范围) 查询请求的时候,将不直接向 "." zone 查询而把请求转交给指定的 forwarder (一台或多台) 主机代为查询。
我们知道,当DNS服务器接到客户端主机的查询请求时,首先会检查这个查询是否属于本机管辖,否则将转向 "." zone 再逐级的查询下去,最后再把查询结果告诉客户端。
在这个过程之中,DNS服务器还会将查询到的结果存放到缓存中。只要缓存中的 TTL 没过期,在下次遇到同样查询的时候,就可以直接将结果响应给客户端,而无需再重复上次的查询流程。
如果DNS服务器上指定了forwarder,那这个DNS发现缓存中没有记录时,将不向 "." 查询,而是向 forwarder 送出同样的请求(转发),然后等待查询结果,即把逐级往下查询这个耗费精力的动作,交给 forwarder 负责。但无论这个结果是自己直接查询得来的,还是 forwarder 送回来的,DNS服务器都会保存一份数据在缓存中。
这样,以后的相同查询就快多了,这对于DNS所服务的 客户端而言查询效率会提高很多。
/var/named/named.ca
dig @a.root-servers.net . ns > /var/named/named.ca
3.7 辅助域名服务器
a. 192.168.102.49 为我们的dns 缓存服务器,首先, 在在192.168.102.49 机器上安全bind9,
b. 在主配置文件/etc/named.conf中加入如下内容:
zone "mydebian.org" {
type slave;
file "/etc/bind/slaves/db.mydebian";
masters {192.168.102.47;};
}; zone "102.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/slaves/db.192";
masters {192.168.102.47;};
};
type后面的值已经成为slave; 表示定义的是辅助域名服务器
file 后面也可以是别的文件名不必与主域DNS服务器的设置一样
masters 后为主域DNS服务器的IP地址, 可以是多个IP,型如
masters {ip1;ip2;ip3;};
c. 创建/etc/bind/slaves/目录
tonybox2:/etc/bind# mkdir slaves tonybox2:/etc/bind# chown bind.bind slaves
d. 重启dns服务
tonybox2:/etc/bind/slaves# /etc/init.d/bind9 restart
named进程第一次启动时,辅助域名服务器就下载主域名服务器的信息;辅助域名服务器根据主域名服务器的对应SOA记录规定的刷新时间间隔,去主域名服务器查询相关信息。
tonybox2:/etc/bind/slaves# ls -l
total 8
-rw-r--r-- 1 bind bind 410 2006-08-08 12:23 db.192
-rw-r--r-- 1 bind bind 430 2006-08-08 12:23 db.mydebian
查看 /etc/bind/slaves 目录,我门会发现已经从主域名服务器获取了相应的资源文件
如果用户bind对于/etc/bind/slaves目录没有写权限, 则查看 /var/log/syslog 会出现如下类似错误:
tonybox:~# tail /var/log/syslog Aug 8 12:30:09 tonybox2 named[3849]: zone mydebian.org/IN: Transfer started.
Aug 8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: connected using 192.168.102.15#1075
Aug 8 12:30:09 tonybox2 named[3849]: dumping master file: /etc/bind/tmp-VHTxU6CT5n: open: permission denied
Aug 8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: failed while receiving responses: permission denied
Aug 8 12:30:09 tonybox2 named[3849]: transfer of 'mydebian.org/IN' from 192.168.102.47#53: end of transfer
Aug 8 12:30:10 tonybox2 named[3849]: zone 102.168.192.in-addr.arpa/IN: Transfer started.
Aug 8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: connected using 192.168.102.15#1076
Aug 8 12:30:10 tonybox2 named[3849]: dumping master file: /etc/bind/tmp-dxbiD1JtTK: open: permission denied
Aug 8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: failed while receiving responses: permission denied
Aug 8 12:30:10 tonybox2 named[3849]: transfer of '102.168.192.in-addr.arpa/IN' from 192.168.102.47#53: end of transfer
DNS服务器的配置与应用: BIND9 的安装与配置的更多相关文章
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- 高性能web服务器(热死你)Resin Linux的安装、配置、部署,性能远超Nginx支持Java、PHP等
高性能web服务器(热死你)Resin Linux的安装.配置.部署,性能远超Nginx支持Java.PHP等 一. 安装resin 1. 下载resin: 下载地址:http://cauch ...
- Linux服务器架设篇,DNS服务器(三),正反解区域的配置
一.大体架构 DNS服务器其实只有一个"真正"的配置文件,即 /etc/named.conf .其他的配置文件都是依据此配置展开的.每个域都需要两个配置文件,即正解文件和反解文件. ...
- HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)
这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...
- 零基础配置Hadoop集群——Ambari安装及配置详解
1. 准备工作 1.1. 系统环境 主机列表: IP地址 HostName 描述 192.168.610.153 ambari.server Ambari服务器 192.168.10.152 had ...
- Ubuntu14.04安装配置web/ftp/tftp/dns服务器
目录: 1.安装ftp服务器vsftpd --基于tcp,需要帐号密码 2.安装tftp服务器tftpd-hpa,tftp-hpa --udp 3.web服务器--使用Apache2+Mysql+PH ...
- 如何配置DNS服务器(局域网——域名指向某个IP地址)
单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器. 如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器. 在“操作”菜单上 ...
- 【转】在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器
转自: https://zh.codepre.com/centos-2700.html 前言 本指南描述了在CentOS 8 / RHEL 8 Linux上配置BIND DNS服务器所需的步骤.在Ce ...
- Centos7.6 安装DNS服务器
Centos7 安装 DNS 服务器 1 需求 需要在内部局域网安装一台域名服务器,让内网的机器通过此域名服务器解析IP地址: 2 设备 A TPLink路由器,型号 TL-WDR6500: B 准备 ...
随机推荐
- Java for LeetCode 166 Fraction to Recurring Decimal
Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
- 【JAVA、C++】LeetCode 007 Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 解题思路:将数字 ...
- 越狱后想禁用Spotlight
如果你的是ios7越狱后不想用Spotlight搜索功能,大老板源的NoSpot ios7可轻松帮你实现.亲测可用……………………
- AU版有锁机的福利,704越狱彻底解决+86问题,完美IM/FT,重启不掉APN设置
http://bbs.25pp.com/thread-172881-1-1.html 串号99的是au版 串号013的是sb版 44050 AU为 找到咱们SB版的文件,为44020 http:/ ...
- cf158B(水题)
题意:1辆出租车可以坐4人,已知k组人每组ki(ki<=4)人去坐车,要求同组人坐同一辆车,求最少需多少辆车.. 4人组的单独算,1人组和3人组一起,如1多余再将1和2匹配即可.... 代码如下 ...
- [转]使用VC/MFC创建一个线程池
许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生.还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息.线程池可以让你更有效地使用线程,它为你的应用程序提供一个由系统 ...
- rsync --exclude 参数
/usr/bin/rsync -vr --exclude=".svn" --exclude="temp" --delete /alidata/www/pro/e ...
- Sublime Text 插件 & 使用技巧
20 个强大的 Sublime Text 插件http://blog.jobbole.com/58725/ 12个不可不知的Sublime Text应用技巧和诀窍http://segmentfault ...
- PHP项目:如何用PHP高并发检索数据库?
对于抢票.秒杀这种业务,我说说自己对这种高并发的理解吧,这里提出个人认为比较可行的几个方案: 方案一:使用队列来实现 可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧 比如有1 ...
- hadoop系列讨论
生产环境下cloudera的cdh版本更受欢迎,但是貌似cloudera对于YARN的开发力度不是很突出,所以在apache与cdh版本选择的时候,大家是怎么考虑的? 主要关注生产环境下的运维成本,期 ...