ubuntu 原始碼安裝bind9 10詳細流程

2021-08-09 03:59:21 字數 3471 閱讀 6377

然後找到一篇網上的部落格來進行參考,經過以前多次的bind原始碼安裝實踐證明,網上的各種教程在我這邊還是會出很多問題的,所以自己記錄一下在ubuntu14.0的環境下用原始碼的方式安裝bind的歷程,遇到的問題以及改進方法,為了以後再次安裝的時候能夠提高效率,不至於每次都出一堆問題。參考的部落格位址為:bind安裝簡易教程

一下一些**可能不能直接複製缺少空格或者字元的格式不太正確,建議自己手輸,也可以增強一下熟練性。

cdopenssl-1.0.2l

sudo ./config --prefix=/usr/local

sudo make depend

sudo make

sudo make install

解壓:tar -zxvf bind

進入bind目錄 

sudo ./configure --prefix=/usr/local/bind --sysconfdir=/etc/bind      

/usr/local/bind是安裝路徑 、etc/bind是配置檔案的路徑也就是name。conf的位置。

sudo make

sudo make install

(1)/usr/local/bind/sbin/rndc-confgen > /etc/bind/rndc.conf

這個地方可能有問題,如果完成不了的話可以直接找乙個rndc。conf的檔案複製過來就可以用。

cd  /etc/bind

(2)tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

vimnamed.conf

加入:options ;

directory "/etc/bind";

pid-file "named.pid";#這個pid是在stop的時候會用到

allow-query ;#可以使用允許遞迴的命令來允許伺服器進行遞迴查詢

#dump-file"/usr/local/named/data/cache_dump.db";

# statistics-file"/usr/local/named/data/named_stats.txt";

#forward only;

forwarders ;    //設定**的公網dns伺服器位址

#forwarders ;

#forwarders ;   

//設定內網dns伺服器**

#atcp-clients 10000;

#listen-on ;

zone"." in {

type hint;

file "named.root";

zone"localhost" in {

type master;

file "localhost.zone";

zone"0.0.127.in-addr.arpa" in {

type master;

file "localhost.rev";

在當前目錄下增加幾個檔案:

(3)vimlocalhost.zone

$ttl    86400

@              in soa  @      root (

42              ; serial (d. adams)

3h              ; refresh

15m           ; retry

1w              ; expiry

1d )            ; minimum

in ns         @

in a            127.0.0.1

in aaaa       ::1

(4)vimlocalhost.rev

$ttl    86400

@      in     soa    localhost.root.localhost.  (

1997022700 ; serial

28800     ; refresh

14400     ; retry

3600000   ; expire

86400 )   ; minimum

in     ns      localhost.

1      in     ptr    localhost.

wget 

到此配置完成

/usr/local/bind/sbin/named -gc  /etc/bind/named.conf

啟動bind:

/usr/local/bind/sbin/named-c  /etc/bind/named.con 

此處啟動了除錯,有問題會列印出出錯資訊。當除錯正常後啟動需要去掉g這個引數。

vim/etc/init.d/named

在末尾增加以下內容

#!/bin/bash

#named        a network name service.

#chkconfig: 545 35 75

#description: a name server

if [ `id-u` -ne 0 ]

then

echo"error:for bind to port 53,must run as root."

exit 1

ficase"$1" in

start)

if [ -x/usr/local/bind/sbin/named ]; then

#這裡是執行檔案的位置

/usr/local/bind/sbin/named-u root -c /etc/bind/named.conf && echo 'start named [ok]'

#這裡是啟動命令,前便是執行檔案的位置,後邊是配置檔案的位置

fistop)

kill `cat/usr/local/bind/named.pid` && echo 'stop named [ok]'

#通過kill掉進行來來停止伺服器pid的位置是前邊在options中設定的位置

restart)

echo"restart named"

$0 stop

$0 start

echo"$0 start | stop | restart"

esac

vim/etc/resolv.conf

nameserver 172.15.0.140

(2).重啟named服務:servicenamed restart

***會發現該服務無法啟動,原因是因為沒有執行許可權。

解決方法是:給予named這個檔案執行的許可權:

cd/etc/init.d/

chmod 755 named            配置好許可權之後再重啟named服務就ok了......

(3)後期的使用過程中要養成利用檢視日誌的方法來排除問題的習慣,這樣便於你快速方便的找到問題所在:

tail -f /var/log/message

bind原始碼重寫

前言 在了解怎麼實現bind之前我們先來了解一下bind的功能,正所謂知己知彼百戰不殆。原生bind的功能 bind的功能主要用來強制繫結函式的this,然後返回乙個新的函式 function show args var obj var newshow0 show.bind var newshow1...

手寫bind原始碼

三個方法的相同點 目標函式被呼叫時,改變this的指向的值 三個方法都是函式的方法,掛在在function.prototype上 不同點 目標函式呼叫bind後,不會立即執行,而是返回乙個新的函式,呼叫新函式才會執行目標函式 自定義乙個類似於bind函式的函式,將其掛載到函式function上面,然...

Ubuntu 原始碼安裝swoole

2.解壓 unzip swoole swoole v2.2.0.zip 3.cd swoole 發現沒有 configure 用來編譯安裝配置軟體的 可以用phpize 生成 4.在swool目錄下 直接使用phpize就可以生產 這裡有乙個坑,必須要首先安裝 agt get install 這個命...