[Pcap DNSProxy] 无污染DNS搭建 linux下编译过程全记录 |
您所在的位置:网站首页 › libpcap编译安装教程 › [Pcap DNSProxy] 无污染DNS搭建 linux下编译过程全记录 |
Pcap DNSProxy 是一个基于 WinPcap/LibPcap 用于过滤 DNS 投毒污染的工具,提供便捷和强大的包含正则表达式的修改 Hosts 的方法,以及对 DNSCurve/DNSCrypt 协议、并行和 TCP 协议请求的支持。多服务器并行请求功能,更可提高在恶劣网络环境下域名解析的可靠性。 Head Pic: 「A sinner has no right of choice」/「Nahaki」のイラスト [pixiv] 罪人没有选择的权利 #杀戮天使 Pcap DNSProxychengr28/Pcap_DNSProxy (疑似原作者迫于某种压力删库,目前该链接为项目的备份) 本文主要记录下在 linux 上编译 Pcap DNSProxy 的步骤和过程,以在国内 linux 服务器上搭建可用的无污染 DNS 注意,本文并非萌新向,并且对于这篇文章我不会回答任何与你编译时出错相关的问题(因为这程序编译要求真的很多,而且过程复杂,奇奇怪怪的问题也多),请自行运用百度谷歌解决,并且本文也包含了其中一些我遇到的问题的解决方法 如果你只想在自己的 Windows 电脑上使用 Pcap DNSProxy,那么无需阅读本文,直接查看 作者给出的使用说明 即可 MacOS 用户也需要自行编译,可以参考本文部分相关内容,以及 作者给出的 MacOS 下的使用说明 环境需求源代码编译器必须完整支持 C++ 14 标准,可任选其一: GCC/g++ 最低版本要求为 5.0Clang/LLVM 最低版本要求为 3.4此处以 GCC 举例 GCC使用gcc -v命令查看 gcc 版本,可到 http://ftp.gnu.org/gnu/gcc/ 找到所有 gcc 对应版本的源码 编译需时超级久,可能要个把小时,建议使用screen以免中途断开 SSH 连接功亏一篑(。[/scode] 安装示例: 复制1 2 3 4 5 6cd /usr/src wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz tar zxvf gcc-8.2.0.tar.gz > /dev/null cd gcc-8.2.0 ./configure --prefix=/usr --enable-checking=release --disable-multilib (以及适当加上其他很多你使用 gcc -v 看到的编译选项) make && make installGCC 依赖configure 时可能会提示 GMP, MPFR, MPC 缺少或版本过低 可以直接在 GCC 源码目录下执行./contrib/download_prerequisites来自动下载并解压依赖,不过因为我们搭建无污染 DNS 使用的是国内主机,下载通常十分龟速,因此你也可以在自己的电脑上使用代理或多线程下载工具之类的加速下载好依赖库源码然后放到源码根目录中再执行此命令,可直接跳过下载阶段 以下是所需四个依赖的下载地址: 复制1 2 3 4ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2CMake使用cmake --version命令验证是否已安装,并且版本至少需要3.1 可到 https://cmake.org 查看最新版本下载地址 安装示例: 复制1 2 3 4 5 6cd /usr/src wget https://cmake.org/files/v3.12/cmake-3.12.0.tar.gz tar zxvf cmake-3.12.0.tar.gz cd cmake-3.12.0 ./configure --prefix=/usr gmake && gmake installlibevent可到 http://libevent.org 查看最新版本下载地址 安装示例: 复制1 2 3 4 5 6cd /usr/src wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz tar zxvf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8-stable ./configure --prefix=/usr make && make installlibpcap可到 http://www.tcpdump.org/#latest-release 查看最新版本下载地址 安装示例: 复制1 2 3 4 5 6cd /usr/src wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz tar zxvf libpcap-1.9.0.tar.gz cd libpcap-1.9.0 ./configure --prefix=/usr make && make install如果 configure 的时候提示Neither flex nor lex was found.错误,则 复制1 2 3 4# Ubuntu / Debian apt-get install -y flex bison # CentOS yum install -y flex bison如果遇到缺少yacc的错误,同上方一样安装byacc包即可 libsodium可到 https://github.com/jedisct1/libsodium/releases 查看最新版本下载地址 安装示例: 复制1 2 3 4 5 6cd /usr/src wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz tar zxvf libsodium-1.0.16.tar.gz cd libsodium-1.0.16 ./configure --prefix=/usr make && make installopenssl可用命令openssl version -a检查是否安装 如果出现已经安装了(系统本身自带)但是后续编译 DNSProxy 时有关于 openssl 的报错的话,你仍需要按照下方方法手动编译安装一次 安装示例: 复制1 2 3 4 5 6cd /usr/src wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz tar zxvf openssl-1.1.0h.tar.gz cd openssl-1.1.0h ./config --prefix=/usr make && make install部署 Pcap DNSProxy编译安装 复制1 2 3 4 5 6cd /usr/src git clone https://github.com/Lyoko-Jeremie/Pcap_DNSProxy.git cd Pcap_DNSProxy/Source/Auxiliary/Scripts chmod +x CMake_Build.sh ./CMake_Build.sh cp -r /usr/src/Pcap_DNSProxy/Source/Release /usr/local/Pcap_DNSProxy这样 Pcap DNSProxy 将会位于/usr/local/Pcap_DNSProxy 修改配置首先进入 Pcap DNSProxy 软件目录 复制1cd /usr/local/Pcap_DNSProxy编辑Config.conf,修改以下提到的部分配置内容 只是我个人推荐,你当然可以按照自己的意愿更改设置,请参考 软件作者非常负责写的这个很长很长的配置文件说明文档 复制1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20[Listen] Operation Mode = Server [DNS] Outgoing Protocol = IPv4 + TCP [Addresses] IPv4 Main DNS Address = 208.67.222.222:443 IPv4 Alternate DNS Address = 208.67.220.220:443|208.67.222.220:443|208.67.220.222:443 IPv4 Local Main DNS Address = 119.29.29.29:53 IPv4 Local Alternate DNS Address = 1.2.4.8:53|223.5.5.5:53|114.114.114.114:53 IPv6 Main DNS Address = [2620:0:CCC::2]:443 IPv6 Alternate DNS Address = [2620:0:CCD::2]:443 IPv6 Local Main DNS Address = [240c::6666]:53 IPv6 Local Alternate DNS Address = [240c::6644]:53 [Switches] Domain Case Conversion = 0 EDNS Label = 1 EDNS Client Subnet Relay = 1部分解释: ListenOperation Mode 为Server时才能允许外网设备DNS通过 TCP 使用 OpenDNS 避免 UDP 有时因被 QoS 而无法查询Addresses对于国外域名使用 OpenDNS对于国内域名使用 DNSPod > CNNIC | 阿里 | 114Switches关闭域名随机大小写转换(因为目前实际上没什么必要开启 EDNS注册系统服务如果你的系统支持使用systemctl控制服务编辑Pcap_DNSProxy.service文件: ExecStart=程序所在目录的绝对路径,并在最后加上程序的名称 WorkingDirectory=程序所在目录的绝对路径 例如: 复制1 2ExecStart=/usr/local/Pcap_DNSProxy/Pcap_DNSProxy WorkingDirectory=/usr/local/Pcap_DNSProxy然后执行./Linux_Install.Systemd.sh即可安装服务,服务会自动启动 复制1 2# 服务控制 systemctl start|stop|restart|status Pcap_DNSProxy.service如果你的系统只支持使用service控制服务编辑PcapDNSProxyService文件: NAME=程序的名称 PATH=程序的绝对路径 例如: 复制1 2NAME=Pcap_DNSProxy PATH=/usr/local/Pcap_DNSProxy然后执行./Linux_Install.SysV.sh即可安装服务,服务会自动启动 复制1 2# 服务控制 service Pcap_DNSProxy start|stop|restart|statusEnjoy将你的计算机的 DNS 设置为你服务器的 DNS 服务器记得配置防火墙(或/且安全组)开放53端口,如果你不懂请自行百度 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |