Regarding dnscrypt-proxy 2, it's from the same developer jedisct1 (reddit.com/r/linux/comments/7owb1s/psa_dnscrypt_is_now_abandoned):
dnscrypt-proxy is not dnscrypt.
dnscrypt is the specification of a protocol.
dnscrypt-proxy was an early, client-side implementation of that protocol. Recent addons for that software such as the cache and the FPST-based filter plugin were great, but the core proxy itself was old, ugly, buggy and hard to maintain.
So, it was rewritten from scratch: github.com/jedisct1/dnscrypt-proxy
dnscrypt itself didn't change. The protocol isn't bad nor broken.
Regarding OpenWRT integration:
The binary blob is located at github.com/jedisct1/dnscrypt-proxy/releases/latest.
I'm using dnscrypt-proxy-linux_arm-2.0.8.tar.gz for my WRT3200ACM with Davidc502's latest build:
I'm running the daemon as nobody (requires sudo pkg), load-balancing between cloudflare (1.1.1.1 and 1.0.0.1) and google (8.8.8.8 and 8.8.4.4). Both with DNSoHTTPs:
authpriv.notice sudo: root : TTY=unknown ; PWD=/ ; USER=nobody ; COMMAND=/usr/sbin/dnscrypt-proxy -config /var/tmp/dnscrypt-proxy/dnscrypt-proxy.toml -syslog
user.notice DNSoHTTPS: dnscrypt-proxy started successfully. Configuring dnsmasq...
daemon.notice dnscrypt-proxy[4256]: Source [/var/tmp/dnscrypt-proxy/public-resolvers.md] loaded
daemon.notice dnscrypt-proxy[4256]: dnscrypt-proxy 2.0.8
daemon.notice dnscrypt-proxy[4256]: Now listening to 127.0.0.1:5053 [UDP]
daemon.notice dnscrypt-proxy[4256]: Now listening to 127.0.0.1:5053 [TCP]
daemon.notice dnscrypt-proxy[4256]: Now listening to [::1]:5053 [UDP]
daemon.notice dnscrypt-proxy[4256]: Now listening to [::1]:5053 [TCP]
daemon.notice dnscrypt-proxy[4256]: [cloudflare] OK (DoH) - rtt: 7ms
daemon.notice dnscrypt-proxy[4256]: [google] OK (DoH) - rtt: 99ms
daemon.notice dnscrypt-proxy[4256]: Server with the lowest initial latency: cloudflare (rtt: 7ms)
daemon.notice dnscrypt-proxy[4256]: dnscrypt-proxy is ready - live servers: 2
For this:
1 - I had to disable the FW's old dnscrypt-proxy with /etc/init.d/dnscrypt-proxy disable
2 - Placed the new binary blob from github in overlay's /usr/sbin
3 - Created my own start\stop actions:
start:
mkdir -p /var/tmp/dnscrypt-proxy; cp /etc/myconfs/dnscrypt-proxy/* /var/tmp/dnscrypt-proxy/; sudo -b -u nobody dnscrypt-proxy -config /var/tmp/dnscrypt-proxy/dnscrypt-proxy.toml -syslog;
if [ `pidof dnscrypt-proxy` ]; then cp /etc/myconfs/dnsmasq/dnsmasq-dnscrypt-proxy.conf /tmp/dnsmasq.d/; /etc/init.d/dnsmasq restart; fi
stop
if [ -f /tmp/dnsmasq.d/dnsmasq-dnscrypt-proxy.conf ]; then rm /tmp/dnsmasq.d/dnsmasq-dnscrypt-proxy.conf; /etc/init.d/dnsmasq restart; fi
if [ `pidof dnscrypt-proxy` ]; then kill $(pidof dnscrypt-proxy); rm -R /var/tmp/dnscrypt-proxy; fi
4 - My custom conf files are in etc/myconfs/. For dnscrypt-proxy it's dnscrypt-proxy.toml, based on the supplied example file in the tar, but with DoH and TCP enabled, and the servers set to cloudflare and google
For dnsmasq, it's a custom file that gets added to /tmp/dnsmasq.d
server=127.0.0.1#5053
no-resolv
I'm not saying this is how it should be done. Just showing what I did, because it could help\inspire someone else.
PS: Sorry for messed up links on this post, but because it's my first post here, I'm not allowed to post links...
(Last edited by Vindicator on 3 Apr 2018, 11:55)