LinuxTOY 是一个致力于提供 Linux 相关资讯的专题站点。如果您发现了好用好玩的 Linux 东东并愿意发扬自由、分享的精神,可以点击顶部导航 Contact 按钮进行投稿。

Related entries

puppet:建立一个 pdns-recursor 的实例

[撰文/hmy]

通过 puppet 脚本,在本地建立一个 dns 缓存服务器,本文针对 debian、ubuntu。

步骤如下:

  1. 更新 /etc/apt/sources.list
    # apt-get update
  2. 安装 puppet 软件包
    # apt-get install puppet
  3. 复制下面内容存为”/tmp/dns.pp”文件
    
    # start
    package {
           "pdns-recursor":
                   ensure => installed;
           }
    
    file {
           "/etc/resolv.conf":
                   require => Service["pdns-recursor"],
                   content => “nameserver 127.0.0.1\n”;
           }
    service {
           “pdns-recursor”:
                   ensure => running,
                   pattern => “pdns_recursor” ,
                   require => Package["pdns-recursor"];
           }
    # end
    
    
  4. 执行下面命令完成配置
    # puppet /tmp/dns.pp

附加内容:

简单解释一下上面这个 puppet 文件的内容:

  • package 段,指定了一个 package “pdns-recursor”,要求这个包的状态是”installed”,表示要求这个包是安装好的。也可以把 installed 换成 latest,表示让这个包保持最高的版本。
  • file 段,指定了一个文件”/etc/resolv.conf”,设置其内容为”nameserver 127.0.0.1″。require 这行表示只有在 service pdns-recursor 正确运行的情况下才会修改文件内容。否则不做任何操作。
  • service 段,指定了一个服务 pdns-recursor,保证这个服务的状态是”running”,既运行中。另外 require 这行的意思是这个 service 依赖 package pdns-recursor 正确被安装。

署名 • 注明出处 • 非商业性使用

6 Comments

  1. 1 如是 Commented @ 2008-08-24 4:12 pmReply to this comment

    在本机运行这样一个服务有什么作用呢?

  2. 2 hmy Commented @ 2008-08-24 4:17 pmReply to this comment

    @如是
    dns服务器就不使用isp提供的公网dns服务器,增加安全性。也不用受烦人的dns劫持。

    比如上海电信的dns,如果你查询一个不存在的域名,就会给你返回他们114站点的ip.很烦人。

  3. 3 rgaobj Commented @ 2008-08-24 4:41 pmReply to this comment

    这样做似乎跟OPENDNS没啥区别,反而比OPENDNS设置起来麻烦多了,还要多开服务。速度的提升更是有限的很,我这里没什么感觉。

  4. 4 hmy Commented @ 2008-08-24 5:55 pmReply to this comment

    @rgaobj
    是的,速度的提升不会太明星,毕竟都是毫秒级的.提供这个文章只是给大家多一个思路:D

  5. 5 fcicq Commented @ 2008-08-24 7:02 pmReply to this comment

    大量应用 djbdns 的飘过… gentoo 编译好的打成 pkg, 然后集体安装就好.

  6. 6 dogfox Commented @ 2008-08-25 8:52 pmReply to this comment

    如果单纯是为自己服务为加速上网不如使用dnsmsq