1 个不稳定版本
0.2.0 | 2019 年 1 月 3 日 |
---|
#12 in #doh
12KB
182 行
Homer
用 Rust 编写的轻量级 DNS-over-HTTPS ("DOH") 代理。
Homer 是一个轻量级代理,可以安全地将任何请求转发到像 Cloudflare 这样的 DNS-over-HTTPS 解析器。
当前版本 0.2.0
支持的 Rust 版本 1.31
安装
从 发行页面 下载您架构的最新二进制文件。
用法
USAGE:
homer [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-b, --bind <bind> listen for DNS requests on this address and port [default: 127.0.0.1:53]
-u, --upstream <upstream>... URL(s) of upstream DNS-over-HTTPS service [default: https://1.1.1.1/dns-query]
在 Pi-Hole 上运行
要使用 Homer 加密 Pi-Hole 上的 DNS 请求,请下载并安装最新的 版本
pi@raspberrypi:~ $ wget https://github.com/mudge/homer/releases/download/v0.2.0/homer-v0.2.0-arm-unknown-linux-gnueabihf.tar.gz
pi@raspberrypi:~ $ tar xzf homer-v0.2.0-arm-unknown-linux-gnueabihf.tar.gz
pi@raspberrypi:~ $ sudo mv homer /usr/local/bin/
您可以通过请求当前版本来确认 Homer 是否正常工作
pi@raspberrypi:~ $ homer --version
Homer 0.2.0
然后,您可以配置 Homer 作为在端口 5053 上监听并将请求转发到 Cloudflare 的 DNS-over-HTTPS 解析器 的 Systemd 服务运行。
首先,为 Homer 创建一个系统用户
pi@raspberrypi:~ $ sudo adduser --system --no-create-home homer
然后编写 Systemd 单元文件
pi@raspberrypi:~ $ sudo tee /lib/systemd/system/homer.service <<EOF
[Unit]
Description=Homer
After=syslog.target network-online.target
[Service]
Type=simple
User=homer
ExecStart=/usr/local/bin/homer -b 127.0.0.1:5053 -u https://1.1.1.1/dns-query -u https://1.0.0.1/dns-query
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
现在您可以启动 Homer 并检查它是否正在运行
pi@raspberrypi:~ $ sudo systemctl enable homer
pi@raspberrypi:~ $ sudo systemctl start homer
pi@raspberrypi:~ $ sudo systemctl status homer
最后,您可以将 Pi-Hole 配置更改为使用 127.0.0.1#5053
作为其唯一的上游 DNS 服务器,并使用 Cloudflare 的连接信息页面 确认您的请求现在已加密。
参考资料
许可证
版权 © 2018-2019 Paul Mucur
在 MIT 许可证下分发。
依赖项
~25MB
~542K SLoC