公司有一测试环境,上面跑着线上的各个网站的线下版本(即上线之前在本地所做的测试)。起初,我们在配置该环境时,访问每个网站均采用独立IP的形式进行。这样一来,仅仅就这一个服务器上就占用了内网的10几个IP,再加上办公室同事的正常使用IP,IP就不足了(得再划分子网,麻烦)。现在想配置一台DNS服务器,不同的域名解析到同一个IP,达到节约IP资源的目的,此其一。其二,我也想该环境使用同线上一样的域名环境。但是有一个要求,仅仅测试部童鞋在使用特定域名时,解析到本地相应的IP,反之,解析到公网IP。同时,也希望该DNS服务器承担内网用户上网时解析域名的角色。

下面来看看整个实现的过程:

一、安装过程

由于DNS服务器易受***,所以安全性很重要。我们从dns的官网上下载最新stable版的bind98来做这个。(相对安全而言,本人还是比较青睐FreeBSD一点)。

bind98的下载地址:

  1. ftp://ftp.isc.org/isc/bind/9.8.0-P4/bind-9.8.0-P4.tar.gz

将其下载到本地的目录中,编译安装即可

  1. # tar xf bind-9.8.0-P4.tar.gz
  2. # cd bind-9.8.0-P4
  3. # ./configure --prefix=/usr/local/named --enable-epoll --enable-threads  --enable-largefile

编译参数的说明:

  1. --enable-threads      enable multithreading
  2. --enable-largefile      64-bit file support
  3. --enable-epoll          use Linux epoll when available [default=auto]

这样运行configure完之后,会有这样的提示

  1. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
  2. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
  3. WARNING                                                                 WARNING
  4. WARNING         Your OpenSSL crypto library may be vulnerable to        WARNING
  5. WARNING         one or more of the the following known security         WARNING
  6. WARNING         flaws:                                                  WARNING
  7. WARNING                                                                 WARNING
  8. WARNING         CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and         WARNING
  9. WARNING         CVE-2006-2940.                                          WARNING
  10. WARNING                                                                 WARNING
  11. WARNING         It is recommended that you upgrade to OpenSSL           WARNING
  12. WARNING         version 0.9.8d/0.9.7l (or greater).                     WARNING
  13. WARNING                                                                 WARNING
  14. WARNING         You can disable this warning by specifying:             WARNING
  15. WARNING                                                                 WARNING
  16. WARNING               --disable-openssl-version-check                   WARNING
  17. WARNING                                                                 WARNING
  18. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
  19. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

这是因为configure时默认启用了这个参数所致

  1. --enable-openssl-version-check
  2. Check OpenSSL Version [default=yes]

你可以将其设置为NO,或者升级本地的openssl

顺便看一下本地的openssl版本吧

  1. # openssl version
  2. OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

让我们来升级它吧,最新的openssl版本下载地址

  1. http://www.openssl.org/source/openssl-1.0.0d.tar.gz

接下来,

  1. # tar xf openssl-1.0.0d.tar.gz
  2. # cd openssl-1.0.0d
  3. # ./config -fPIC --prefix=/usr enable-shared
  4. # make && make install

再看一下openssl的版本

  1. # openssl version
  2. OpenSSL 1.0.0d 8 Feb 2011

oh,yeah,成功升级至openssl 1.0.0d,之后再次在bind目录下configure就没有上面的warning了

以上都做完了之后,最后make && make install,这样bind98就算安装完毕了。

二、配置bind98

准备一个用户来运行bind98

  1. # groupadd named
  2. # useradd named -g named -s /sbin/nologin -d /dev/null -M -c "DNS server"

生成rndc.conf文件

  1. # rndc-confgen >/usr/local/named/etc/rndc.conf

修改rndc.conf如下

  1. key "rndc-key" {
  2. algorithm hmac-md5;
  3. secret "pdz01kiIZhCDgYTDEr2YXA==";
  4. };
  5. controls {
  6. inet 127.0.0.1 port 953
  7. allow { 127.0.0.1; } keys { "rndc-key"; };
  8. };

