重点:1)系统是ubuntu的16.04  bind9.10.3

   2)确保你的系统是没问题的,我之前的16.04有问题,在虚拟机上怎么都操作都不行,

    在/var/log/syslog可以看到:could not load the shared library:dso_lib.c:233类似的信息,

    原因应该是openssl库的问题。下面第6条有解决方法。

      3)ubuntu16.04使用apt-get 下载的是bind9.10.3,在ubuntu18.04中下载的是bind9.11.3

    对bind9.10.3,需要在chroot的文件放置libgost.so到特定位置,这是bind9.10的缺陷,正常情况

    对于库的加载应该是在进入chroot之前完成,此处有人探讨:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820974

  4)个人认为不要使用bind9.10.3。 哈哈,可以关闭网页啦。

1.安装bind9

  sudo apt-get install bind9

2.启动bind9测试一下

  sudo /etc/init.d/bind9 restart

  观察bind是否可以启动

  sudo vim /var/log/syslog

  如果在现在的启动时间下出现:

  May 29 09:03:46 yy-pc named[36284]: running

  表示 named 已经启动,可以正常启动,下面开始配置chroot的启动

3.修改/etc/bind/named.conf.options :

  sudo vim /etc/bind/named.conf.options

  开头处:
  options {

      directory "/var/cache/bind";

      dnssec-validation auto;

      auth-nxdomain no; # conform to RFC1035
      listen-on-v6 { any; };
    };

  chroot的路径是 /var/cache/bind

  把这个文件内容修改为 

  options {
    listen-on port 53 { any; };
    directory "/var/cache/bind";
    dump-file "/var/cache/bind/data/cache_dump.db";
    statistics-file "/var/cache/bind/data/named_stats.txt";
    memstatistics-file "/var/cache/bind/data/named_mem_stats.txt";
    allow-query { any; };
    recursion yes;
    forward only;
    forwarders {
      8.8.8.8;
      8.8.4.4;
      };

    };

4.修改chroot的目录,使它可以让bind运行起来

    cd /var/cache/bind

  在这里创建目录 dev     etc/bind   run/named  usr  var/cache/bind  var/run/named

  mknod /var/cache/bind/dev/null c 1 3

  mknod /var/cache/bind/dev/random c 1 8
  chmod 660 /var/cache/bind/dev/{null,random}

将bind的默认配置文件移动到目标地址:mv /etc/bind /var/cache/bind/etc
   为了保持兼容性,仍在原位置为其建立软链: ln -s /var/cache/bind/etc/bind /etc/bind

5. 设置配置文件:

  修改/etc/default/bind9 :     OPTIONS="-u bind"   -->  OPTIONS="-u bind -t /var/cache/bind"

  修改/etc/init.d/bind9 : PIDFILE=/run/named/named.pid -->  PIDFILE=/var/cache/bind/run/named/named.pid

6.  重新启动bind9:

  sudo /etc/init.d/bind9 restart

  提示:[ ok ] Restarting bind9 (via systemctl): bind9.service.

q千万不要被假象迷惑!!!!

  查看syslog

  sudo vim /var/log/syslog

  最后几行出错:

ENGINE_by_id failed (crypto failure)
Jun 23 01:29:04 yy-pc named[57416]: error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:233:
Jun 23 01:29:04 yy-pc named[57416]: error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:467:
Jun 23 01:29:04 yy-pc named[57416]: error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:390:id=gost
Jun 23 01:29:04 yy-pc named[57416]: initializing DST: crypto failure
Jun 23 01:29:04 yy-pc named[57416]: exiting (due to fatal error)
Jun 23 01:29:04 yy-pc systemd[1]: bind9.service: Main process exited, code=exited, status=1/FAILURE
Jun 23 01:29:04 yy-pc rndc[57437]: rndc: connect failed: 127.0.0.1#953: connection refused
Jun 23 01:29:04 yy-pc systemd[1]: bind9.service: Control process exited, code=exited status=1
Jun 23 01:29:04 yy-pc systemd[1]: bind9.service: Unit entered failed state.
Jun 23 01:29:04 yy-pc systemd[1]: bind9.service: Failed with result 'exit-code'.

这是因为缺少必要的库文件,复制关键库文件到chroot的对应目录即可,具体操作在7.

7. 复制库文件到chroot

  (1)创建库文件路径

  cd /var/cache/bind

  sudo mkdir -p /var/cache/bind/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines

  源文件目录:/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgost.so

  目标目录:/var/cache/bind/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgost.so

  下划线是你chroot的目录。如果复制了之后,还是无法解决,

    可以问题应该出在: a. openssl不对劲    b. 系统可以有点儿问题(我虚拟机系统不对, 硬盘上的是可以解决的)        c.放弃bind9.10

  

  友情链接,均由参考:

http://www.snooda.com/read/290

https://www.howtoforge.com/howto_bind_chroot_debian

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820974

https://blog.csdn.net/symptoms216/article/details/79635700

