You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何搭建本地DNS/代理,实现OpenNIC专属TLD使用OpenNIC DNS、其余域名使用Cloudflare等公共DNS

如何搭建本地DNS/代理,实现OpenNIC专属TLD使用OpenNIC DNS、其余域名使用Cloudflare等公共DNS

嘿,这个需求我之前也折腾过!刚好有几个靠谱的方案可以分享给你,分GUI工具和手动配置Bind9两种路子,你可以根据自己的偏好选:

一、GUI工具方案(上手快,适合不想碰命令行的人)

我首推用DNSmasq搭配它的GUI前端,不同系统的具体工具推荐:

  • Linux上可以直接用NetworkManager自带的DNSmasq插件,图形化界面里就能配置规则;
  • Windows用户可以试试Simple DNS Plus,界面直观,支持按TLD分流的配置;
  • Mac用户可以用LocalDNS这类第三方工具,或者结合系统原生DNS设置来做。

核心配置逻辑都是一样的:

  • 先把默认的公共DNS设为Cloudflare的1.1.1.1/1.0.0.1(或者你偏好的Google/OpenDNS);
  • 然后给OpenNIC专属的TLD(比如.geek.o.bbs.bit)单独加规则,指定这些域名的查询请求转发到OpenNIC的DNS服务器;
  • 最后把你所有设备的DNS地址改成这个本地DNS服务的IP(一般是127.0.0.1,如果要给局域网其他设备用,就设成你的电脑局域网IP)。

二、Bind9配置方案(更灵活,适合想深度定制的人)

Bind9完全能实现你的需求,而且是很标准的企业级做法,我给你捋个简单的步骤:

  1. 首先编辑Bind9的主配置文件(通常在/etc/bind/named.conf),先定义转发规则:
    • 先配置默认的公共DNS转发组,指向Cloudflare或者你常用的公共DNS;
    • 再给每个OpenNIC专属TLD单独创建转发区域,指定用你选的OpenNIC服务器IP。
  2. 给你个极简的配置片段参考,你可以直接改了用:
    // 全局默认:所有普通域名用Cloudflare DNS
    zone "." {
        type forward;
        forwarders { 1.1.1.1; 1.0.0.1; };
    };
    
    // 针对.geek域名:转发到OpenNIC服务器
    zone "geek" {
        type forward;
        forwarders { 192.168.1.100; }; // 替换成你选的OpenNIC节点IP
    };
    
    // 针对.o域名:同样转发到OpenNIC服务器
    zone "o" {
        type forward;
        forwarders { 192.168.1.100; };
    };
    
    // 其他如.bbs、.bit等TLD,照着上面的格式复制添加就行
    
  3. 配置完之后重启Bind9服务,然后把设备的DNS改成Bind9服务器的IP就大功告成了。

一些实用小Tips

  • 选OpenNIC服务器的时候尽量挑延迟低的,找本地或者邻近地区的节点,这样访问专属TLD的速度会快很多;
  • 配置完一定要测试:用nslookup test.geek看看是不是走OpenNIC,再用nslookup google.com验证是不是走公共DNS;
  • 要是怕Bind9配置出错,可以先备份原配置文件,改坏了直接还原就行。

备注:内容来源于stack exchange,提问作者hexd

火山引擎 最新活动