主配置文件named.conf

  1. options {
  2. directory "/usr/local/named/etc";
  3. dump-file "/var/named/data/cache_dump.db";
  4. statistics-file "/var/named/data/named_stats.txt";
  5. memstatistics-file "/var/named/data/named_mem_stats.txt";
  6. pid-file "/var/run/named/named.pid";
  7. version  "Windows 2008 Enterprise Server";
  8. notify yes;
  9. /*
  10. 只当本域notify被激活时才是有意义的。能够收到本域DNS NOTIFY信息的计算机
    的集合是由所有域中列明的名称服务器加上任何由also-notify设定的IP地址
    */
  11. also-notify { 192.168.2.201; };
  12. //如果为yes,服务器将收集所有区域的统计数据
  13. zone-statistics yes;
  14. listen-on port 53 { 192.168.2.200; };
  15. //这里填写slave的地址
  16. //allow-transfer { 192.168.2.201; };
  17. //允许内外网查询本DNS
  18. allow-query { intranet;external; };
  19. //允许外部网络递归查询
  20. allow-recursion { external; };
  21. //在配置为”first”时,则在转发查询失败或没有查到结果时,会在本地发起查询。
  22. forward   first;
  23. //上游DNS设置
  24. forwarders  { 202.101.172.46;202.101.172.47; };
  25. //服务器可以使用的最大数据内存量,默认是default
  26. datasize 50M;
  27. auth-nxdomain no;
  28. rrset-order { order random; };
  29. };
  30. logging {
  31. channel warning {
  32. file "/var/log/dns_warnings.log" versions 5 size 1024K;
  33. severity warning;
  34. print-category yes;
  35. print-severity yes;
  36. print-time     yes;
  37. };
  38. channel security_log {
  39. file "/var/log/dns_security.log" versions 5 size 1024K;
  40. severity info;
  41. print-category yes;
  42. print-severity yes;
  43. print-time     yes;
  44. };
  45. channel query_log {
  46. file "/var/log/dns_query.log" versions 10 size 1024K;
  47. severity info;
  48. print-category yes;
  49. print-severity yes;
  50. print-time     yes;
  51. };
  52. category default { warning; };
  53. category security { security_log; };
  54. category queries { query_log; };
  55. };
  56. include "acl.conf";
  57. include "rndc.conf";
  58. view "intranet" {
  59. match-clients { key intranet-key;intranet; };
  60. match-destinations { any; };
  61. //设定哪台主机允许和本地服务器进行域传输,这里指定传输到slave时使用的key
  62. allow-transfer { key intranet-key; };
  63. //这里是slave的地址
  64. server 192.168.2.201 { keys { intranet-key; }; };
  65. zone "." IN {
  66. type hint;
  67. file "named.root";
  68. };
  69. zone "localhost" IN {
  70. type master;
  71. file "localhost.zone";
  72. };
  73. zone "0.0.127.in-addr.arpa" IN {
  74. type master;
  75. file "localhost.rev";
  76. };
  77. zone "wholesale-dress.net" IN {
  78. type master;
  79. /*
  80. 由于域名wholesale-dress.net已在公网上注册,所以对测试的童鞋来说,
  81. 该域名的记录应该返回的是内网中测试服务器所对应的IP,下同
  82. */
  83. file "master/wholesale-dress.net.intranet";
  84. };
  85. zone "yixiebao.com" IN {
  86. type master;
  87. file "master/yixiebao.com.intranet";
  88. };
  89. zone "japan-dress.com" IN {
  90. type master;
  91. file "master/japan-dress.com.intranet";
  92. };
  93. zone "arab-clothes.com" IN {
  94. type master;
  95. file "master/arab-clothes.com.intranet";
  96. };
  97. zone "stamp-shopping.com" IN {
  98. type master;
  99. file "master/stamp-shopping.com.intranet";
  100. };
  101. zone "2.168.192.in-addr.arpa" IN {
  102. type master;
  103. file "master/2.168.192.rev";
  104. };
  105. };
  106. view "external" {
  107. match-clients { key external-key;external; };
  108. match-destinations { any; };
  109. zone "." IN {
  110. type hint;
  111. file "named.root";
  112. };
  113. zone "localhost" IN {
  114. type master;
  115. file "localhost.zone";
  116. };
  117. zone "0.0.127.in-addr.arpa" IN {
  118. type master;
  119. file "localhost.rev";
  120. };
  121. zone "wholesale-dress.net" IN {
  122. /*
  123. 对于外网用户来说(指定的),该域名已经作解析。我们就没有必要再解析一次
  124. ,当用户查询此域名时,直接丢给上游DNS即可。下同
  125. */
  126. type forward;
  127. };
  128. zone "goods-of-china.com" IN {
  129. type forward;
  130. };
  131. zone "japan-dress.com" IN {
  132. type forward;
  133. };
  134. zone "russia-dress.com" IN {
  135. type forward;
  136. };
  137. zone "stamp-shopping.com" IN {
  138. type forward;
  139. };
  140. };

