arwmq9b6 / dnsproxy Goto Github PK
View Code? Open in Web Editor NEW防 DNS 缓存污染,兼顾查询质量与速度
License: MIT License
防 DNS 缓存污染,兼顾查询质量与速度
License: MIT License
看到好久不更新了,还在维护吗?
删了...
在配置中注释掉如下段落:
[proxy]
#listen = ":1480" # 将要开启的本地代理服务器的绑定地址
但dnsproxy还是会随机开一个高端口做代理,而且绑定在 0.0.0.0 的公开网络接口上。如果在公开网络环境,这个端口被扫走了,并被用来作代理,就不好了。如何能让dnsproxy完全不开这个端口?
树莓派3B+,编译时报下面的错,老哥怎么解决呢?
root@raspberrypi:/usr/src/aaa/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy# export GOPATH=/usr/src/aaa
root@raspberrypi:/usr/src/aaa/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy# make
env GOOS=linux GOARCH=arm go build -o target/dnsproxy
../../proxyserve.go:283: r.req.URL.Hostname undefined (type *url.URL has no field or method Hostname)
../../proxyserve.go:287: r.req.URL.Hostname undefined (type *url.URL has no field or method Hostname)
Makefile:19: recipe for target 'target/dnsproxy' failed
make: *** [target/dnsproxy] Error 2
root@raspberrypi:/usr/src/aaa/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy#
看到有谷歌框架包 又看了一下dns协议 所以发问
谢谢
hello.
bogon:target brite$ ls
china_domain_list.txt config.toml gfw_domain_list.txt
china_ip_list.txt dnsproxy
bogon:target brite$ ./dnsproxy
E0811 09:55:40.950978 39150 main.go:26] listen tcp :53: bind: permission denied
bogon:target brite$ sudo ./dnsproxy
Password:
E0811 09:56:00.630759 39164 main.go:26] listen tcp :53: bind: address already in use
bogon:target brite$ lsof -i:53
bogon:target brite$ sudo ./dnsproxy
E0811 09:56:37.515407 39198 main.go:26] listen tcp :53: bind: address already in use
bogon:target brite$
我运行 lsof -i:53,没有输出内容,说明53端口未被占用,怎么提示“listen tcp :53: bind: address already in use”呢?
感谢作者的奉献,我在使用过程中发现一些内存的问题,实测如下
github.com/miekg/dns/server.go
for srv.isStarted() {
m, s, err := reader.ReadUDP(l, rtimeout)
if err != nil {
if !srv.isStarted() {
return nil
}
if netErr, ok := err.(net.Error); ok && netErr.Temporary() {
continue
}
return err
}
if len(m) < headerSize {
if cap(m) == srv.UDPSize {
srv.udpPool.Put(m[:srv.UDPSize])
}
continue
}
wg.Add(1)
go srv.serveUDPPacket(&wg, m, l, s)
}
我在windows使用此代理,然后用200个线程去nslookup,发现线程数不断增加,貌似在"github.com/miekg/dns"库中,并没有对UDP线程数进行限制,所以需要自己写一个UDP线程数限制的server,而不能直接拿过来用。
libdns_utils.go
func (dt *DnsTransPort) legallySpawnExchange(req *dns.Msg) (*dns.Msg, error) {
const spawnNum int8 = 3
resp := make(chan *dns.Msg, spawnNum)
lastErr := make(chan error)
var failedTimes int32
for range [spawnNum]struct{}{} {
go func() {
if r, err := dt.Exchange(req); err == nil {
resp <- r
} else {
if atomic.LoadInt32(&failedTimes) == int32(spawnNum-1) {
resp <- nil
lastErr <- err
} else {
atomic.AddInt32(&failedTimes, 1)
}
}
}()
}
if r := <-resp; r != nil {
return r, nil
} else {
return nil, <-lastErr
}
}
在libdns_utils.go文件的legallySpawnExchange文件中,起了3个线程发给同一个server,在线程比较多的情况下(我用的200个),其中1个线程返回,另外2个线程可能因为争抢资源而一直存在,导致goroutine一直增加,建议还是不要增加线程,直接在主线程中跑
比如163.com
在china_domain_list.txt
中,music.163.com
仍被当作未知域名。
首先,感谢作者,,好用!
建议:
1,这里有一个golang systray的开源,可以参考,做成systray,隐藏运行 command 窗口 (windows下)https://github.com/getlantern/systray
2,可以开机自动运行(windows),并能够程序异常退出后重启
3,可以在systray 上点击设置,或退出
4,可以关闭自带代理服务器,避免出现代理端口被侦测等问题。以及使用自己pac 和代理的用户,可以关掉这个功能。
5,程序运行后,可以用 netsh interface ip set dns "你的网卡接口" static 127.0.0.1 来设置本地 dns 并测试是否有效,并弹出对话框,多数小白用户都根本不懂这个,会导致不能上网或dnsproxy 根本没起作用。程序退出后,netsh …… dhcp 或者恢复原接口状态
6,可以有设置所有dns 查询走 https google dns 的api ,或者所有查询走 socks 翻墙 tcp 8.8.8.8 等等
7,有日志可以查看过去dns查询,以及 socks 服务器的连接通断的心跳包
比如已经有查询www.bbc.com
的请求发给梯子,dnsserver再接到www.bbc.com
的查询就别再给梯子发请求了。否则我这儿梯子不太扛得住。
Windows 10 1703,用的是64位,dns.google.com走的是goproxy,崩溃报错如下:
Exception 0xc0000005 0x0 0xffffffffffffffff 0x7ff800c6c61f
PC=0x7ff800c6c61f
syscall.Syscall6(0x7ff800c4ca40, 0x4, 0x4, 0xf013b0, 0xc04253d3d0, 0xc04253d3e0, 0x0, 0x0, 0xf227bdd7b50fb70f, 0x1295e3c05cbfdf84, ...)
/usr/local/go/src/runtime/syscall_windows.go:174 +0x6b
syscall.CertVerifyCertificateChainPolicy(0x4, 0xf013b0, 0xc04253d3d0, 0xc04253d3e0, 0x0, 0xc0429253d8)
/usr/local/go/src/syscall/zsyscall_windows.go:1208 +0xc1
crypto/x509.checkChainSSLServerPolicy(0xc0424a2480, 0xf013b0, 0xc04253d808, 0xf2eec0, 0xc042925548)
/usr/local/go/src/crypto/x509/root_windows.go:117 +0xfd
crypto/x509.(*Certificate).systemVerify(0xc0424a2480, 0xc042925808, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/x509/root_windows.go:212 +0x484
crypto/x509.(*Certificate).Verify(0xc0424a2480, 0xc042202200, 0xe, 0xc0426737d0, 0x0, 0xed151868d, 0x2e4b336c, 0xa54640, 0x0, 0x0, ...)
/usr/local/go/src/crypto/x509/verify.go:279 +0x86c
crypto/tls.(*clientHandshakeState).doFullHandshake(0xc04253de50, 0xc042809640, 0x31)
/usr/local/go/src/crypto/tls/handshake_client.go:300 +0x4c0
crypto/tls.(*Conn).clientHandshake(0xc042474000, 0x83e958, 0xc042474120)
/usr/local/go/src/crypto/tls/handshake_client.go:228 +0xf97
crypto/tls.(*Conn).Handshake(0xc042474000, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1307 +0x1aa
net/http.(*Transport).dialConn.func3(0x0, 0xc042474000, 0x0, 0xc042ad2d80)
/usr/local/go/src/net/http/transport.go:1082 +0x49
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1087 +0xff3
goroutine 1 [chan receive, 29 minutes]:
main._main(0xc042038058, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:115 +0x776
main.main()
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:16 +0x30
goroutine 18 [chan receive, 1 minutes]:
github.com/ARwMq9b6/dnsproxy/vendor/github.com/golang/glog.(*loggingT).flushDaemon(0xa54860)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/golang/glog/glog.go:882 +0x81
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/golang/glog.init.1
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/golang/glog/glog.go:410 +0x224
goroutine 19 [sleep, 4 minutes]:
time.Sleep(0x45d964b800)
/usr/local/go/src/runtime/time.go:59 +0x107
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/vendors/github.com/shadowsocks/shadowsocks-go/shadowsocks.newReqList.func1(0xc04203b430)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/vendors/github.com/shadowsocks/shadowsocks-go/shadowsocks/udprelay.go:80 +0x34
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/vendors/github.com/shadowsocks/shadowsocks-go/shadowsocks.newReqList
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/vendors/github.com/shadowsocks/shadowsocks-go/shadowsocks/udprelay.go:83 +0xb7
goroutine 20 [chan receive, 29 minutes, locked to thread]:
github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go%2ev2.(*Emitter).emitTask(0xa52000)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go.v2/emitter.go:30 +0x11e
created by github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go%2ev2.(*Emitter).init
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go.v2/emitter.go:22 +0x73
goroutine 21 [select, 29 minutes]:
github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go%2ev2.(*updateHeap).updateTask(0xa54460)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go.v2/updater.go:81 +0x4de
created by github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go%2ev2.init.4
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/gopkg.in/xtaci/kcp-go.v2/updater.go:13 +0xbc
goroutine 9 [select, 10 minutes]:
github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache.(*janitor).Run(0xc042008b50, 0xc04200c180)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache/cache.go:1037 +0x178
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache.runJanitor
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache/cache.go:1056 +0x94
goroutine 10 [select, 10 minutes]:
github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache.(*janitor).Run(0xc042008b60, 0xc04200c1c0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache/cache.go:1037 +0x178
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache.runJanitor
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/patrickmn/go-cache/cache.go:1056 +0x94
goroutine 35 [IO wait, 29 minutes]:
net.runtime_pollWait(0x2d22580, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0424541a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc042454060, 0x828869, 0x8, 0xc04243c0a0, 0xc0424541c0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).acceptOne(0xc042454000, 0xc04246a000, 0x2, 0x2, 0xc042454060, 0x9e1020, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:591 +0x1ae
net.(*netFD).accept(0xc042454000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:621 +0x10a
net.(*TCPListener).accept(0xc042466000, 0x0, 0x9e1020, 0xc042440120)
/usr/local/go/src/net/tcpsock_posix.go:136 +0x35
net.(*TCPListener).Accept(0xc042466000, 0x3, 0x0, 0x0, 0x9e28e0)
/usr/local/go/src/net/tcpsock.go:228 +0x50
github.com/ARwMq9b6/dnsproxy.serveProxy(0x0, 0x0, 0xc04243a1e0, 0xc04243a240, 0x0, 0xc04243a240)
/go/src/github.com/ARwMq9b6/dnsproxy/proxyserve.go:38 +0x210
github.com/ARwMq9b6/dnsproxy.ServeProxy(0x0, 0x0, 0xc04243a1e0, 0xc04243a240, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/proxyserve.go:22 +0x6d
main._main.func2(0xc042084300, 0xc04243a120)
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:102 +0x120
created by main._main
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:107 +0x702
goroutine 36 [chan receive, 29 minutes]:
github.com/ARwMq9b6/dnsproxy.serveDNS(0xc0421ac0d0, 0xc, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:30 +0x2c0
github.com/ARwMq9b6/dnsproxy.ServeDNS(0xc0421ac0d0, 0xc, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:16 +0x59
main._main.func3(0xc042084300, 0xc04243a120)
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:109 +0x43
created by main._main
/go/src/github.com/ARwMq9b6/dnsproxy/cmd/dnsproxy/main.go:114 +0x734
goroutine 37 [IO wait]:
net.runtime_pollWait(0x2d22640, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0424601a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc042460060, 0x829a47, 0xb, 0x83e280, 0x1, 0xc042443b50, 0x42897f)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).readFrom(0xc042460000, 0xc0421b6200, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:481 +0x161
net.(*UDPConn).readFrom(0xc042462000, 0xc0421b6200, 0x200, 0x200, 0x200, 0xc0421b6200, 0x1008468, 0x77359401)
/usr/local/go/src/net/udpsock_posix.go:47 +0x71
net.(*UDPConn).ReadFrom(0xc042462000, 0xc0421b6200, 0x200, 0x200, 0x4f258f, 0xc042443d18, 0x43ebb2, 0x200, 0x79a100)
/usr/local/go/src/net/udpsock.go:109 +0x7c
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.ReadFromSessionUDP(0xc042462000, 0xc0421b6200, 0x200, 0x200, 0x200, 0x200, 0xc042464000, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/udp_windows.go:16 +0x63
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).readUDP(0xc04244c000, 0xc042462000, 0x77359400, 0x6fb95c, 0x451eb0, 0xc042443de8, 0xc042443df0, 0xc042443de0, 0x6fb95c)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:649 +0xf9
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*defaultReader).ReadUDP(0xc042462008, 0xc042462000, 0x77359400, 0x9e1060, 0xc0426e4120, 0x9ddce0, 0xc042112040, 0xc042b1e000, 0x25)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:254 +0x4d
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serveUDP(0xc04244c000, 0xc042462000, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:522 +0x142
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).ListenAndServe(0xc04244c000, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:371 +0x406
github.com/ARwMq9b6/dnsproxy.serveDNS.func1(0xc04243a180, 0xc04244c000)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:27 +0x32
created by github.com/ARwMq9b6/dnsproxy.serveDNS
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:28 +0x264
goroutine 38 [IO wait, 29 minutes]:
net.runtime_pollWait(0x2d22700, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc04244e1a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc04244e060, 0x828869, 0x8, 0xc042002380, 0xc04244e1c0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).acceptOne(0xc04244e000, 0xc042456000, 0x2, 0x2, 0xc04244e060, 0x41d739, 0xc042015228, 0x1d0001)
/usr/local/go/src/net/fd_windows.go:591 +0x1ae
net.(*netFD).accept(0xc04244e000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:621 +0x10a
net.(*TCPListener).accept(0xc042004038, 0xc042445dc0, 0x4104bd, 0xc042004040)
/usr/local/go/src/net/tcpsock_posix.go:136 +0x35
net.(*TCPListener).Accept(0xc042004038, 0xc04244c0d0, 0xc042004038, 0xc04244e000, 0x0)
/usr/local/go/src/net/tcpsock.go:228 +0x50
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serveTCP(0xc04244c0d0, 0x9e28e0, 0xc042004038, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:479 +0x145
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).ListenAndServe(0xc04244c0d0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:335 +0x22e
github.com/ARwMq9b6/dnsproxy.serveDNS.func1(0xc04243a180, 0xc04244c0d0)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:27 +0x32
created by github.com/ARwMq9b6/dnsproxy.serveDNS
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:28 +0x264
goroutine 13 [select, 29 minutes]:
net/http.(*persistConn).roundTrip(0xc0423a4120, 0xc04245a160, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc042080000, 0xc0423c4000, 0xc042086180, 0x5f, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc042080000, 0x1, 0xc042050240, 0x11, 0xc042075d60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0420d6120, 0x9de360, 0xc042080000, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0420d6120, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0420d6120, 0xc04243a360, 0xc04203a1f0, 0xc04243a3c0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 163 [select, 29 minutes]:
net/http.(*persistConn).writeLoop(0xc0423a4120)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 162 [IO wait, 29 minutes]:
net.runtime_pollWait(0x2d22040, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0421f01a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0421f0060, 0x8285d3, 0x7, 0x83e248, 0xc0425cf6d8, 0xc0425cf770, 0x42a2f2)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc0421f0000, 0xc042226c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042062020, 0xc042226c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0422080b0, 0xc042226c00, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc042206510, 0x9ddb20, 0xc0422080b0, 0x5, 0xc0422080b0, 0xc042298000)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042476000, 0x83e917, 0xc042476120, 0xa831c66d983e5152)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042476000, 0xc0421d4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc0423a4120, 0xc0421d4000, 0x1000, 0x1000, 0x0, 0x0, 0xc0425cfb80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042551500)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042551500, 0x1, 0xc042551680, 0xc0425cfc80, 0x23, 0x40, 0x80)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc0423a4120)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 144 [select, 29 minutes]:
net/http.(*persistConn).writeLoop(0xc0421e0900)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 90 [select, 29 minutes]:
net/http.(*persistConn).roundTrip(0xc0421e0900, 0xc0421de640, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0425242d0, 0xc0421c0400, 0xc042528380, 0x62, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0425242d0, 0x1, 0xc042506040, 0x1c, 0xc04246fd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc04251a090, 0x9de360, 0xc0425242d0, 0xc04243e580, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc04251a090, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc04251a090, 0xc04243b320, 0xc042396fd8, 0xc04243b380)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15469 [select]:
net/http.(*persistConn).writeLoop(0xc043446120)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 143 [IO wait, 29 minutes]:
net.runtime_pollWait(0x3234e40, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc042454c20, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc042454ae0, 0x8285d3, 0x7, 0x83e248, 0xa4506ceb90befffa, 0xc67178f2bef9a3f7, 0xc04267d888)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc042454a80, 0xc0425d9800, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042004058, 0xc0425d9800, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0424ca2c0, 0xc0425d9800, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc0421ff410, 0x9ddb20, 0xc0424ca2c0, 0x5, 0xc0424ca2c0, 0x4ed8aa4a391c0cb3)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc04248f880, 0x83e917, 0xc04248f9a0, 0x10)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc04248f880, 0xc04268c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc0421e0900, 0xc04268c000, 0x1000, 0x1000, 0x0, 0x0, 0xc04267db80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042674e40)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042674e40, 0x1, 0xc042674fc0, 0xc04267dc80, 0x7bfb20, 0xc042658420, 0xc042658420)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc0421e0900)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15468 [IO wait]:
net.runtime_pollWait(0x3234d80, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0426a61a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0426a6060, 0x8285d3, 0x7, 0x83e248, 0xc04322f700, 0x10, 0x45b517)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc0426a6000, 0xc0427aac00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042a56008, 0xc0427aac00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc042208160, 0xc0427aac00, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc042e6e270, 0x9ddb20, 0xc042208160, 0x5, 0xc042208160, 0x0)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042474700, 0x83e917, 0xc042474820, 0x1e)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042474700, 0xc0426be000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc043446120, 0xc0426be000, 0x1000, 0x1000, 0x0, 0x0, 0xc04322fb80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042216480)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042216480, 0x1, 0xc0421ea120, 0xc04322fc80, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc043446120)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15294 [IO wait]:
net.runtime_pollWait(0x1019590, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0421f1860, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0421f1720, 0x8285d3, 0x7, 0x83e248, 0xc043869700, 0x10, 0x45b517)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc0421f16c0, 0xc0427aa400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042cda0b0, 0xc0427aa400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0425a7600, 0xc0427aa400, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc042e6e150, 0x9ddb20, 0xc0425a7600, 0x5, 0xc0425a7600, 0x0)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042474380, 0x83e917, 0xc0424744a0, 0x1e)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042474380, 0xc0426bf000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc042d467e0, 0xc0426bf000, 0x1000, 0x1000, 0x0, 0x0, 0xc043869b80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042216060)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042216060, 0x1, 0xc0422164e0, 0xc043869c80, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc042d467e0)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15356 [select]:
net/http.(*persistConn).roundTrip(0xc042de8360, 0xc042b1c2c0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0425240f0, 0xc042000700, 0xc042904660, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0425240f0, 0x1, 0xc042b1c040, 0x14, 0xc04332dd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0424fe000, 0x9de360, 0xc0425240f0, 0xc042cc0540, 0xc042cc0480, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0424fe000, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0424fe000, 0xc042904060, 0xc04240c020, 0xc0429040c0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15354 [chan receive]:
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange(0xc042440000, 0xc0424fe000, 0x10, 0x10, 0x6d006fd100)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:245 +0x12c
github.com/ARwMq9b6/dnsproxy.handleDnsRequest.func1(0xc0424fe000, 0x0, 0xc0421bda00, 0x83e968)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:73 +0xa77
github.com/ARwMq9b6/dnsproxy.handleDnsRequest(0x9e6ae0, 0xc042064200, 0xc0424fe000)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:176 +0x3c
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x83d760, 0x9e6ae0, 0xc042064200, 0xc0424fe000)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:84 +0x4b
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc042112040, 0x9e6ae0, 0xc042064200, 0xc0424fe000)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:210 +0x6c
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serve(0xc04244c000, 0x9e1060, 0xc0427fc000, 0x9ddce0, 0xc042112040, 0xc042b1f200, 0x25, 0x200, 0xc042462000, 0xc04250a000, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:579 +0x302
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serveUDP
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:533 +0x2dc
goroutine 15466 [IO wait]:
net.runtime_pollWait(0x33252c8, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc042ce01a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc042ce0060, 0x8285d3, 0x7, 0x83e248, 0xc0432276d8, 0xc043227770, 0x42a29d)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc042ce0000, 0xc042df7400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc0424660c8, 0xc042df7400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0424cbb80, 0xc042df7400, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc0426724e0, 0x9ddb20, 0xc0424cbb80, 0x5, 0xc0424cbb80, 0x28)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042b5f180, 0x83e917, 0xc042b5f2a0, 0xa831c66d983e5152)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042b5f180, 0xc042ce3000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc042de9c20, 0xc042ce3000, 0x1000, 0x1000, 0x0, 0x0, 0xc043227b80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042039200)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042039200, 0x1, 0xc042039380, 0xc043227c80, 0x23, 0x40, 0x80)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc042de9c20)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15483 [IO wait]:
net.runtime_pollWait(0x3324908, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0421f16a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0421f1560, 0x8285d3, 0x7, 0x83e248, 0xc0433276d8, 0xc043327770, 0x42a29d)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc0421f1500, 0xc042df7c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042a56000, 0xc042df7c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc042208000, 0xc042df7c00, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc0426725d0, 0x9ddb20, 0xc042208000, 0x5, 0xc042208000, 0x28)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042b5f500, 0x83e917, 0xc042b5f620, 0xa831c66d983e5152)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042b5f500, 0xc042ce2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc042d465a0, 0xc042ce2000, 0x1000, 0x1000, 0x0, 0x0, 0xc043327b80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc0427d20c0)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc0427d20c0, 0x1, 0xc0427d2240, 0xc043327c80, 0x23, 0x40, 0x80)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc042d465a0)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15539 [IO wait]:
net.runtime_pollWait(0x1018150, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0421f0360, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0421f0220, 0x8285d3, 0x7, 0x83e248, 0xc04332d700, 0x10, 0x45b517)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc0421f01c0, 0xc042490400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc04250a010, 0xc042490400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0421ca000, 0xc042490400, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc04343e690, 0x9ddb20, 0xc0421ca000, 0x5, 0xc0421ca000, 0x0)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042b5e000, 0x83e917, 0xc042b5e120, 0x0)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042b5e000, 0xc0423c2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc04244a240, 0xc0423c2000, 0x1000, 0x1000, 0x0, 0x0, 0xc04332db80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042216fc0)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042216fc0, 0x1, 0xc0422171a0, 0xc04332dc80, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc04244a240)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15542 [select]:
net/http.(*persistConn).writeLoop(0xc042de8360)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15484 [select]:
net/http.(*persistConn).writeLoop(0xc042d465a0)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15544 [select]:
net/http.(*persistConn).writeLoop(0xc042de85a0)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15487 [select]:
net/http.(*persistConn).roundTrip(0xc04206c6c0, 0xc042e543a0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0420801e0, 0xc04229a600, 0xc042b4e600, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0420801e0, 0x1, 0xc0426bc140, 0x14, 0xc042bc1d60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0423b4090, 0x9de360, 0xc0420801e0, 0x451fd0, 0xc042bc1f48, 0x2)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0423b4090, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0423b4090, 0xc0427d22a0, 0xc0424100a8, 0xc0427d2300)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15543 [IO wait]:
net.runtime_pollWait(0x3324848, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc04244e8a0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc04244e760, 0x8285d3, 0x7, 0x83e248, 0xc042c536d8, 0xc042c53770, 0x42a29d)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc04244e700, 0xc042491400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc04250a018, 0xc042491400, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0421ca0b0, 0xc042491400, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc04343e780, 0x9ddb20, 0xc0421ca0b0, 0x5, 0xc0421ca0b0, 0x28)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc042b5e380, 0x83e917, 0xc042b5e4a0, 0xa831c66d983e5152)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc042b5e380, 0xc0430ae000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc042de85a0, 0xc0430ae000, 0x1000, 0x1000, 0x0, 0x0, 0xc042c53b80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042ce4420)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042ce4420, 0x1, 0xc042905200, 0xc042c53c80, 0x23, 0x40, 0x80)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc042de85a0)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15357 [select]:
net/http.(*persistConn).roundTrip(0xc042de8120, 0xc042b1c160, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc042524000, 0xc042000600, 0xc0429041e0, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc042524000, 0x1, 0xc042b1c040, 0x14, 0xc042a6dd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0424fe000, 0x9de360, 0xc042524000, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0424fe000, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0424fe000, 0xc042904060, 0xc04240c020, 0xc0429040c0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15490 [select]:
net/http.(*persistConn).roundTrip(0xc042d467e0, 0xc042b1dfa0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc042080690, 0xc04238f000, 0xc0426f7e60, 0x56, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc042080690, 0x1, 0xc042dfa570, 0x10, 0xc042557d60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0423b5a70, 0x9de360, 0xc042080690, 0xc042438500, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0423b5a70, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0423b5a70, 0xc0426f7da0, 0xc042dfa568, 0xc0426f7e00)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15355 [select]:
net/http.(*persistConn).roundTrip(0xc04206c240, 0xc042e540c0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0420800f0, 0xc04229a100, 0xc042b4e060, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0420800f0, 0x1, 0xc042b1c040, 0x14, 0xc0426cdd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0424fe000, 0x9de360, 0xc0420800f0, 0xc042ce4180, 0xc042ce40c0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0424fe000, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0424fe000, 0xc042904060, 0xc04240c020, 0xc0429040c0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15508 [select]:
net/http.(*persistConn).writeLoop(0xc04206c6c0)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15485 [chan receive]:
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange(0xc042440000, 0xc0423b4090, 0x10, 0x10, 0x6d00000000)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:245 +0x12c
github.com/ARwMq9b6/dnsproxy.handleDnsRequest.func1(0xc0423b4090, 0x0, 0xc042a24340, 0x83e968)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:73 +0xa77
github.com/ARwMq9b6/dnsproxy.handleDnsRequest(0x9e6ae0, 0xc04243e280, 0xc0423b4090)
/go/src/github.com/ARwMq9b6/dnsproxy/dnsserve.go:176 +0x3c
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x83d760, 0x9e6ae0, 0xc04243e280, 0xc0423b4090)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:84 +0x4b
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc042112040, 0x9e6ae0, 0xc04243e280, 0xc0423b4090)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:210 +0x6c
github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serve(0xc04244c000, 0x9e1060, 0xc0426e4120, 0x9ddce0, 0xc042112040, 0xc042b1e000, 0x25, 0x200, 0xc042462000, 0xc042462010, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:579 +0x302
created by github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns.(*Server).serveUDP
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/miekg/dns/server.go:533 +0x2dc
goroutine 15486 [select]:
net/http.(*persistConn).roundTrip(0xc042de85a0, 0xc042b1c420, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0425241e0, 0xc042000800, 0xc042904ae0, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0425241e0, 0x1, 0xc0426bc140, 0x14, 0xc0425bfd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0423b4090, 0x9de360, 0xc0425241e0, 0x451fd0, 0xc0425bff48, 0x2)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0423b4090, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0423b4090, 0xc0427d22a0, 0xc0424100a8, 0xc0427d2300)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15488 [select]:
net/http.(*persistConn).roundTrip(0xc04244a240, 0xc0426bc2a0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc042b780f0, 0xc04238e000, 0xc0427d2360, 0x5a, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc042b780f0, 0x1, 0xc0426bc140, 0x14, 0xc04337dd60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0423b4090, 0x9de360, 0xc042b780f0, 0xc04278e580, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0423b4090, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0423b4090, 0xc0427d22a0, 0xc0424100a8, 0xc0427d2300)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15507 [IO wait]:
net.runtime_pollWait(0x10191d0, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc0424546e0, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0x0, 0x0, 0xc042a0b6e8, 0xc042c4ca50, 0x0, 0xc042454640, 0xc042454670, 0xc042454688)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0x0, 0x0, 0x0, 0xc042a0b7d8, 0x4e2f32, 0x3, 0xc042014050)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
goroutine 15295 [select]:
net/http.(*persistConn).writeLoop(0xc042d467e0)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15440 [select]:
net/http.(*Transport).getConn(0xc0421aac30, 0xc0422021e0, 0x0, 0xc042038540, 0x5, 0xc042202200, 0x12, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:913 +0xb99
net/http.(*Transport).RoundTrip(0xc0421aac30, 0xc042c18f00, 0xc042038540, 0x56, 0x0)
/usr/local/go/src/net/http/transport.go:378 +0x593
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0421aac30, 0x1, 0xc042dfa570, 0x10, 0xc0426c9d60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0423b5a70, 0x9de360, 0xc0421aac30, 0xc042b56600, 0xc042b56540, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0423b5a70, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0423b5a70, 0xc0426f7da0, 0xc042dfa568, 0xc0426f7e00)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15538 [select]:
net/http.(*persistConn).writeLoop(0xc04206c240)
/usr/local/go/src/net/http/transport.go:1704 +0x441
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1118 +0xa61
goroutine 15462 [chan receive]:
net/http.(*Transport).dialConn(0xc0421aac30, 0x9e2e20, 0xc04203a2b0, 0x0, 0xc042038540, 0x5, 0xc042202200, 0x12, 0x0, 0xc042038480, ...)
/usr/local/go/src/net/http/transport.go:1088 +0x1035
net/http.(*Transport).getConn.func4(0xc0421aac30, 0x9e2e20, 0xc04203a2b0, 0xc042672330, 0xc0420385a0)
/usr/local/go/src/net/http/transport.go:908 +0x7f
created by net/http.(*Transport).getConn
/usr/local/go/src/net/http/transport.go:910 +0x3aa
goroutine 15474 [select]:
net/http.(*persistConn).roundTrip(0xc042d465a0, 0xc042b1dde0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/transport.go:1898 +0x97b
net/http.(*Transport).RoundTrip(0xc0420805a0, 0xc04238ef00, 0xc0426f7920, 0x56, 0x0)
/usr/local/go/src/net/http/transport.go:391 +0x753
github.com/ARwMq9b6/dnsproxy/dns_over_https/google.Query(0x9de360, 0xc0420805a0, 0x1, 0xc0423f12c0, 0x10, 0xc0426c7d60, 0x1, 0x1, 0x0, 0x0, ...)
/go/src/github.com/ARwMq9b6/dnsproxy/dns_over_https/google/lib.go:67 +0x645
github.com/ARwMq9b6/dnsproxy.MsgExchangeOverGoogleDOH(0xc0420d6cf0, 0x9de360, 0xc0420805a0, 0xc042518380, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:48 +0x196
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).Exchange(0xc042440000, 0xc0420d6cf0, 0x0, 0x0, 0x0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:264 +0x130
github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange.func1(0xc042440000, 0xc0420d6cf0, 0xc042ad2780, 0xc0423f120c, 0xc042ad27e0)
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:232 +0x40
created by github.com/ARwMq9b6/dnsproxy.(*dnsTransport).legallySpawnExchange
/go/src/github.com/ARwMq9b6/dnsproxy/libdns_utils.go:242 +0xe6
goroutine 15537 [IO wait]:
net.runtime_pollWait(0x1019290, 0x72, 0x9dc2e8)
/usr/local/go/src/runtime/netpoll.go:164 +0x60
net.(*pollDesc).wait(0xc042454520, 0x72, 0x9dc2e8, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:75 +0x3f
net.(*ioSrv).ExecIO(0xc042004028, 0xc0424543e0, 0x8285d3, 0x7, 0x83e248, 0xc0426eb6d8, 0xc0426eb770, 0x42a29d)
/usr/local/go/src/net/fd_windows.go:196 +0xfe
net.(*netFD).Read(0xc042454380, 0xc0425d8c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/fd_windows.go:452 +0x13d
net.(*conn).Read(0xc042cda008, 0xc0425d8c00, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:181 +0x77
github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost.(*ProxyConn).Read(0xc0424ca0b0, 0xc0425d8c00, 0x400, 0x400, 0x7fa700, 0x0, 0x9ddb20)
/go/src/github.com/ARwMq9b6/dnsproxy/vendor/github.com/ARwMq9b6/libgost/conn.go:228 +0x58
crypto/tls.(*block).readFromUntil(0xc0427fc9f0, 0x9ddb20, 0xc0424ca0b0, 0x5, 0xc0424ca0b0, 0x28)
/usr/local/go/src/crypto/tls/conn.go:488 +0x9f
crypto/tls.(*Conn).readRecord(0xc04206e700, 0x83e917, 0xc04206e820, 0xa831c66d983e5152)
/usr/local/go/src/crypto/tls/conn.go:590 +0xcb
crypto/tls.(*Conn).Read(0xc04206e700, 0xc0421ee000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:1134 +0x124
net/http.(*persistConn).Read(0xc04206c240, 0xc0421ee000, 0x1000, 0x1000, 0x0, 0x0, 0xc0426ebb80)
/usr/local/go/src/net/http/transport.go:1316 +0x152
bufio.(*Reader).fill(0xc042216d80)
/usr/local/go/src/bufio/bufio.go:97 +0x11e
bufio.(*Reader).Peek(0xc042216d80, 0x1, 0xc042216f00, 0xc0426ebc80, 0x23, 0x40, 0x80)
/usr/local/go/src/bufio/bufio.go:129 +0x6e
net/http.(*persistConn).readLoop(0xc04206c240)
/usr/local/go/src/net/http/transport.go:1474 +0x19d
created by net/http.(*Transport).dialConn
/usr/local/go/src/net/http/transport.go:1117 +0xa3c
rax 0x31459439a0c71313
rbx 0x0
rcx 0x0
rdi 0x40
rsi 0xc042925408
rbp 0x285fd59
rsp 0x285fcf0
r8 0x285fd40
r9 0x285fd50
r10 0xf013b0
r11 0x285fcc0
r12 0x0
r13 0x0
r14 0x0
r15 0x0
rip 0x7ff800c6c61f
rflags 0x10256
cs 0x33
fs 0x53
gs 0x2b
dnsproxy的设计确实很巧妙,的确能兼顾查询质量与速度。
我现在的使用方式是dnsproxy+gost+shadowsocks,gost被定向到shadowsocks,然后浏览器设置socks5代理到1480端口,这个不方便的地方是浏览器要设置代理。
能否添加以下的功能:
dnsproxy查询到ip后,如果不是国内IP,就放到ipset的gfwlist列表里,iptables会将gfwlist重写向到shadowsocks,这样路由器下的所有设备都可以自动翻墙,也能兼顾查询质量和速度,并且浏览器也不需要设置代理了。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.