您好,欢迎光临系统之家!

系统之家 - 为您打造全网最优秀的系统论坛!

 找回密码
 注册
搜索

ubuntu使用ChinaDNS搭建DNS服务器附源码分析

查看: 188|回复: 1

[教程] ubuntu使用ChinaDNS搭建DNS服务器附源码分析 [复制链接]

Rank: 64Rank: 64Rank: 64Rank: 64

UID
5
帖子
6506
威望
4263 点
黄金
10439 金币
在线时间
4444 小时
注册时间
2005-5-13
最后登录
2020-2-20

终身成就奖 宣传大使奖

发表于 2019-7-27 14:36:41 |显示全部楼层
有时内网需要DNS服务器,网上给的大多教程感觉都没有ChinaDNS方便。
因为ChinaDNS可以根据列表,自动选择不同的上游DNS服务器。
注:我用的是ubuntu14

首选需要安装gcc和make来编译,
  1. apt-get install gcc
  2. apt-get install make
复制代码
然后下载源代码,
  1. wget https://github.com/shadowsocks/ChinaDNS/releases/download/1.3.2/chinadns-1.3.2.tar.gz
  2. tar -zxvf chinadns-1.3.2.tar.gz
  3. cd chinadns-1.3.2
  4. ./configure && make
复制代码
成功后编译好的程序生成在./src目录中。使用姿势可以是酱婶儿的:
  1. ./src/chinadns -p 53 -c list.txt -s 180.76.76.76,192.168.1.1 &
复制代码

这样执行直接进入后台了,程序会自动使用百度公共DNS解析,如果ip不在list.txt中,再使用192.168.1.1解析。
这样内网使用DNS就十分方便了。

有些版本只有configure.ac,目录下有autogen.sh,运行autogen.sh需要automake,所以可能需要:
  1. apt-get install automake
复制代码



中华人民共和国宪法第四十条:
中华人民共和国公民的通信自由和通信秘密受法律的保护。

使用道具 举报

Rank: 64Rank: 64Rank: 64Rank: 64

UID
5
帖子
6506
威望
4263 点
黄金
10439 金币
在线时间
4444 小时
注册时间
2005-5-13
最后登录
2020-2-20

终身成就奖 宣传大使奖

发表于 2019-7-28 15:30:55 |显示全部楼层
先啰嗦一嘴,clowwindy我个人认为是实力派大牛,至少ChinaDNS这个优化方案他写出来之后,过去4年中几乎没有更好的优化方案出现。源码在src目录中,工作主体从第171行main函数开始,经194行的while循环,把结果分别交由565行dns_handle_local和654行dns_handle_remote处理。

dns_handle_remote主要处理IP列表外域名解析,主要功能用should_filter_query,分dns_is_chn和dns_is_foreign两种情况处理。处理的循环在775行,判断在794行if (test_ip_in_list(*(struct in_addr *)rd, &chnroute_list))。判断为如果DNS解析结果不在中国IP列表当中则,return 1,此返回值对应682行r = should_filter_query的判断。

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

回顶部