acl.conf

  1. key "intranet-key" {
  2. algorithm hmac-md5;
  3. secret "qSFm5D26mtg1O1wJlyTKYA==";
  4. };
  5. key "external-key" {
  6. algorithm hmac-md5;
  7. secret "TorqY5N5hgkRhoXgSssaDQ==";
  8. };
  9. acl "intranet" {
  10. localhost;
  11. };
  12. acl "external" {
  13. any;
  14. };

name.root下载地址:

  1. wget ftp://ftp.internic.org/domain/named.root

还有一些准备工作

  1. # touch /var/log/{dns_warnings.log,dns_security.log,dns_query.log}
  2. # chown named.named /var/log/{dns_warnings.log,dns_security.log,dns_query.log}
  3. # ll /var/log/{dns_warnings.log,dns_security.log,dns_query.log}
  4. -rw-r--r-- 1 named named 701587 Jul 13 10:53 /var/log/dns_query.log
  5. -rw-r--r-- 1 named named 0 Jul 12 17:56 /var/log/dns_security.log
  6. -rw-r--r-- 1 named named 1158 Jul 13 09:56 /var/log/dns_warnings.log
  7. # chown -R named.named /usr/local/named/
  8. # chown -R named.named /var/run/named/
  9. # chown -R named.named /var/named/data/

生成两个key

  1. # dnssec-keygen -a HMAC-MD5 -b 128 -n HOST intranet
  2. # dnssec-keygen -a HMAC-MD5 -b 128 -n HOST external

生成的key文件名like this

  1. -rw------- 1 named named   52 Jul 12 16:04 Kexternal.+157+21581.key
  2. -rw------- 1 named named  165 Jul 12 16:04 Kexternal.+157+21581.private
  3. -rw------- 1 named named   52 Jul 12 16:03 Kintranet.+157+57599.key
  4. -rw------- 1 named named  165 Jul 12 16:03 Kintranet.+157+57599.private

将下面红色部分的代码复制到acl.conf中

  1. # cat Kexternal.+157+21581.private
  2. Private-key-format: v1.3
  3. Algorithm: 157 (HMAC_MD5)
  4. Key: TorqY5N5hgkRhoXgSssaDQ==
  5. Bits: AAA=
  6. Created: 20110712080429
  7. Publish: 20110712080429
  8. Activate: 20110712080429
  9. cat Kintranet.+157+57599.private
  10. Private-key-format: v1.3
  11. Algorithm: 157 (HMAC_MD5)
  12. Key: qSFm5D26mtg1O1wJlyTKYA==
  13. Bits: AAA=
  14. Created: 20110712080358
  15. Publish: 20110712080358
  16. Activate: 20110712080358

localhost.zone

  1. $TTL    86400
  2. $ORIGIN localhost.
  3. @       1D      IN      SOA     @       root (
  4. 100     ; serial
  5. 1H      ; refresh
  6. 1M      ; retry
  7. 1W      ; expiry
  8. 1D )    ; minimum
  9. 1D        IN        NS        @
  10. 1D        IN        A        127.0.0.1

localhost.rev

  1. $TTL        86400
  2. @        IN        SOA        localhost.        root.localhost. (
  3. 1997022700           ; Serial
  4. 28800                ; Refresh
  5. 14400                ; Retry
  6. 3600000              ; Expire
  7. 86400 )              ; Minimum
  8. IN        NS        localhost.
  9. 1        IN        PTR        localhost.

/usr/local/named/etc/下新建一master目录

