https://github.com/socketry/async-dns

1.安装:

在Gemfile增加:

gem 'async-dns'

然后使用bundle安装:

bundle install

2.使用

创建一个脚本:sync-dns.rb

    require 'async/dns'
    
    class TestServer < Async::DNS::Server
        def process(name, resource_class, transaction)
            @resolver ||= Async::DNS::Resolver.new([[:udp, '8.8.8.8', 53], [:tcp, '8.8.8.8', 53]])
            
            transaction.passthrough!(@resolver)
        end
    end
    
    server = TestServer.new([[:udp, '127.0.0.1', 2346]])
    
    server.run

然后运行这个脚本,ruby sync-dns.rb

打开新的窗口:

使用dig命令:

dig @localhost -p 2346 google.com

dig @localhost -p 2346 baidu.com