lua-resty-proxydns
"一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。"
$ opm get iakuf/lua-resty-proxydns
lua-resty-proxydns
lua-resty-proxydns
是一个为 OpenResty 设计的 Lua 模块,用于代理 DNS 请求,本地缓存这些请求,并允许将预定义域重定向到特定地址。
功能
DNS 代理:通过指定的名称服务器重定向 DNS 请求。
本地缓存:本地缓存 DNS 查询和响应以提高性能。
自定义域名重定向:将预定义域名重定向到指定的地址。
安装
要安装此模块,您可以使用 OpenResty 包管理器 (opm)
opm get iakuf/lua-resty-proxydns
依赖项
此模块需要 lua-cjson
和 lua-resty-openssl
库才能工作。请确保这两个库都已安装并在您的 OpenResty 环境中可访问。
安装 lua-cjson
您可以使用 OPM 安装 lua-cjson
opm get ledgetech/lua-cjson
安装 lua-resty-dns-server
您可以使用 OPM 安装 lua-resty-dns-server
opm get selboo/lua-resty-dns-server
安装 lua-resty-resolver
您可以使用 OPM 安装 lua-resty-resolver
opm get jkeys089/lua-resty-resolver
配置
将 DNS 代理配置添加到您的 nginx.conf
文件中。
stream {
lua_shared_dict dns_cache 10m;
init_by_lua_block {
local dns_proxy = require("resty.proxydns")
dns_proxy:config({
nameservers = {"8.8.8.8", "8.8.4.4"},
retrans = 5,
timeout = 2000,
})
dns_proxy:init_custom_domains("/etc/openresty/domains.txt")
}
server {
listen 53 udp;
content_by_lua_block {
local dns_proxy = require("resty.proxydns")
dns_proxy:run()
}
}
}
自定义特定域名到特定地址
如果要将特定域名自定义到特定地址,可以直接使用包含域名和对应 IP 地址的文件路径配置 init_custom_domains。
dns_proxy:init_custom_domains("/etc/openresty/domains.txt")
在指定位置(/etc/openresty/domains.txt
)创建一个 domains.txt
文件,格式如下:
example.com 192.168.1.1
test.com 192.168.1.2
每一行包含一个域名,后跟该域名应重定向到的 IP 地址。
将所有域名重定向到特定地址
要将 DNS 中的所有域名重定向到特定地址,您可以使用地址配置 redirect_all 参数,例如:
dns_proxy:redirect_all("10.10.10.1")
您可以动态调整此设置。如果传递空字符串,DNS 将正常解析。可以根据需要为特定来源提供特定输出。
用法
照常启动您的 OpenResty 服务器。DNS 代理将处理 domains.txt
中指定的域名的请求,并根据配置缓存 DNS 查询。
许可证
此模块根据 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
作者
"傅凯 <iakuf@163.com>"
许可证
mit
版本
-
iakuf/lua-resty-proxydns 1.1.2"一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。" 2024-07-27 07:04:50
-
iakuf/lua-resty-proxydns 1.1.1"一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。" 2024-07-27 07:01:36
-
"一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。" 2024-07-26 11:13:46
-
"一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。" 2024-07-26 11:05:39