2.168.192.rev

  1. $TTL    86400
  2. @         IN        SOA          wholesale-dress.net. root.wholesale-dress.net. (
  3. 100     ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D)     ; minimum
  8. IN        NS            ns1.wholesale-dress.net.
  9. 200        IN        PTR           ns1.wholesale-dress.net.
  10. 201        IN        PTR           slave.wholesale-dress.net.
  11. ;88        IN        PTR           www.wholesale-dress.net.
  12. ;15        IN        PTR           js.wholesale-dress.net.
  13. ;15        IN        PTR           css.wholesale-dress.net.
  14. ;15        IN        PTR           img.wholesale-dress.net.
  15. ;14       IN        PTR           mail.wholesale-dress.net.
  16. ;18        IN        PTR           ftp.wholesale-dress.net.

arab-clothes.com.intranet

  1. $TTL            86400
  2. @            IN       SOA    ns1.arab-clothes.com.  root.arab-clothes.com. (
  3. 105    ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D )    ; minimum
  8. IN       NS      ns1.arab-clothes.com.
  9. ;            IN       MX  10  mail.arab-clothes.com.
  10. ;mail        IN       A       192.168.1.14
  11. ns1          IN       A       192.168.2.200
  12. slave        IN       A       192.168.2.201
  13. www          IN       A       192.168.1.249
  14. ;js           IN       A       192.168.1.15
  15. ;css          IN       A       192.168.1.15
  16. ;img          IN       A       192.168.1.15
  17. ;ftp          IN       A       192.168.1.18

japan-dress.com.intranet

  1. $TTL            86400
  2. @            IN       SOA    ns1.japan-dress.com.  root.japan-dress.com. (
  3. 101    ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D )    ; minimum
  8. IN       NS      ns1.japan-dress.com.
  9. ;            IN       MX  10  mail.japan-dress.com.
  10. ;mail        IN       A       192.168.1.14
  11. ns1          IN       A       192.168.2.200
  12. slave        IN       A       192.168.2.201
  13. www          IN       A       192.168.1.241
  14. ;js           IN       A       192.168.1.15
  15. ;css          IN       A       192.168.1.15
  16. ;img          IN       A       192.168.1.15
  17. ;ftp          IN       A       192.168.1.18

stamp-shopping.com.intranet

  1. $TTL            86400
  2. @            IN       SOA    ns1.stamp-shopping.  root.stamp-shopping. (
  3. 101    ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D )    ; minimum
  8. IN       NS      ns1.stamp-shopping.
  9. ;            IN       MX  10  mail.stamp-shopping.
  10. ;mail        IN       A       192.168.1.14
  11. ns1          IN       A       192.168.2.200
  12. slave        IN       A       192.168.2.201
  13. www          IN       A       192.168.1.238
  14. ;js           IN       A       192.168.1.15
  15. ;css          IN       A       192.168.1.15
  16. ;img          IN       A       192.168.1.15
  17. ;ftp          IN       A       192.168.1.18

wholesale-dress.net.intranet

  1. $TTL            86400
  2. @            IN       SOA    ns1.wholesale-dress.net.  root.wholesale-dress.net. (
  3. 101    ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D )    ; minimum
  8. IN       NS      ns1.wholesale-dress.net.
  9. ;            IN       MX  10  mail.wholesale-dress.net.
  10. ;mail        IN       A       192.168.1.14
  11. ns1          IN       A       192.168.2.200
  12. slave        IN       A       192.168.2.201
  13. www          IN       A       192.168.2.221
  14. ;js           IN       A       192.168.1.15
  15. ;css          IN       A       192.168.1.15
  16. ;img          IN       A       192.168.1.15
  17. ;ftp          IN       A       192.168.1.18

yixiebao.com.intranet

  1. $TTL            86400
  2. @            IN       SOA    ns1.yixiebao.com.  root.yixiebao.com. (
  3. 101    ; serial
  4. 1H      ; refresh
  5. 1M      ; retry
  6. 1W      ; expiry
  7. 1D )    ; minimum
  8. IN       NS      ns1.yixiebao.com.
  9. ;            IN       MX  10  mail.yixiebao.com.
  10. ;mail        IN       A       192.168.1.14
  11. ns1          IN       A       192.168.2.200
  12. slave        IN       A       192.168.2.201
  13. ;www          IN       A       192.168.1.87
  14. ;js           IN       A       192.168.1.15
  15. ;css          IN       A       192.168.1.15
  16. ;img          IN       A       192.168.1.15
  17. ;ftp          IN       A       192.168.1.18

