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

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

 找回密码
 注册
搜索

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

查看: 85|回复: 1

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

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

UID
5
帖子
6481
威望
4244 点
黄金
10397 金币
在线时间
4289 小时
注册时间
2005-5-13
最后登录
2019-8-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就十分方便了。


郑重声明:
1. 本人过去、现在以及将来都不认识楼主,且自古以来与楼主无利益关系。
楼主表述之事与本人无关,只是本着"看贴回贴,利人利己的中华民族优秀传统美德",顺便凑个热闹.
2. 本人在此留言均为网络上复制,用于检验电脑键盘录入、屏幕显示的机械、光电性能。
并不代表本人局部或全部同意、支持或者反对楼主观点。

使用道具 举报

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

UID
5
帖子
6481
威望
4244 点
黄金
10397 金币
在线时间
4289 小时
注册时间
2005-5-13
最后登录
2019-8-20

终身成就奖 宣传大使奖

发表于 2019-7-28 15:30:55 |显示全部楼层
先啰嗦一嘴,发现日本有根域名服务器,以为离中国近用的可能会很方便,结果发现不适合个人直接用。
因为根域名服务器返回的是域名所属服务器地址,并不直接返回解析结果。(我以前不知道-,-b)

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的判断。

使用道具 举报

发表回复

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

回顶部