V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
adrianzhang
V2EX  ›  Linux

新春献礼!无污染私人安全DNS服务器

  •  1
     
  •   adrianzhang · 2014-01-29 21:49:13 +08:00 · 35239 次点击
    这是一个创建于 3745 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个是一个在虚拟机里运行的DNS服务器,在局域网中,只要运行,将其他电脑的DNS设置指向它,就好了。智能找到正确的IP地址。用https访问一些不能访问的网站,比如google全套服务,有惊喜!下载地址: http://bcs.duapp.com/raspberrypi/index.html
    第 1 条附言  ·  2014-02-03 09:59:30 +08:00
    主页地址修正为
    http://bcs.duapp.com/secdns/index.html

    原有地址会逐步下线,请访问新地址。

    为防止主页被污染,请关注微博: http://weibo.com/laorendiannao ,有关SecDNS的任何变动消息都会在微博及时发布。比如新版本等。

    同时也开通微信:SecDNS
    微信主要用来答疑和解决问题。如果微博被污染,微信里也会通知新微博地址。
    第 2 条附言  ·  2014-02-08 21:37:47 +08:00
    新消息速报:

    SecDNS新版本部署完毕!此次更新后,SecDNS将获得双路后端DNS解析,本地高速缓存。从而使上网DNS解析速度增快一个数量级!

    当前正在运行的SecDNS,点击VMware Player里的Play, send Ctrl+Alt+Delete,然后等待SecDNS重启完毕显示出IP后,再操作一遍再次重启SecDNS,即可获得更新。

    如果有朋友之前下载的SecDNS出现无法正常服务的情况,那么只需从主页上直接再次下载,按照升级的步骤做一次即可。
    第 3 条附言  ·  2014-02-09 12:22:06 +08:00
    经过网友协助,发现当前版本的SecDNS在某些地区首次启动运行后无法正确工作,是因为SecDNS所依赖的云地址无法被解析。8.8.8.8和8.8.8.4, 114.114.114.114均无法解析,而233.5.5.5可以解析。因此,已经下载并有此问题的用户,解决办法是将路由器DHCP服务器的DNS临时改成233.5.5.5,待SecDNS启动完毕后点Play Send Ctrl+Alt+Delete重启一次,启动后即可将DHCP的DNS改回去。新的不依赖于用户本地解析的版本正在上传中,从明天(2014年2月10日)开始,下载的版本均不需要修改任何东西即可运行。
    第 4 条附言  ·  2014-02-09 12:56:32 +08:00
    我去,笔误。是223.5.5.5可以解析。待SecDNS正常运行后,可将路由器DHCP里的DNS改成SecDNS的地址。
    第 5 条附言  ·  2014-02-09 22:31:29 +08:00
    最新讨论:见t/99488,如果感兴趣,请参与。
    101 条回复    1970-01-01 08:00:00 +08:00
    1  2  
    welsmann
        1
    welsmann  
       2014-01-29 21:56:39 +08:00   ❤️ 3
    直接dnscrypt不就行了么...
    whtsky
        2
    whtsky  
       2014-01-29 21:57:57 +08:00   ❤️ 1
    乱码..
    wssgcg1213
        3
    wssgcg1213  
       2014-01-29 22:07:32 +08:00   ❤️ 1
    safari乱码 没有识别utf8
    Mihuwa
        4
    Mihuwa  
       2014-01-29 22:26:25 +08:00   ❤️ 1
    试试看
    adrianzhang
        5
    adrianzhang  
    OP
       2014-01-29 22:45:09 +08:00
    乱码已经修复。谢谢大家提醒。
    adrianzhang
        6
    adrianzhang  
    OP
       2014-01-29 22:46:12 +08:00
    @welsmann 考虑到这个是个家用服务器,可以提供给家里所有设备DNS服务,包括电脑、电视、手机、iPad等等。
    adrianzhang
        7
    adrianzhang  
    OP
       2014-01-29 23:10:21 +08:00   ❤️ 2
    设置好SecDNS以后,把iPhone的DNS设置为它,看看you...be吧。
    1423
        8
    1423  
       2014-01-29 23:53:55 +08:00
    惊喜是什么?上 google play 是美国版?proxydns那样的?
    AstroProfundis
        9
    AstroProfundis  
       2014-01-29 23:58:09 +08:00
    好奇怎么实现的,有点晚了,先下载明天有空试试看(目测白天没空嘤嘤嘤)
    adrianzhang
        10
    adrianzhang  
    OP
       2014-01-30 00:14:30 +08:00
    @1423 这个仅仅是给你正确的DNS地址,如果google play设置了看来源IP,那你还是上不去。所以,用这个DNS再加上爬墙工具,就保证没问题。
    adrianzhang
        11
    adrianzhang  
    OP
       2014-01-30 00:14:54 +08:00   ❤️ 1
    @AstroProfundis 实现方式是云
    adrianzhang
        12
    adrianzhang  
    OP
       2014-01-30 00:16:18 +08:00
    此外,如果懂得设置家里路由器的话,把DHCP服务器给出的DNS设置为它,那么就不需要在电脑或手机上设置,直接获得无污染DNS.
    saybye
        13
    saybye  
       2014-01-30 01:01:29 +08:00   ❤️ 1
    具体点呢?
    @adrianzhang
    zhujinliang
        14
    zhujinliang  
       2014-01-30 08:59:00 +08:00 via iPad
    求具体实现原理,一看到“由专业的工程师予以24X7的保障”就不敢用了。。。
    wwek
        15
    wwek  
       2014-01-30 09:40:17 +08:00
    首先是感谢提供。
    然后

    能否公布 清洗原理 能开源么。

    否则v2ex 可能没什么人用。
    adrianzhang
        16
    adrianzhang  
    OP
       2014-01-30 10:17:17 +08:00
    @saybye TP-Link做例子的话,在路由器设置页面里,有DHCP服务器设置,这里的DNS改为SecDNS地址即可。
    jyhmijack
        17
    jyhmijack  
       2014-01-30 10:21:00 +08:00 via iPad
    家里六个人…一个windows都没有…没办法咯~不过用netgear刷了ddwrt之后已经爽歪歪了
    adrianzhang
        18
    adrianzhang  
    OP
       2014-01-30 10:26:37 +08:00
    @zhujinliang 具体实现是将UDP加密后发往国外服务器。
    adrianzhang
        19
    adrianzhang  
    OP
       2014-01-30 10:27:13 +08:00
    @wwek 原理就是加密的UDP传输。
    adrianzhang
        20
    adrianzhang  
    OP
       2014-01-30 10:29:01 +08:00
    @jyhmijack 今后还会发布ddwrt版本和其他版本,照顾使用各种系统的人。其实最早使用的是virtualbox,但是发现虚机迁移是个问题,还需要一定的设置才能在不同人的机器上跑起来。vmware虚机的好处就是下载后直接运行就可以了。
    qiuai
        21
    qiuai  
       2014-01-30 10:51:17 +08:00
    挺想知道把330M的文件放在百度云,然后这么提供下载..你一天出多少钱的流量费啊...
    adrianzhang
        22
    adrianzhang  
    OP
       2014-01-30 10:55:05 +08:00
    @qiuai 目前不要钱的。其实云盘很多都可以用来存放这个文件,然后做个链接就可以了。
    qiuai
        23
    qiuai  
       2014-01-30 10:57:04 +08:00
    @adrianzhang 哦,难怪.
    不过为什么不把服务器放在国内?放在国外还要受到GFW,跨海光缆,抽风等影响
    为什么不把最多人用最常用的直接一次性缓存到本地...
    而且本地缓存后,对于很多CDN服务和宕机切换服务是不是会造成完全失效?
    adrianzhang
        24
    adrianzhang  
    OP
       2014-01-30 11:04:48 +08:00
    @qiuai 这个系统本身是DNS服务器,采用加密UDP和智能调度,所以不受影响。访问国内的网站完全不受影响。跟自己设置一个公开的DNS没区别,只不过是自动化了,一次运行,不用再去改来改去。相当于把以前手工做的事情,全部自动化了。
    qiuai
        25
    qiuai  
       2014-01-30 11:15:53 +08:00
    @adrianzhang 明白了.我装在我的内网服务器上试试看~而且这个如果处理好了,对访问速度应该是加速..
    winterx
        26
    winterx  
       2014-01-30 11:32:40 +08:00
    能否加入静态DNS?
    deyu260
        27
    deyu260  
       2014-01-30 11:41:45 +08:00
    The selected virtual disk is incompatible with this Workstation 8.0 virtual machine. Adding this disk would make this virtual machine incompatible with older VMware products.

    vmware play 6应该是对应的workstation 10 我8的还无法使用

    lz考虑下降级虚拟机的硬件版本吧 跟esxi5兼容下
    luikore
        28
    luikore  
       2014-01-30 11:44:48 +08:00
    把 53 的查询转成别的端口或者直接用 tcp 查询就行了, 哪需要那么神秘...
    adrianzhang
        29
    adrianzhang  
    OP
       2014-01-30 12:13:48 +08:00
    @winterx 你是说静态解析?SecDNS设计的初衷是不需要做任何设置,只要运行即可。所以并没有开放对系统进行更改的方法。
    adrianzhang
        30
    adrianzhang  
    OP
       2014-01-30 12:15:34 +08:00   ❤️ 1
    @deyu260 谢谢。这个会逐步上。目前只有一个人开发,有点忙不过来。从警告上看,似乎可以运行,只不过没法用其他VMware产品来管理,比如vCenter什么的。但是这个机器只要运行着就好,不需要管理。坏了的话,重新下载一个运行起来就可以。
    adrianzhang
        31
    adrianzhang  
    OP
       2014-01-30 12:17:11 +08:00
    @luikore 你说的方式无法彻底解决被污染域名的解析问题,即使用TCP,也会被污染。不是加密传输就无法保证完全不被污染。
    vibbow
        32
    vibbow  
       2014-01-30 12:17:48 +08:00
    loveminds
        33
    loveminds  
       2014-01-30 12:20:05 +08:00 via Android
    @adrianzhang 运行在一个VPS中应该不错
    adrianzhang
        34
    adrianzhang  
    OP
       2014-01-30 13:18:27 +08:00
    @vibbow bcs.baidu.com是一个提供给所有开发者使用的平台,所以可能有些人用来做坏事。但是SecDNS页面就是个简单的html。新版页面正在做,随便供大家检查源码,相信这里很多人有这个能力。
    adrianzhang
        35
    adrianzhang  
    OP
       2014-01-30 13:21:23 +08:00
    @loveminds 有道理,找时间把系统dump出来并开放。其实使用linux rescure方法可以进入这个VMware虚机系统。如果有人怕不安全,可以进去随便检查,完全没有恶意代码。
    adrianzhang
        36
    adrianzhang  
    OP
       2014-01-30 14:45:27 +08:00
    已经更新了网页设计。折腾一上午。。。
    qiuai
        37
    qiuai  
       2014-01-30 14:46:44 +08:00
    @livid 我怎么完全收不到@的提示了?
    saybye
        38
    saybye  
       2014-01-30 16:34:13 +08:00
    @adrianzhang
    NAT网络,可以ping通,
    但是一直
    DNS request timed out.
    timeout was 2 seconds.
    另外,求root账号密码
    adrianzhang
        39
    adrianzhang  
    OP
       2014-01-30 16:43:59 +08:00
    @saybye SecDNS需要能够像普通电脑一样访问外网,要不然无法把DNS请求转出去。如果遇到timeout,直接重启就行。root密码就不公布了,用linux rescure可以进入系统的,方法请自行搜索一下。树立点门槛是因为本身它可以无故障运行,有问题只需要重启,不需要进入系统查看。
    adrianzhang
        40
    adrianzhang  
    OP
       2014-01-30 16:46:15 +08:00
    @saybye 为了避免嫌疑,SecDNS本身也没有设计远程登录进去排错的功能。
    adrianzhang
        41
    adrianzhang  
    OP
       2014-01-30 17:02:52 +08:00
    @saybye 此外,按照屏幕提示发邮件,告知哪个域名出不去,得到回复后重启即可解决。
    adrianzhang
        42
    adrianzhang  
    OP
       2014-01-30 17:05:20 +08:00
    如果有问题没有得到及时响应,请在微博里发消息。微博:http://weibo.com/laorendiannao,在主页的右下角也有微博地址。
    saybye
        43
    saybye  
       2014-01-30 20:48:23 +08:00
    @adrianzhang
    果然重启一下就能连上网了,

    ROOT已搞定, 是linux rescue模式。。 多打个字母
    adrianzhang
        44
    adrianzhang  
    OP
       2014-01-30 21:13:14 +08:00
    @saybye 握手!祝新年万事如意!
    saybye
        45
    saybye  
       2014-01-31 00:17:33 +08:00
    @adrianzhang 哈哈 马年吉祥~
    jacy
        46
    jacy  
       2014-01-31 00:26:11 +08:00
    这个要搭建在同一个局域网吧,放外面的服务器还是会被污染的吧
    loveminds
        47
    loveminds  
       2014-01-31 01:48:11 +08:00 via Android
    @adrianzhang 做个ISO,或者干脆做成脚本,在CentOS和Debian6.0以上版本能安就行
    adrianzhang
        48
    adrianzhang  
    OP
       2014-01-31 01:54:38 +08:00
    @jacy 只要不放在国外就没问题,因为主要是骨干网上有黑客污染。详情见主页FAQ里SecDNS运行机制介绍。另外:祝马年万事如意!
    adrianzhang
        49
    adrianzhang  
    OP
       2014-01-31 02:01:47 +08:00
    @loveminds 建议很不错。不过主要是需要花时间来做ISO(我最初为了缩小虚机体积花了一整天,最期望用LFS来做,但是就赶不及在春节前发布了),现在的这个模式很简单,从有这个想法到发布,只用了三天。做脚本也有一定的问题,因为这个工作机制要安装一些开源软件,有些软件在不同版本上是不work的,还有的版本上需要重新编译。基本上,这个是能够想到最简单的开包即用的方法了。免安装免维护,还不用适配各种各样的系统。另:请注意休息,祝马年幸福安康!
    kawaiiushio
        50
    kawaiiushio  
       2014-01-31 07:53:09 +08:00
    @adrianzhang 如果能装在自己的vps上就好了 希望支持哈~
    adrianzhang
        51
    adrianzhang  
    OP
       2014-01-31 09:59:42 +08:00
    @kawaiiushio 装在VPS,是说海外的virtual private server吗?这个装在国外就没用了,见上一条和主页FAQ
    fqrouter2
        52
    fqrouter2  
       2014-01-31 15:06:39 +08:00
    @adrianzhang 和v2ex的dns一样,用3389提供udp的dns查询服务(http://www.v2ex.com/t/39490)
    然后在国内的dns服务器只要做一个53端口到3389的转发就可以避免GFW的劫持了。考虑到联通电信的网络,还可以开不同的端口对应给不同的网络优化的ip(设置不同的upstream的dns),或者试试eDNS,这个就没玩过了。
    shizzmk
        53
    shizzmk  
       2014-01-31 16:55:51 +08:00
    漲姿勢學習ing。。。
    adrianzhang
        54
    adrianzhang  
    OP
       2014-01-31 17:18:17 +08:00
    @fqrouter2 谢谢!你说的方式是可以避免。需要手工做一些事情:服务器端要侦听不同端口,这个服务器还要在国外或在国内做转发,总而言之一个国内的服务器是必不可少。然后客户端再改端口,如果你只有一两台机器,或者可以改,那么没问题,但是如果机器很多而且有些不能改或很难改(例如iphone和ipad)怎么办?此外,被污染的才走国外,没有被污染的走国内的就可以,怎么旁路?哪些是被污染的,哪些是没有污染的,这个如何智能学习让这个列表随时可更新?这些问题,都用手工处理岂不太费劲?用SecDNS只要运行就全都解决了。所以我之前回答SecDNS是将一系列手工要解决的问题自动化了。对于geek,可以体验手工的乐趣,对于很多不熟悉这些技术的人,SecDNS就显得很有必要了。
    adrianzhang
        55
    adrianzhang  
    OP
       2014-01-31 17:21:34 +08:00
    @fqrouter2 目前SecDNS智能学习的模式正在搭建,过些日子即可部署完毕。用的人越多,SecDNS越智能,能够随时根据污染情况变化调整旁路列表。
    kawaiiushio
        56
    kawaiiushio  
       2014-01-31 19:41:54 +08:00
    @adrianzhang 嗯 以后会放出下载吗 我的系统本来就是linux
    adrianzhang
        57
    adrianzhang  
    OP
       2014-01-31 19:49:27 +08:00
    @kawaiiushio 应该不会,重点是先部署智能学习,再做虚拟机和嵌入式设备的整体性OS开发。开放技术原理的话,会有很大风险,毕竟端口和服务地址什么的不能老变来变去的,有了传播之后造污染的“黑客”们可能很快就会进行封锁。
    fqrouter2
        58
    fqrouter2  
       2014-01-31 19:58:08 +08:00
    @adrianzhang 搜集被污染的域名和被RST的URL是很容易做到的。以fqrouter目前的部署量,跑个几天就可以有一个大致的情况。只是目前还没有什么动机来做这样的数据搜集工作,因为这个名单变化很快的。智能学习,其学习结果对于circumvention本身意义不大。
    adrianzhang
        59
    adrianzhang  
    OP
       2014-01-31 20:36:35 +08:00
    @fqrouter2 看了看fqrouter,很不错啊,ver2都有8000下载了,星级也很高。你是一个人开发的吗?还是团队?可否发邮件或IM沟通一下?比如微信什么的,找我用主页“背景”里面的联系方式或者直接看SecDNS屏幕发邮件,我还不知道你的联络方式。
    kawaiiushio
        60
    kawaiiushio  
       2014-01-31 22:41:27 +08:00   ❤️ 1
    @adrianzhang [email protected] 他的联系方式 fqrouter的关于里面还有我的项目哦~ ^_^
    adrianzhang
        61
    adrianzhang  
    OP
       2014-01-31 23:33:01 +08:00
    @kawaiiushio 暂时看不了主页,被黑(污染、墙)了吧?你的项目是什么呢?
    kawaiiushio
        62
    kawaiiushio  
       2014-01-31 23:52:44 +08:00
    adrianzhang
        63
    adrianzhang  
    OP
       2014-02-01 14:34:46 +08:00
    @kawaiiushio blog设计很精美!
    kawaiiushio
        64
    kawaiiushio  
       2014-02-01 18:35:23 +08:00
    @adrianzhang (//∇//)
    adrianzhang
        65
    adrianzhang  
    OP
       2014-02-02 15:06:14 +08:00
    主站地址更改为http://bcs.duapp.com/secdns/index.html
    请关注微博及时获取更新,微博页面地址: http://weibo.com/laorendiannao
    关注微信获得帮助,万一微博被k,可以从微信获取微博最新地址。微信号:SecDNS
    SkyFvcker
        66
    SkyFvcker  
       2014-02-02 18:47:07 +08:00
    额,这么简单的功能为啥要用虚拟机……
    https://github.com/henices/Tcp-DNS-proxy
    adrianzhang
        67
    adrianzhang  
    OP
       2014-02-02 19:40:31 +08:00
    @SkyFvcker 前面有解释,设备多或者不能改。
    szpunk
        68
    szpunk  
       2014-02-03 10:57:37 +08:00
    目前 Windows/Linux 下(可用于防止污染的)最完美的 DNS 转发器是

    DNSForwarder https://github.com/holmium/dnsforwarder/

    你想到没想到的功能它都有了。

    主要功能看看配置文件大概就知道了:

    # DNS 转发器的配置文件
    # Configure File for dnsforwarder
    # 此配置文件最好是 ANSI 编码的

    ##################################################
    #
    # 本地
    #
    ##################################################

    # LocalInterface <IP>
    # 设置在本地开启的界面,可以是本地回环地址 (127.0.0.1) ,本地局域网,以及互联网 (since 2.2)
    # 如果是 IPv6 地址,请在地址两端加上方括号,例如 [::1] (本地回环)、[fe80::699c:f79a:9bb6:1] (since 2.3)
    LocalInterface 127.0.0.1

    # LocalPort <NUM>
    # 本地开启的端口 (since 2.2)
    LocalPort 53

    # OpenLocalTCP <BOOLEAN>
    # 在本地开启TCP,以便接收TCP协议的查询 (since 2.2)
    # 可选值:`false' 或 `true'
    OpenLocalTCP false

    ##################################################
    #
    # IP 选择策略
    #
    ##################################################

    #########################
    # 服务器地址
    #########################

    # 您可以设置两组上游服务器,
    # 一组是用 TCP 协议的服务器 (由 `TCPServer' 指定),
    # 另一组是用 UDP 协议的服务器 (由 `UDPServer' 指定)

    # 选项 `PrimaryServer' 用来指定首选的服务器(同时也指定了协议)
    # 任何不在排除列表 (或者 GFW List) 中的域都会优先通过首选服务器及其协议来查询,
    # 在排除列表 (或者 GFW List) 中的域会优先使用另一组服务器并通过另一种协议查询。
    # PrimaryServer
    # 首选服务器 (since 2.2)
    # 可选值:`TCP' 或 `UDP'
    PrimaryServer UDP

    # TCPServer <IP[:PORT]>
    # 指定用 TCP 协议查询的上游服务器 (since 2.2)
    # 可以指定多个服务器,服务器之间用半角逗号隔开 (since 2.3)
    # 如果不加端口号,则默认为 53 (since 2.3)
    # 例如 192.168.1.2:300 以及 4.2.2.2 (since 2.3)
    # 对于IPv6地址,请在地址两端加方括号,例如 [2001:4860:4860::8888] 以及加端口的形式 [2001:4860:4860::8888]:53 (since 2.3)
    TCPServer 8.8.4.4,8.8.8.8

    # UDPServer <IP[:PORT]>
    # 指定用 UDP 协议查询的上游服务器 (since 2.2)
    # 可以指定多个服务器,服务器之间用半角逗号隔开 (since 2.3)
    # 如果不加端口号,则默认为 53 (since 2.3)
    # 例如 192.168.1.2:300 以及 4.2.2.2 (since 2.3)
    # 对于IPv6地址,请在地址两端加方括号,例如 [2001:4860:4860::8888] 以及加端口的形式 [2001:4860:4860::8888]:53 (since 2.3)
    UDPServer 8.8.8.8,114.114.115.115

    # DedicatedServer <DOMAIN1 SERVER_IP1>,<DOMAIN2 SERVER_IP2>,...
    # 为某些域名指定专门的查询服务器,而不使用服务器列表(`TCPServer' 和 `UDPServer')中的服务器 (since 2.5 b1)
    # 格式为:域名 服务器地址
    #
    # 例如:DedicatedServer www.google.com 8.8.8.8
    # 这样所有对域名 www.google.com 的查询都通过 8.8.8.8 这个服务器来进行
    # 如果所指定的域名不在排除列表中,那么将通过 `PrimaryServer' 所指定的协议与服务器通讯,
    # 否则将通过另一种协议与服务器通讯。
    # 不同项之间用半角逗号 (`,') 分隔,同时注意最后不要有逗号
    # 可以有多条 `DedicatedServer' 选项
    DedicatedServer

    #########################
    # 服务器选项
    #########################

    # AllowFallBack <BOOLEAN>
    # 如果第一次对某个域名(不在排除列表和 GFW List 中)查询失败,是否再次用另一种协议及其服务器查询 (since 2.5 b1)
    # 对于已经指定专用服务器的域名,只切换协议
    # 可选值:`false' 或 `true'
    AllowFallBack false

    # TimeToServer <NUM>
    # 与服务器的超时时间,毫秒 (since 2.2)
    TimeToServer 3000

    # ParallelQuery <BOOLEAN>
    # 是否启用 UDP 并发查询 (since 2.6 b1)
    # 并发查询指的是,向所有指定的 UDP 服务器发送查询请求,取最先接受到的有效回复作为查询结果,并丢弃其余的回复
    # 开启此选项必须保证 `UDPServer' 中的服务器都是 IPv4 或者都是 IPv6 的
    # 此选项不影响 `DedicatedServer' 的设置,也就是说,对于已经指定专用服务器的域名,只通过专用服务器进行查询
    # 可选值:`false' 或 `true'
    ParallelQuery true

    # UDPAntiPollution <BOOLEAN>
    # 是否开启 UDP 防污染 (since 2.6 b1)
    # “防污染”指的是过滤伪造的 DNS 数据包
    # 开启时需要保证 `UDPServer' 中存在国外的 DNS 服务器,如果配合使用 `UDPBlock_IP' 选项将大大提高过滤的精确度
    # 可选值:`false' 或 `true'
    UDPAntiPollution true

    # UDPBlock_IP <IP1>,<IP2>,.....
    # 阻挡含有以下 IP 地址(只支持 IPv4 地址)的 UDP DNS 数据包 (since 2.6 b1)
    # 以下列表中已经含有部分伪造的 IP 地址,可以执行 `dnsforwarder -P' 来获取更多伪造的 IP 地址
    # 如果 `UDPAntiPollution' 为 `false',此选项无效
    UDPBlock_IP 243.185.187.39,46.82.174.68,37.61.54.158,93.46.8.89,59.24.3.173,203.98.7.65,8.7.198.45,78.16.49.15,159.106.121.75

    #########################
    # 排除列表
    #########################

    # ExcludedDomain <DOMAIN1>,<DOMAIN2>,.....
    # 排除列表,每个域之间用半角逗号 (`,') 分隔,同时注意最后不要有逗号 (since 2.2)
    # 支持通配符。 (since 2.2.2)
    # 一个项目如果不含通配符,则从域名尾部开始匹配,例如 `123.com' 则会匹配所有以 `123.com' 结尾的域名。
    # 如果含通配符则严格按照通配符来匹配。
    # 可以有多条 `ExcludedDomain' 选项 (since 2.2.2)
    ExcludedDomain

    # GfwList <STRING>
    # 加载 GFW List (since 2.2.3)
    # GFW List 中的域名将被添加到排除列表
    # 只有当 `PrimaryServer' 的值为 `UDP' 才会加载 GFW List (否则排除掉全用 UDP 了)
    # 如果保留为空,则不载入 GFW List
    #GfwList https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt

    # GfwListBase64Decode <BOOLEAN>
    # GFW List 是否需要 Base64 解码
    # 可选值:`false' 或 `true'
    GfwListBase64Decode true

    # GfwListUpdateInterval <NUM>
    # 重新载入 GFW List 的间隔时间,秒 (since 2.2.4)
    # -1 表示不重新载入
    # 如果保留为空。则使用默认值 (7200)
    GfwListUpdateInterval 7200

    # GfwListRetryInterval <NUM>
    # 当下载 GFW List 失败后的重试时间,秒 (since 2.2.4)
    # 如果保留为空,则使用默认值 (30)
    GfwListRetryInterval 30

    # GfwListDownloadPath <STRING>
    # GFW List 下载到本地文件的路径 (since 2.3)
    # 如果保留为空,则默认在与程序所在相同的文件夹内
    GfwListDownloadPath

    #########################
    # Hosts
    #########################

    # Hosts <STRING>
    # Hosts 文件路径 (绝对路径),可以是本地 Hosts 文件,也可以是网络上的 Hosts 文件 (以 http:// 或者 https:// 开头)。 (since 2.2)
    # 例如 C:\Windows\System32\drivers\etc\hosts 或 /etc/hosts 或 http://xxx.com/hosts
    # 在 Hosts 文件中,支持通配符 (`*' 和 `?') (只能在域名中出现通配符)
    # 路径两头不要加引号
    # Hosts 文件必须是原始格式,不能是压缩文件或者 HTML 文件
    # Hosts 文件最好是 ANSI 编码的
    # Hosts 中的 IPv6 地址不用加方括号
    # 如果保留为空,则不从文件载入 Hosts
    Hosts

    # HostsUpdateInterval <NUM>
    # 重新载入 Hosts 文件的间隔时间,秒 (since 2.2)
    # -1 表示不重新载入
    # 如果保留为空,则使用默认值 (600)
    HostsUpdateInterval 1800

    # HostsDownloadPath <STRING>
    # 当 Hosts 为网络 Hosts 时,Hosts 文件的下载到本地文件的路径 (不是文件夹路径) (since 2.2)
    # 例如 C:\Windows\Temp\hosts 或者 /tmp/hosts
    # 绝对路径,路径两头不要加引号
    # 如果文件存在则覆盖
    # 对本地 Hosts 文件此选项无效
    # 如果保留为空,则使用默认路径 (默认在与程序所在相同的文件夹内 (since 2.3) )
    HostsDownloadPath

    # HostsScript <STRING>
    # 当 Hosts 为网络 Hosts 时,在每次下载完 Hosts 文件后、加载 Hosts 文件之前执行的脚本 (since 2.2)
    # 绝对路径,路径两头不要加引号
    # 对本地 Hosts 文件此选项无效
    # 如果保留为空,则不执行脚本
    HostsScript

    # HostsRetryInterval <NUM>
    # 当网络 Hosts 下载失败后的重试时间,秒 (since 2.2.2)
    # 仅对网络 Hosts 有效
    # 如果保留为空,则使用默认值 (30)
    HostsRetryInterval 30

    # AppendHosts <HOSTS>,<HOSTS>,<HOSTS>,...
    # 附加的 Hosts,即使 `Hosts' 选项为空也照样载入 (since 2.2.2)
    # <HOSTS>的写法与文件中的一样,同样支持通配符
    # IPv6 地址不用加方括号
    # 多条 Hosts 可以用半角逗号分隔开,也可以写多条 `AppendHosts'
    # 比如可以写成:
    # AppendHosts 127.0.0.1 123.com,127.0.0.1 456.com,1.2.3.4 foobar.*
    # 也可以分多条写:
    # AppendHosts 127.0.0.1 123.com
    # AppendHosts 127.0.0.1 456.com
    # AppendHosts 1.2.3.4 foobar.*
    #
    # 也可以定义 CName 的 Hosts 项,例如:
    # AppendHosts www.google.cn *.google.com
    # 这样所有匹配 *.google.com 的域名都将指向 www.google.cn 的 IP 地址 (since 2.3)
    #
    # 如果使某些域名跳过在 Hosts 中的查询,可以
    # AppendHosts @@ *.012345.com
    # 这样所有匹配 *.012345.com 的域名都不会在 Hosts 中查询
    AppendHosts

    ##################################################
    #
    # 缓存控制
    #
    ##################################################

    # UseCache <BOOLEAN>
    # 是否使用缓存(默认为文件缓存) (since 2.2)
    # 可选值:`false' 或 `true'
    UseCache true

    # CacheSize <NUM>
    # 缓存大小 (字节)
    # 缓存大小不能小于 102400 (100KB) (since 2.3)
    CacheSize 1048576

    # MemoryCache <BOOLEAN>
    # 是否使用内存缓存,而不是文件缓存 (since 2.3.2)
    # 可选值:`false' 或 `true'
    MemoryCache true

    # CacheFile <STRING>
    # 手工指定缓存文件 (不是文件夹) (since 2.3)
    # 如果保留为空,则默认在与程序所在相同的文件夹内
    # 如果 `MemoryCache' 为 `true',此选项无效
    CacheFile

    # IgnoreTTL <BOOLEAN>
    # 是否忽略 TTL (since 2.2)
    # 可选值:`false' 或 `true'
    # 为 `true' 时将忽略 TTL,此时所有的缓存条目将不会被移除
    # 为 `false' 时不忽略 TTL,缓存条目将会按照 TTL 的时间来移除
    # 当 `UseCache' 的值为 `false' 时,此选项无效
    IgnoreTTL false

    # OverrideTTL <NUM>
    # 强制使所有缓存的条目的 TTL 为 <NUM> (since 2.2)
    # 若 <NUM> 为 -1,则表示不进行强制
    # 当 `UseCache' 的值为 `false' 时,此选项无效
    # 当 `IgnoreTTL' 的值为 `true' 时,此选项无效
    OverrideTTL -1

    # MultipleTTL <NUM>
    # 将所有缓存条目的 TTL 加倍,倍数为 <NUM> (since 2.2)
    # 当 `UseCache' 的值为 `false' 时,此选项无效
    # 当 `IgnoreTTL' 的值为 `true' 时,此选项无效
    # 当 `OverrideTTL' 的值不为 -1 时,此选项无效
    MultipleTTL 3

    # ReloadCache <BOOLEAN>
    # 当程序启动后是否重新载入已有的文件缓存 (since 2.2.3)
    # 已有的缓存大小必须和 `CacheSize' 所指定的大小相等
    # 可选值:`false' 或 `true'
    # 如果 `MemoryCache' 的值为 `true',此选项无效
    ReloadCache false

    # OverwriteCache <BOOLEAN>
    # 如果已有的文件缓存无法重载,是否直接将其覆盖掉 (since 2.3)
    # 可选值:`false' 或 `true'
    # 如果 `MemoryCache' 的值为 `true',此选项无效
    # 如果 `ReloadCache' 的值为 `false',此选项无效
    OverwriteCache false

    ##################################################
    #
    # 杂项
    #
    ##################################################

    # UDPThreads <NUM>
    # 在本地进行 UDP 监听的线程数 (since 2.2)
    UDPThreads 3

    # DisabledType <NUM1>,<NUM2>,.....
    # 禁止查询的 DNS 类型列表,每个类型(用数字代表)之间用半角逗号 (`,') 分隔 (since 2.2)
    # 所有的 DNS 类型:
    # A 1 IPv4 地址
    # AAAA 28 IPv6 地址
    # APL 42
    # CERT 37
    # CNAME 5
    # DHCID 49
    # DLV 32769
    # DNAME 39
    # DNSKEY 48
    # DS 43
    # HIP 55
    # IPSECKEY 45
    # KEY 25
    # KX 36
    # LOC 29
    # MX 15
    # NAPTR 35
    # NS 2 Name Server
    # NSEC 47
    # NSEC3 50
    # NSEC3PARAM 51
    # PTR 12 Domain pointer
    # RRSIG 46
    # RP 17
    # SIG 24
    # SOA 6 start of authority record
    # SPF 99
    # SRV 33
    # SSHFP 44
    # TA 32768
    # TKEY 249
    # TSIG 250
    # TXT 16
    # ANY 255
    # AXFR 252
    # IXFR 251
    # OPT 41
    DisabledType

    # DisabledDomain <DOMAIN1>,<DOMAIN2>,.....
    # 禁止查询的域列表,每个域之间用半角逗号 (`,') 分隔 (since 2.2)
    # 支持通配符。 (since 2.2.2)
    # 一个项目如果不含通配符,则从域名尾部开始匹配,例如 `123.com' 则会匹配所有以 `123.com' 结尾的域名。
    # 如果含通配符则严格按照通配符来匹配。
    # 可以有多条DisabledDomain (since 2.2.2)
    DisabledDomain

    # RefusingResponseCode <NUM>
    # 当拒绝一次查询(`DisabledType' 或者 `DisabledDomain')的时候所返回的状态码 (since 2.6 b1)
    # 参见 RFC 1035,`4.1.1. Header section format',`Response code'
    RefusingResponseCode 0

    # DomainStatistic <BOOLEAN>
    # 是否启用域名统计 (since 2.5 b1)
    # 可选值:`false' 或 `true'
    DomainStatistic false

    # StatisticUpdateInterval <NUM>
    # 域名统计刷新时间间隔(秒) (since 2.5 b1)
    StatisticUpdateInterval 29
    Semidio
        69
    Semidio  
       2014-02-03 11:00:10 +08:00
    @adrianzhang 直接在路由器上装dnscrypt不就行了嘛?
    adrianzhang
        70
    adrianzhang  
    OP
       2014-02-03 11:02:19 +08:00
    @Semidio SecDNS主要给没刷路由器的人使用。
    szpunk
        71
    szpunk  
       2014-02-03 11:07:38 +08:00
    @Semidio 直接装 dnscrypt 会严重影响国内某些使用 CDN 加速的网站,得不偿失。
    adrianzhang
        72
    adrianzhang  
    OP
       2014-02-03 11:08:09 +08:00
    @szpunk SecDNS与DNSForwarder的不同之处在于,SecDNS的智能转发列表是自动学习自动更新的,只要运行,不需要手工去配置SecDNS本身。现在有很多与DNSforwarder一样功能的软件,但是需要安装和配置,适合于懂得技术的人,有自己手工调整的乐趣。而SecDNS更适合于那些不想每天折腾如何防止污染,想局域网内所有设备都能防止DNS污染。不想买VPN/VPS等,不想搭Shadowsocks等的人。从这个角度说,SecDNS与DNSForwarder有点像Mac与Linux这样的对比。
    pythonee
        73
    pythonee  
       2014-02-07 22:28:09 +08:00
    @adrianzhang 能否说说这个自动学习,自己更新的实现说下,别就一句是云,是加密的UDP这种我们听不懂的语言啊,这个东西能看到源码的吗,怎么感觉就是开箱即用的虚拟机
    alexecn
        74
    alexecn  
       2014-02-09 00:33:09 +08:00
    过完年了,google也送礼。youtube支持https模式访问视频了。
    用OPenerdns: 42.120.21.30 。
    浏览器直接就可以看https://www.youtube.com了。视频还挺流畅的。

    OpenerDNS项目地址:https://code.google.com/p/openerdns/
    geeklian
        75
    geeklian  
       2014-02-09 00:36:42 +08:00
    ....为啥要打包做成Vmware虚拟机。

    bin和exe不好么。。
    adrianzhang
        76
    adrianzhang  
    OP
       2014-02-09 00:52:45 +08:00
    @pythonee
    @alexecn
    @geeklian SecDNS能自动学习是因为每次启动的时候都会下载配置,存储在云中的配置是根据污染情况调整的,有自动,有手工。搭建一个国内的DNS是方便,但是用的人多了会被黑客们污染掉或者和谐掉。而运行SecDNS相当于直接把DNS服务器放家里,永远不会因为发布在公网的DNS被污染或和谐而导致用户另寻他途。
    GPU
        77
    GPU  
       2014-02-09 01:37:35 +08:00
    想问配置要求如何 . 能不能运行在水星4530 , 或者说树莓派这些设备 .
    geeklian
        78
    geeklian  
       2014-02-09 01:58:51 +08:00
    好吧...其实工作原理不在乎。

    只是感觉为了一个DNS,废掉300MB内存和CPU的休眠。。损失太大了。
    kqz901002
        79
    kqz901002  
       2014-02-09 11:54:28 +08:00
    @adrianzhang 可以做成debian的包可以么?可以造福广大linux用户
    standin000
        80
    standin000  
       2014-02-09 12:07:30 +08:00
    @szpunk 不懂?怎么解释。
    adrianzhang
        81
    adrianzhang  
    OP
       2014-02-09 12:12:08 +08:00
    @GPU
    @geeklian
    @kqz901002
    是的,很多人反映需要Linux运行版,树莓派版本正在开发中,会是下一个发行的版本。路线图是:树莓派--Linux CentOS 6/Debian 6 -- OpenWRT,可关注微博,新消息第一时间发布在微博上。
    Tink
        82
    Tink  
       2014-02-09 15:17:02 +08:00
    需要一个archlinux版。。。
    weeker
        83
    weeker  
       2014-02-10 08:42:07 +08:00   ❤️ 1
    看上去不错,不过vm版本放在单位的比较合适
    zanefox
        84
    zanefox  
       2014-02-10 09:35:44 +08:00
    @Tink 小白同求 Archlinux 版本
    bukeyi
        85
    bukeyi  
       2014-02-10 12:18:25 +08:00
    我的windows 下载了官方的文件加Vmware player 运行后根本就不给出DNS地址。。。无语 请问有没有视频指南 具体如何操作?
    adrianzhang
        86
    adrianzhang  
    OP
       2014-02-10 13:22:13 +08:00
    @bukeyi 是因为有如下两点:
    1/ 如果你是今天之前下载的,先将路由器里DHCP服务器的DNS更改为223.5.5.5,待SecDNS启动后再改为SecDNS地址。
    2/ 启动后如果还是没有IP,请将SecDNS的网卡改为“桥接”,英文版VMware里这个选项叫做bridged。

    如果有困难,请微信SecDNS询问,保证你能用上。
    adrianzhang
        87
    adrianzhang  
    OP
       2014-02-10 13:25:03 +08:00
    @zanefox
    @Tink
    请看t/99488
    bukeyi
        88
    bukeyi  
       2014-02-10 23:51:34 +08:00
    全部删除后再下载 安装 但是貌似还是不可以 防火墙全部关闭 还有DNS也修改为223.5.5.5我录制了一段视频 等下发上来 还在发布中
    adrianzhang
        89
    adrianzhang  
    OP
       2014-02-11 00:02:06 +08:00
    @bukeyi 今天刚刚有个朋友跟你一样的情况,发现是因为首次开机取不到地址。然后解决的方法是删除这个虚机,从压缩包里再解出一个,先改网卡配置为桥接,再启动。如果还是找不到ip,则再从压缩包里解压一个,改别的网卡配置,直到能得到ip才行。该死的vmware,居然网卡这里情况这么多。有的人可以直接用,有的人要改桥接,有的人要改桥接再勾选复制本机网卡状态。
    抱歉让你费神了。等待你视频。一定会给你解决,这样,也能知道SecDNS还需要怎样完善。多谢!
    bukeyi
        90
    bukeyi  
       2014-02-11 00:04:10 +08:00
    视频来了
    bukeyi
        91
    bukeyi  
       2014-02-11 00:06:15 +08:00
    我现在使用的是桥接 复制物理连接
    bukeyi
        92
    bukeyi  
       2014-02-11 00:13:35 +08:00   ❤️ 1
    现在解决了 网络适配器选了NAT模式 就出现了Ip地址 谢谢作者的辛勤劳动
    adrianzhang
        93
    adrianzhang  
    OP
       2014-02-11 00:14:07 +08:00
    @bukeyi 视频上看按send ctrl+alt+delete 之前,eth0启动成功,是正在配置dnsmasq的时候按了重启。这个需要说明一下:要等待dnsmasq启动完成。

    请这样处理:

    从压缩包再解出来一个,删了这个。启动等待dnsmasq过了,然后出现IP就可以了。

    dnsmasq卡住是因为正要下载白名单并调入内存,因为名单长所以需要一点时间。

    今天太晚了,早点休息,明天再试试。随时交流。微信我也在。
    adrianzhang
        94
    adrianzhang  
    OP
       2014-02-11 00:16:12 +08:00
    @bukeyi ?nat,那么其他设备有可能没法用。你录制视频的这个网卡配置就可以的。启动界面上eth0是ok的。
    adrianzhang
        95
    adrianzhang  
    OP
       2014-02-11 00:21:33 +08:00
    @bukeyi 另外感谢你不辞劳苦来测试。请微信联系我,送你ss或pptp账号。
    tanny
        96
    tanny  
       2014-02-11 05:10:02 +08:00
    建議增添些下載源,百度網盤的下載速度實在有些雞肋。
    weeker
        97
    weeker  
       2014-02-11 11:05:02 +08:00
    nslookup twitter.com 10.0.0.100
    服务器: UnKnown
    Address: 10.0.0.100

    DNS request timed out.
    timeout was 2 seconds.
    *** 没有 twitter.com 可以使用的 internal type for both IPv4 and IPv6 Addresses (
    A+AAAA)记录

    这个无法解析twitter呢
    adrianzhang
        98
    adrianzhang  
    OP
       2014-02-11 11:54:13 +08:00
    @tanny 好的

    @weeker 这是因为没有和后端连好,重启直到能解析为止。
    weeker
        99
    weeker  
       2014-02-11 15:44:22 +08:00
    @adrianzhang 哦 已经重启多次了 能不能增加个显示状态的页面啥的?
    adrianzhang
        100
    adrianzhang  
    OP
       2014-02-11 18:40:58 +08:00
    @weeker 微信联系我。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2149 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 02:01 · PVG 10:01 · LAX 19:01 · JFK 22:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.