標籤:

dingo:一個安全可靠的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.comdns.google.com hasaddress 216.58.209.174dns.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 "http://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

推薦閱讀:

2017 年成為 Linux 專家的 4 個熱門技能
應用層協議那些事
非 NTFS 的日誌式文件系統上,比如Ext4,能實現類似 Everything 這個軟體的利用日誌進行快速搜索的功能么?
如何輕鬆記住 Linux 命令
2.5 寸的 SSD(固態硬碟)怎麼塞進 3.5 寸的 SATA 硬碟櫃?

TAG:DNS | 技术 | Linux |