安装powerdns(源码包安装)

源码包安装

1.源码链接

进入官网
获取权威版下载链接

https://downloads.powerdns.com/releases/pdns-4.6.0.tar.bz2

2.下载并解压

sudo wget https://downloads.powerdns.com/releases/pdns-4.6.0.tar.bz2
sudo tar -xjf pdns-4.6.0.tar.bz2
#编译
./configure --prefix=/etc/powerdns --with-modules="bind gmysql geoip" --with-mysql=/usr/local/mysql --enable-verbose-logging --enable-lua-records
make -j4 && make install
注意点

编译失败:annot find Boost headers version >= 1.42.0
解決方式:sudo apt install libboost-all-dev

编译失败:error: Could not find yaml-cpp
解決方式:
git clone https://github.com/jbeder/yaml-cpp.git
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

运行失败:error while loading shared libraries: libyaml-cpp.so.0.7: cannot open shared object file: No such file or directory
解决方式:
一、1.打开/etc/ld.so.conf文件在里面添加:/usr/local/lib 2.运行ldconfig
二、修改环境变量LD_LIBRARY_PATH 1.vi ~/.bashrc
添加:export LD_LIBRARY_PATH=/usr/local/lib:
按Esc退出插入模式,再按zz保存并退出。

3.数据库

创建数据库以及数据表
create table powerdns;
more /etc/powerdns/share/doc/pdns/schema.sqlite3.sql(数据表sql文件)

4.libmaxminddb(运行GeoIP后端所需程序)

https://github.com/maxmind/libmaxminddb/releases/download/1.6.0/libmaxminddb-1.6.0.tar.gz
./configure
make -j4
make check
make install 
echo /usr/local/lib  >> /etc/ld.so.conf.d/local.conf
ldconfig

下载GeoLite2免费地址库
https://dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en
下载并在配置文件中使用GeoLite2-City文件
GeoLite2免费地址库支持在线更新,需要到官网注册账号申请免费license

5.配置pdns

vim /etc/powerdns/pdns.conf
local-address=0.0.0.0
local-port=5300   
launch=gmysql,geoip   #开启mysql、gepip后端
gmysql-host=localhost
gmysql-port=3306
gmysql-user=root
gmysql-password=powerdns
gmysql-dbname=powerdns
write-pid=yes
daemon=yes
api=yes   #开启api
api-key=iu3bFrMHlg1pCL2G   #配置api访问密钥
webserver=yes
webserver-address=0.0.0.0
webserver-allow-from=0.0.0.0/0   #api允许访问来源
webserver-port=8081   #api访问端口
config-dir=/usr/local/powerdns/etc    #指定pdns配置文件目录
enable-lua-records=shared    #开启lua-record
geoip-database-files=/usr/local/powerdns/etc/GeoLite2-City.mmdb   #指定geoip数据库

6.启动

/etc/powerdns/sbin/pdns_server
ps -ef |grep pdns检查一下pdns是否启动

posted @ 2022-02-21 22:42  Myifb  阅读(480)  评论(0)    收藏  举报