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-cjsonlua-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

版本

  • "一个用于在 OpenResty 中代理 DNS 请求的 Lua 模块,具有本地缓存和自定义域名重定向功能。" 2024-07-27 07:04:50
  • "一个用于在 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