bind98-内网智能DNS之master服务器构建

简介:

公司有一测试环境,上面跑着线上的各个网站的线下版本(即上线之前在本地所做的测试)。起初,我们在配置该环境时,访问每个网站均采用独立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.  
  6. controls { 
  7.         inet 127.0.0.1 port 953 
  8.                 allow { 127.0.0.1; } keys { "rndc-key"; }; 
  9. };           

主配置文件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.  
  31. logging { 
  32.          channel warning { 
  33.                  file "/var/log/dns_warnings.log" versions 5 size 1024K; 
  34.                  severity warning; 
  35.                  print-category yes; 
  36.                  print-severity yes; 
  37.                  print-time     yes; 
  38.          }; 
  39.          channel security_log { 
  40.                  file "/var/log/dns_security.log" versions 5 size 1024K; 
  41.                  severity info; 
  42.                  print-category yes; 
  43.                  print-severity yes; 
  44.                  print-time     yes; 
  45.                  }; 
  46.          channel query_log { 
  47.                  file "/var/log/dns_query.log" versions 10 size 1024K; 
  48.                  severity info; 
  49.                  print-category yes; 
  50.                  print-severity yes; 
  51.                  print-time     yes; 
  52.          }; 
  53.          category default { warning; }; 
  54.          category security { security_log; }; 
  55.          category queries { query_log; }; 
  56. }; 
  57.  
  58. include "acl.conf"; 
  59. include "rndc.conf"; 
  60.  
  61. view "intranet" { 
  62.       match-clients { key intranet-key;intranet; }; 
  63.       match-destinations { any; }; 
  64. //设定哪台主机允许和本地服务器进行域传输,这里指定传输到slave时使用的key
  65. allow-transfer { key intranet-key; };
  66. //这里是slave的地址
  67. server 192.168.2.201 { keys { intranet-key; }; };
  68.  
  69.       zone "." IN { 
  70.            type hint; 
  71.            file "named.root"; 
  72.       }; 
  73.       zone "localhost" IN { 
  74.             type master; 
  75.             file "localhost.zone"; 
  76.       }; 
  77.       zone "0.0.127.in-addr.arpa" IN { 
  78.             type master; 
  79.             file "localhost.rev"; 
  80.       }; 
  81.       zone "wholesale-dress.net" IN { 
  82.             type master;
  83. /*
  84. 由于域名wholesale-dress.net已在公网上注册,所以对测试的童鞋来说,
  85. 该域名的记录应该返回的是内网中测试服务器所对应的IP,下同
  86. */
  87.             file "master/wholesale-dress.net.intranet"; 
  88.       }; 
  89.       zone "yixiebao.com" IN { 
  90.              type master; 
  91.              file "master/yixiebao.com.intranet"; 
  92.       }; 
  93.       zone "japan-dress.com" IN { 
  94.             type master; 
  95.             file "master/japan-dress.com.intranet"; 
  96.       }; 
  97.       zone "arab-clothes.com" IN { 
  98.             type master; 
  99.             file "master/arab-clothes.com.intranet"; 
  100.       }; 
  101.       zone "stamp-shopping.com" IN { 
  102.             type master; 
  103.             file "master/stamp-shopping.com.intranet"; 
  104.       }; 
  105.       zone "2.168.192.in-addr.arpa" IN { 
  106.             type master; 
  107.             file "master/2.168.192.rev"; 
  108.       }; 
  109.  
  110. }; 
  111.  
  112. view "external" { 
  113.       match-clients { key external-key;external; }; 
  114.       match-destinations { any; }; 
  115.  
  116.       zone "." IN { 
  117.            type hint; 
  118.            file "named.root"; 
  119.       }; 
  120.       zone "localhost" IN { 
  121.             type master; 
  122.             file "localhost.zone"; 
  123.       }; 
  124.       zone "0.0.127.in-addr.arpa" IN { 
  125.             type master; 
  126.             file "localhost.rev"; 
  127.       }; 
  128.       zone "wholesale-dress.net" IN { 
  129. /*
  130. 对于外网用户来说(指定的),该域名已经作解析。我们就没有必要再解析一次
  131. ,当用户查询此域名时,直接丢给上游DNS即可。下同
  132. */
  133.             type forward; 
  134.       }; 
  135.       zone "goods-of-china.com" IN { 
  136.             type forward; 
  137.       }; 
  138.       zone "japan-dress.com" IN { 
  139.             type forward; 
  140.       }; 
  141.       zone "russia-dress.com" IN { 
  142.             type forward; 
  143.       }; 
  144.       zone "stamp-shopping.com" IN { 
  145.             type forward; 
  146.       }; 
  147.  
  148. }; 

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.  
  10. acl "intranet" { 
  11.                 localhost; 
  12. }; 
  13.  
  14. acl "external" { 
  15.                 any; 
  16. }; 

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.   
  8. # chown -R named.named /usr/local/named/ 
  9. # chown -R named.named /var/run/named/ 
  10. # 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.   
  10.  cat Kintranet.+157+57599.private  
  11. Private-key-format: v1.3  
  12. Algorithm: 157 (HMAC_MD5)  
  13. Key: qSFm5D26mtg1O1wJlyTKYA==  
  14. Bits: AAA=  
  15. Created: 20110712080358  
  16. Publish: 20110712080358  
  17. 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. # Init file for named 
  3. # chkconfig: - 80 12 
  4. # description: named daemon 
  5. # processname: named 
  6. # pidfile: /usr/local/named/var/run/named.pid 
  7.  
  8. . /etc/init.d/functions 
  9.  
  10. BIN="/usr/local/named/sbin" 
  11. PIDFILE="/var/run/named/named.pid" 
  12.  
  13. RETVAL=0 
  14. prog="named" 
  15. desc="DNS Server" 
  16.  
  17. start() { 
  18.  
  19.         if [ -e $PIDFILE ];then 
  20.              echo "$desc already running...." 
  21.              exit 1 
  22.         fi 
  23.  
  24.         echo -n $"Starting $desc: " 
  25.         daemon $BIN/$prog -u named -c /usr/local/named/etc/named.conf 
  26.  
  27.         RETVAL=$? 
  28.         echo 
  29.         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog 
  30.         return $RETVAL 
  31.  
  32. stop() { 
  33.         echo -n $"Stop $desc: " 
  34.         killproc $prog 
  35.         RETVAL=$? 
  36.         echo 
  37.         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE 
  38.         return $RETVAL 
  39.  
  40. restart() { 
  41.         stop 
  42.         start 
  43.  
  44.  
  45. case "$1" in 
  46.   start) 
  47.         start 
  48.         ;; 
  49.   stop) 
  50.         stop 
  51.         ;; 
  52.   restart) 
  53.         restart 
  54.         ;; 
  55.   condrestart) 
  56.         [ -e /var/lock/subsys/$prog ] && restart 
  57.         RETVAL=$? 
  58.         ;; 
  59.   status) 
  60.         status $prog 
  61.         RETVAL=$? 
  62.         ;; 
  63.    *) 
  64.         echo $"Usage: $0 {start|stop|restart|condrestart|status}" 
  65.         RETVAL=1 
  66. esac 
  67.  
  68. 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日志中就木有这条该死的错误日志了,其他功能一切正常。哈哈, ^_^

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