ubuntu16.04设置bind9.10.3的chroot运行的更多相关文章

  1. TX2开发板Ubuntu16.04设置静态IP

    TX2开发板Ubuntu16.04设置静态IP  https://www.cnblogs.com/qilai/p/11285445.html 首先打开一个Terminal输入 ifconfig 查看自 ...

  2. ubuntu16.04下笔记本自带摄像头编译运行PTAM

    ubuntu16.04下笔记本自带摄像头编译运行PTAM 转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147 个人邮箱:feifan ...

  3. ubuntu16.04设置电池充电阈值

    thinkpad在安装ubuntu16.04之后,设置充电阈值: 方法一: 使用双系统,在windows下使用联想的Lenovo setting center设置之后,在ubuntu之下也可以保持相同 ...

  4. Hadoop完全分布式环境搭建(二)——基于Ubuntu16.04设置免密登录

    在Windows里,使用虚拟机软件Vmware WorkStation搭建三台机器,操作系统Ubuntu16.04,下面是IP和机器名称. [实验目标]:在这三台机器之间实现免密登录 1.从主节点可以 ...

  5. Ubuntu16.04下安装MATLAB 2016b!完美运行

    目录 1.下载MATLAB 2016b 2.挂载iso 3.安装MATLAB 4.破解 5.快捷键与运行 1.下载MATLAB 2016b 下载matlab 2016b for linux(可以百度搜 ...

  6. Ubuntu16.04设置静态ip

    给Ubuntu系统配置一个静态IP ,方法如下 : 1. sudo vi /etc/network/interfaces  (本人更推荐使用 sudo gedit /etc/network/inter ...

  7. 软件——Ubuntu16.04设置静态ip地址

    1.获取网卡名称 在命令行输入ifconfig -a 2.修改网卡配置文件 sudo vim /etc/network/interfaces 加上下面的配置,IP地址可以成适合你的 auto eth0 ...

  8. ubuntu16.04设置tomcat自启动

    我的tomcat名字叫tomcat8_product 1.拷贝catalina.sh到/etc/init.d/目录下 cd tomcat8_product/bin/catalina.sh /etc/i ...

  9. 【转】ubuntu16.04设置python3为默认及一些库的安装

    原文:https://www.cnblogs.com/jokie/p/6933546.html Ubuntu默认Python为2.7,所以安装Python包时安装的为py2的包. 利用alternat ...

随机推荐

  1. SpringBoot学习系列之一(反射)

    最近在学习SpringBoot的知识,动起手来学习的时候才发现SpringBoot项目采用了大量的反射机制,晕,作为一个应届毕业生,以前学习反射的时候给我的感觉就是,这个到底用来干嘛的,好像没啥用啊, ...

  2. Codeforces Round #574 (Div. 2)——C. Basketball Exercise(简单DP)

    题目传送门 题意: 输入n,给出两组均为 n个数字的数组a和b,轮流从a和b数组中取出一个数字,要求严格按照当前所选数字的数组下标比上一个所选数字的数组下标更大,计算能够取出的数字加起来的总和最大能为 ...

  3. js动态添加<tr><td>

    <form id="addNewsFormData" name="addNewsFormData" isCheck="true" ac ...

  4. 100天搞定机器学习|Day23-25 决策树及Python实现

    算法部分不再细讲,之前发过很多: [算法系列]决策树 决策树(Decision Tree)ID3算法 决策树(Decision Tree)C4.5算法 决策树(Decision Tree)CART算法 ...

  5. 如何永久破解IDEA 2019.2

    声明: 支持知识产权,支持正版产权,以下仅限个人学习使用IDEA工具时随笔记录,禁止商业使用. 以下个人提供的激活补丁和激活码来源,均由网上下载,各位也可以自行查找. IDEA官网下载地址:https ...

  6. hadoop2.7+spark2.2+zookeeper3.4.简单安装

    1.zookeeper的安装##配置/etc/hosts192.168.88.130 lgh192.168.88.131 lgh1192.168.88.132 lgh2 ##安装java8 解压配置环 ...

  7. 构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)

    背景 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 数据湖的核心功能, ...

  8. 《Java 8 in Action》Chapter 1:为什么要关心Java 8

    自1998年 JDK 1.0(Java 1.0) 发布以来,Java 已经受到了学生.项目经理和程序员等一大批活跃用户的欢迎.这一语言极富活力,不断被用在大大小小的项目里.从 Java 1.1(199 ...

  9. JavaScript算法实现——排序

    在计算机编程中,排序算法是最常用的算法之一,本文介绍了几种常见的排序算法以及它们之间的差异和复杂度. 冒泡排序 冒泡排序应该是最简单的排序算法了,在所有讲解计算机编程和数据结构的课程中,无一例外都会拿 ...

  10. LInux系统@安装CentOS7虚拟机

    安装Centos7虚拟机 1.打开VMware,点击创建新的虚拟机(至关重要) 2.选择自定义配置,点击下一步 3.选择虚拟机硬件兼容性<Workstation 12.0>,点击下一步 4 ...