之前分享了搭建 Technitium DNS Server 并用 acme.sh 申请证书,你可能也发现了,它是支持 DoH3/DoQ 的。不过当你想启用它时发现打不开,提示需要安装 libmsquic。
DNS-over-QUIC protocol support is not available on all platforms. On Windows, it is available only on Windows 11 (build 22000 or later) and Windows Server 2022. On Linux, it requires
libmsquicto be installed.
但是在我使用的 Ubuntu 20.04 上并不能直接通过 apt install libmsquic 来安装这个软件包,因此我们需要自行从源码构建。
Technitium 官方给了一种安装 libmsquic 的方法,无需自己构建。先安装微软软件存储库 (Microsoft Software Repository) ,然后就能直接安装 libmsquic 了。Configuring DNS-over-QUIC and HTTPS/3 For Technitium DNS Server 这比自己编译方便得多,下面内容不用看了。😅
以下是 ChatGPT 的提示的构建过程,实测可行,记录如下,一行一行执行,默认 root 用户。
# 克隆源码
git clone https://github.com/microsoft/msquic.git
cd msquic
apt update
apt install -y cmake clang ninja-build libssl-dev libkrb5-dev
# 初始化 Git 子模块
cd ~/msquic
git submodule update --init --recursive
# 创建构建目录并构建
mkdir build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
ninja
构建好的文件在 ~/msquic/build/bin/Release/libmsquic.so
# 安装到系统路径
cp ~/msquic/build/bin/Release/libmsquic.so /usr/local/lib/
# 刷新动态链接器缓存
ldconfig
重启 Technitium DNS Server
systemctl restart dns.service
然后去后台开启 Enable DNS-over-HTTP/3 和 Enable DNS-over-QUIC,也可以自定端口,如果有防火墙需要开启对应端口的 UDP 入站。
