Total Pageviews

Thursday, 15 August 2019

一款dns proxy程序:gdns-go

Local DNS服务器。Build Status
  1. 服务端是Google HTTPS DNS
  2. 通过ShadowSocks解决访问Google HTTPS DNS server的问题。
  3. 通过传递探测到的公网IP作为edns0 subnet的参数来解决CDN解析出美国IP而不是中国IP的问题。
  4. 公网IP探测使用了淘宝的API
  5. 自带域名分流功能,但设计目标仅针对公司内网域名服务,不需要把常用国内网站加入,由于第3点,不会受到SS服务器IP的影响(SS服务器在美国依然能解析出中国IP)
  6. 通过HTTP 2.0解决传统DNS over TCP缓慢的问题。
已知问题:
  1. 连接了AnyConnect VPN后,AnyConnect Windows Client会阻断访问本地53端口的DNS,导致无法使用。

项目地址:https://github.com/ayanamist/gdns-go
------------

我的补充说明:

在本地机器mac上。
首先安装go环境。然后,
cd $GOPATH
go get -u -v github.com/ayanamist/gdns-go
(可执行文件gdns-go将会出现在$GOBIN/下)

wget https://github.com/ayanamist/gdns-go/raw/master/config-example.json -O gdns-go-config.json

nano gdns-go-config.json
(在proxy那一行,填入你的ss服务器的四项参数)


sudo gdns-go -conf gdns-go-config.json
(不要关闭此terminal)

实际使用例子:
sudo wg-quick up wg0 
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
sudo gdns-go -conf ~/gdns-go-config.json