后面几个正向解析文件基本上差不多。

三、启动named

基于以上的工作后,基本上算是配置完毕,在正式启动之前我们来检查一下mamed.conf 的语法

  1. # named-checkconf named.conf

无错误输出即可。

进行调试模式启动,看是否有错误输出

  1. named -u named -c named.conf -g -d 4

最后,创建bind98启动脚本

  1. #!/bin/bash
  2. #
  3. # Init file for named
  4. #
  5. # chkconfig: - 80 12
  6. # description: named daemon
  7. #
  8. # processname: named
  9. # pidfile: /usr/local/named/var/run/named.pid
  10. . /etc/init.d/functions
  11. BIN="/usr/local/named/sbin"
  12. PIDFILE="/var/run/named/named.pid"
  13. RETVAL=0
  14. prog="named"
  15. desc="DNS Server"
  16. start() {
  17. if [ -e $PIDFILE ];then
  18. echo "$desc already running...."
  19. exit 1
  20. fi
  21. echo -n $"Starting $desc: "
  22. daemon $BIN/$prog -u named -c /usr/local/named/etc/named.conf
  23. RETVAL=$?
  24. echo
  25. [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
  26. return $RETVAL
  27. }
  28. stop() {
  29. echo -n $"Stop $desc: "
  30. killproc $prog
  31. RETVAL=$?
  32. echo
  33. [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
  34. return $RETVAL
  35. }
  36. restart() {
  37. stop
  38. start
  39. }
  40. case "$1" in
  41. start)
  42. start
  43. ;;
  44. stop)
  45. stop
  46. ;;
  47. restart)
  48. restart
  49. ;;
  50. condrestart)
  51. [ -e /var/lock/subsys/$prog ] && restart
  52. RETVAL=$?
  53. ;;
  54. status)
  55. status $prog
  56. RETVAL=$?
  57. ;;
  58. *)
  59. echo $"Usage: $0 {start|stop|restart|condrestart|status}"
  60. RETVAL=1
  61. esac
  62. exit $RETVAL

以上脚本是由另一脚本修改而来,经试用,没有问题。

四、测试过程(略)

1)将LAN中任意一台win 机器的DNS设置改成该服务器的IP,看是否能解析OK?

2)将LAN中任意一台win 机器的IP配置成acl中的intranet地址,看是否不能查询外网请求,在查询指定请求的域名是,是否返回所预定的结果。

注:按照以上的配置正常启动DNS后,会在dns_warnings.log里有一条错误的日志输出,此错误并不影响DNS的正常工作。大致是这样的

  1. 13-Jul-2011 17:18:07.098 general: error: managed-keys-zone ./IN/internal: loading from master file 3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys failed: file not found
  2. 13-Jul-2011 17:18:07.100 general: error: managed-keys-zone ./IN/external: loading from master file 3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys failed: file not found

在google上查了N久,没有该问题的详细描述以及任何可用的solution。肿么办办呢,本人突发奇想,既然是这个文件没有,那么好啦,我就自己创建一个这样的空文件,看如何

  1. # touch 3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys
  2. 296
  3. # touch 3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys

紧接着更改这两个文件的属主设置,再次启动DNS,此时DNS日志中就木有这条该死的错误日志了,其他功能一切正常。哈哈, ^_^

五、随后某个时间,将附上该文档的后续版本,增加从服务器配置。

转载于:https://blog.51cto.com/hellosa/609881