本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/609881,如需转载请自行联系原作者

相关文章
|
2月前
|
人工智能 运维 调度
机房服务器快喘不过气?智能负载管理才是救命稻草
机房服务器快喘不过气?智能负载管理才是救命稻草
79 1
|
4月前
|
网络协议
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
4月前
|
运维 Prometheus 监控
“服务器又宕了?”别急,智能运维教你如何未卜先知!
“服务器又宕了?”别急,智能运维教你如何未卜先知!
148 0
|
8月前
|
传感器 人工智能 物联网
穿戴科技新风尚:智能服装设计与技术全解析
穿戴科技新风尚:智能服装设计与技术全解析
668 85
|
11月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
497 76
|
6月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
|
8月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepSeek 实践应用解析:合力亿捷智能客服迈向 “真智能” 时代
DeepSeek作为人工智能领域的创新翘楚,凭借领先的技术实力,在智能客服领域掀起变革。通过全渠道智能辅助、精准对话管理、多语言交互、智能工单处理、个性化推荐、情绪分析及反馈监控等功能,大幅提升客户服务效率和质量,助力企业实现卓越升级,推动智能化服务发展。
338 1
|
9月前
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
610 9
|
9月前
|
云安全 人工智能 安全
阿里云网络安全体系解析:如何构建数字时代的"安全盾牌"
在数字经济时代,阿里云作为亚太地区最大的云服务提供商,构建了行业领先的网络安全体系。本文解析其网络安全架构的三大核心维度:基础架构安全、核心技术防护和安全管理体系。通过技术创新与体系化防御,阿里云为企业数字化转型提供坚实的安全屏障,确保数据安全与业务连续性。案例显示,某金融客户借助阿里云成功拦截3200万次攻击,降低运维成本40%,响应时间缩短至8分钟。未来,阿里云将继续推进自适应安全架构,助力企业提升核心竞争力。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS