回归最本质的信息安全

dingo:一个安全可靠的DNS代理

2016年9月22日发布

4,402
0
0

导语:这是使用go语言开发的一款DNS客户端,支持google DNS-over-HTTPS,并且能够有效加密所有的DNS流量。

这是使用go语言开发的一款DNS客户端,支持google DNS-over-HTTPS,并且能够有效加密所有的DNS流量。

这款工具的目的其实是通过利用递归DNS解析器进行通信来提供一个安全、可缓存的DNS代理,而不仅仅只是加密信道。现在,它的解析NDS查询已经远不止HTTPS/1.1中的几个独立的线程。今后,该工具还将支持HTTP/2.0、QUIC,并且能够提供更好的缓存以及解析器(例如使用OpenDNS的OpenResolve)。

从最新的发布的版本上下载一个预先建立好的二进制文件,(或者直接建立你自己的二进制文件)。

然后在端口53上运行dingo来进行root,例如在linux上运行如下命令:

$ sudo./dingo-linux-amd64 -port=53

更新DNS配置,在Linux上编辑/etc/resolv.conf作为root(记住一定要备份)

$ sudo sh -c"echo nameserver 127.0.0.1 > /etc/resolv.conf"

如果想更改谷歌默认的DNS-over-HTTPS服务器的IP地址,可以使用-gdns 。首先,解析dns.google.com到IP地址,它应该会为你分配最接近你的服务器:

$ hostdns.google.com
dns.google.com hasaddress 216.58.209.174
dns.google.com hasIPv6 address 2a00:1450:401b:800::200e

接下来,将它传递给dingo。如果你更喜欢IPv6 ,可以将该地址用方括号括起来。

$ sudo./dingo-linux-amd64 -port=53 -gdns:server=[2a00:1450:401b:800::200e]

查看所有选项运行dingo -h即可:

Usage of dingo:
  -bind string
        IP address to bind to (default"0.0.0.0")
  -dbg int
        debugging level (default 2)
  -gdns:edns string
        Google DNS: EDNS client subnet (set0.0.0.0/0 to disable)
  -gdns:nopad
        Google DNS: disable random padding
  -gdns:server string
        Google DNS: web server address (default"216.58.209.174")
  -gdns:sni string
        Google DNS: SNI string to send (shouldmatch server certificate) (default "www.google.com")
  -gdns:workers int
        Google DNS: number of independentworkers (default 10)
  -port int
        listen on port number (default 32000)

另外还需要注意的一点是,在默认情况下dingo是绑定到所有接口的,这也就说明它是完全开放的(除非你运行了防火墙),事实上没有考虑将它绑定到127.0.0.1,也正是因为此。

最后,你还需要设置dingo为开机自动。另外在linux中你可能想要使用GNU屏幕,你可以选择在后台进程中启动,例如你可以将下面的这一行添加到/etc/rc.local:

Screen -dmS dingo/path/to/bin/dingo -port=53 -bind=127.0.0.1 -gdns:server=[2a00:1450:401b:800::200e]
​本文翻译于github,如若转载,请注明原来源于嘶吼: http://www.4hou.com/technology/1948.html

点赞 0
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

Change

Change

嘶吼编辑

发私信

发表评论