15 个版本

0.1.7 2023 年 3 月 7 日
0.1.6 2022 年 5 月 9 日
0.1.5 2021 年 3 月 13 日
0.1.3 2020 年 4 月 11 日
0.0.0-alpha.02019 年 4 月 21 日

#25 in #domain-name

30 每月下载量

MIT 许可证

54KB
1.5K SLoC

updns

GitHub Workflow Status Crates.io Crates.io


updns 是一个使用 Rust 开发的简单 DNS 代理服务器。您可以拦截任何域名并返回所需的 IP 地址

安装

从发布页面下载二进制文件

或者使用 cargo 安装

cargo install updns

开始使用 🚀

updns
# or
updns -c /your/hosts

您可能需要使用 sudo 来运行此命令,因为您将使用 53 端口

在 Docker 中运行

构建 Docker 镜像

docker build -t updns .

启动

docker run -d --name updns -p 53:53/udp -v /root/updns/:/root/.updns/ --restart always updns

配置

您可以使用 updns config 命令,然后调用 vim 编辑,或者找到 ~/.updns/config 编辑

您可以指定标准域名,或使用 正则表达式 进行动态匹配

正则表达式以 ~ 开头

bind     0.0.0.0:53      # Binding address
proxy    8.8.8.8:53      # Proxy address
timeout  2s              # Proxy timeout (format: 1ms, 1s, 1m, 1h, 1d)

# Domain matching
example.com              1.1.1.1
*.example.com            2.2.2.2
~^\w+\.example\.[a-z]+$  3.3.3.3

# IPv6
test.com                ::

# Import from other file
import /other/hosts

参考

Rust 中构建 DNS 服务器

许可证

MIT 许可证

依赖

~8–18MB
~216K SLoC