bind98-内网智能DNS之master服务器构建相关推荐

  1. Cpolar实现虚拟机内网穿透,搭建私人云服务器

    Cpolar实现虚拟机内网穿透,搭建私人云服务器 一.Cpolar功能介绍 Cpolar官网   Cpolar是一个安全的内网穿透的服务,可以将内网下的本地服务器通过安全隧道暴漏给公网.允许公网用户可 ...

  2. FRP内网穿透映射本地内网80端口到云服务器

    FRP内网穿透映射本地内网80端口到云服务器 如题,我的配置中本地服务器和云服务器都为ubuntu20.04,但CentOS同样适用. PS:怎么把网页部署到本地80端口请找别的教程,本文重点在内网穿 ...

  3. frp点对点udp方式内网穿透ssh,不走服务器流量

    frp点对点udp方式内网穿透ssh,不走服务器流量 (2019 年 5 月 30 日) frp ssh 安全连接和服务器安全设置 (2019 年 5 月 29 日) frp 控制台监控dashboa ...

  4. 软路由OpenWrt dnsmasq解析内网上游DNS

    问题 网络配置如上图 解析my.bupt.edu.cn没有返回对应IP 解决方法 参考了DNSmasq详细解析及详细配置,其中提到 stop-dns-rebind这项配置因为安全性会禁用内网的DNS解 ...

  5. 使用centos7+bind9构建内网私有dns

    有这样一种场景,局域网内有一个为网内用户提供服务的机器,我们希望像访问互联网站点一样去访问它,而不用记忆ip地址和端口,比如在web浏览器地址栏输入http://www.nx.com就可以访问它.但是 ...

  6. hsk内网穿透+SERV-U+搭建FTP服务器+并实现外网访问

    转载:https://service.oray.com/question/752.html hsk服务目前的用户量已达1600万以上,广泛应用于网站建设.视频监控.遥感测绘.FTP.VPN.企业OA. ...

  7. 【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器

    应用目的:远程管理或在外网访问内网机器上的服务 这里我们是使用云服务器+FRP实现内网穿透,达到远程连接服务器的目的 准备工作 云服务器 这里我们租用的是腾讯云的服务器,类似于下图的这种,配置选择可以 ...

  8. 【frp】使用 frp 实现内网穿透(CentOS 云服务器 + Win10)

    文章目录 前言 参考目录 准备内容 资源下载(V0.41.0) 配置 服务端配置(云服务器) 客户端配置(Win10 本机) 测试 前言 前段时间因为突然爆发疫情,可能需要居家办公,然而平常开发调试接 ...

  9. 【计算机网络课程设计】内网穿透、搭建FTP服务器(局域网和广域网)以及对于花生壳发送X11包得一些推测

    搭建FTP服务器.对X11包的推测 FTP概述 一.FTP工作模式及传输模式 FTP工作模式 1.主动模式 2.被动模式 FTP传输模式 1.ASCLL传输模式 2.二进制数据传输模式 二.FTP服务 ...

最新文章

  1. 重温目标检测--YOLO v2 -- YOLO9000
  2. c++ 提取傅里叶描述子_Matlab | 提取图像ROI任意形状
  3. html图片旋转代码_HTML设计一个小程序
  4. c++ unicode转换中文_彻底弄懂UTF-8、Unicode、宽字符、locale
  5. (干货满满!)session和cookie作用原理,区别(史上最详细)
  6. centos 对已有卷扩容_centos7 逻辑卷扩容
  7. 蒙特卡洛方法学习(二)
  8. Nature子刊 | 通过多组学手段系统解析儿童肝母细胞瘤分子特征,为临床诊断提供精确参考...
  9. Android 系统(231)--OTA对要发布的编译版本进行签名
  10. Linux下的python.......安装
  11. SIFT算法步骤梳理
  12. Tcl 语言 ——变量篇
  13. favi.icon是什么?
  14. 乱世王者服务器维护,乱世王者千变万化开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
  15. oracle 如何修改表空间,ORACLE修改表空间方法
  16. 基于Highcharts的仪表盘设计
  17. Linux-进程控制详解(进程创建+进程终止+进程等待+进程程序替换)
  18. “我们没有竞争对手”专访Splunk中国区总经理严立忠
  19. ArcGIS相交闭合矩形线转面
  20. CLRS 5.3随机算法

热门文章

  1. topcoder srm 694 div1 -3
  2. 微软输入法TSF SampleIME 代码浅说
  3. HTML5 INPUT placeholder及兼容性处理
  4. 网页加速系列(七)、 网页加速之异步加载
  5. linux 环境 安装jdk tomcat mysql git
  6. 【直播资料下载】Python第五讲——关于爬虫如何做js逆向的思路
  7. P3201 [HNOI2009]梦幻布丁 [启发式合并][set]
  8. Emoji表情编解码库XXL-EMOJI
  9. 详谈如何定制自己的博客园皮肤
  10. 根据空间线上的两点生成圆柱体 算法