Stubby 是一款支持 DNS-over-TLS 的 DNS 服务器,详情可参考:
https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Daemon+-+Stubby
要支持 TLS 1.3,必须先编译 OpenSSL 1.1.1:
cd /mnt/data/compile/openssl-1.1.1/
./config
make
mkdir lib
cp libssl.a libcrypto.a lib/
cp include/openssl/* include/
注意,为了不影响原系统,并不安装此 OpenSSL 版本!
还需要编译 libyaml 支持库:
cd /mnt/data/compile/yaml-0.2.1/
./configure --enable-static --disable-shared --prefix=/mmc
make install
然后通过 getdns 静态编译出 Stubby:
cd /mnt/data/compile/getdns-1.5.0/
LDFLAGS="-Wl,-static -static -static-libgcc -s" ./configure --disable-shared --without-libunbound --without-libidn --without-libidn2 --with-ssl=/mnt/data/compile/openssl-1.1.1 --with-stubby --with-piddir=/var/run --prefix=/opt
make
就可以在 src 下得到需要的文件:
file src/stubby
src/stubby: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, stripped, with debug_info