自己DNS
背景与介绍
什么是DNS?
DNS(Domain Name System,域名系统)是互联网中用于将域名转换为IP地址的系统,它作为网络世界的“电话簿”,帮助用户通过易于记忆的域名访问特定的服务器或网站,当你在浏览器中输入一个网址时,DNS服务器会将其解析为相应的IP地址,从而使你的设备能够找到并连接到目标服务器。
为什么需要自己的DNS服务器?
拥有自己的DNS服务器可以带来以下好处:
1、提高安全性:防止DNS劫持和污染,确保你访问的网站没有被恶意重定向。
2、提升隐私:避免使用第三方DNS服务,减少个人信息泄露的风险。
3、广告拦截:通过配置自己的DNS规则,可以屏蔽不需要的广告内容。
4、个性化设置:根据个人需求定制DNS解析规则,如家庭内部域名解析、特定网站的加速等。
5、可靠性和稳定性:在网络环境较差的情况下,自建DNS服务器可能提供更稳定的解析服务。
两种实现方式
打造自己的DNS服务器有两种方式:公网可访问的DNS服务器和仅局域网可访问的DNS服务器。
1、公网可访问的DNS服务器:需要一个域名和一个公网云主机,这种方式可以让任何人通过互联网访问你的DNS服务器。
2、局域网可访问的DNS服务器:只需要一个本地主机,适用于家庭或小型办公网络,这种方式不需要DOT协议和证书,配置相对简单。
本文将详细介绍如何在这两种环境下搭建自己的DNS服务器,并提供相关的操作步骤和注意事项。
公网可访问的DNS服务器
准备工作
1、购买域名:选择一个合适的域名,并通过国内的云服务商(如阿里云、腾讯云)购买,这些平台通常提供免费的SSL证书申请服务。
2、购买云主机:选择一台公网云主机,确保其具备足够的带宽和计算资源。
3、申请SSL证书:通过云服务商申请免费SSL证书,有效期为一年,注意,小米手机可能无法识别Let’s Encrypt的免费证书,建议使用云厂商赠送的证书。
安装CoreDNS
CoreDNS是一个高性能的DNS服务器,支持多种插件和协议,包括DOT(DNSOverTLS),以下是安装CoreDNS的步骤:
1、下载CoreDNS:访问[CoreDNS GitHub页面](https://github.com/coredns/coredns),下载对应平台的二进制文件。
wget https://github.com/coredns/coredns/releases/download/v1.10.0/coredns_linux_amd64.tar.gz tar xzf coredns_linux_amd64.tar.gz sudo mv coredns /usr/local/bin/
2、创建配置文件:在CoreDNS安装目录下创建配置文件Corefile
。
mkdir p ~/.config/coredns nano ~/.config/coredns/Corefile
添加以下内容到Corefile
:
tls://.:853 { tls dot.example.com_bundle.crt dot.example.com.key log forward . 8.8.8.8 }
3、启动CoreDNS:执行以下命令启动CoreDNS。
coredns config ~/.config/coredns/Corefile
配置防火墙
确保云主机的防火墙开放853端口(TCP和UDP),以便外部设备可以访问你的DNS服务器,具体配置方法取决于你的云服务商,以华为云为例:
1、登录华为云控制台。
2、选择“安全组”选项卡。
3、找到对应的安全组,点击“编辑”。
4、添加入站规则,放行TCP 53和UDP 53端口。
测试配置
使用doggo
工具测试DNS解析是否正常。
doggo baidu.com @tls://dot.example.com
如果返回结果中的ADDRESS字段显示127.0.0.1
,说明广告屏蔽配置生效。
局域网可访问的DNS服务器
准备工作
局域网DNS服务器不需要域名和公网云主机,只需一个本地设备(如树莓派、旧电脑、电视盒子等),以下是使用CoreDNS搭建局域网DNS服务器的步骤:
1、下载CoreDNS:与公网安装相同,下载CoreDNS二进制文件。
wget https://github.com/coredns/coredns/releases/download/v1.10.0/coredns_linux_amd64.tar.gz tar xzf coredns_linux_amd64.tar.gz sudo mv coredns /usr/local/bin/
2、创建配置文件:在CoreDNS安装目录下创建配置文件Corefile
。
mkdir p ~/.config/coredns nano ~/.config/coredns/Corefile
添加以下内容到Corefile
:
.:53 { errors cache 30 forward . 8.8.8.8 8.8.4.4 loadbalance }
3、启动CoreDNS:执行以下命令启动CoreDNS。
coredns config ~/.config/coredns/Corefile
配置路由器
为了让局域网内的所有设备使用你的DNS服务器,需要在路由器上进行配置:
1、登录路由器管理界面,通常是通过浏览器访问192.168.0.1
或192.168.1.1
。
2、找到“网络设置”或“高级设置”选项。
3、修改DNS设置为你的CoreDNS服务器的IP地址(如192.168.1.100
)。
测试配置
在局域网内的设备上使用nslookup
或dig
命令测试DNS解析是否正常。
nslookup www.baidu.com 192.168.1.100
如果返回正确的IP地址,说明DNS服务器配置成功。
常见问题与解答
问题1:如何更改DNS服务器以提高上网速度?
答:更换DNS服务器可以提高某些网站的访问速度,尤其是当默认DNS服务器响应缓慢时,以下是几种常见的公共DNS服务器及其IP地址:
1、Google Public DNS:8.8.8.8 和 8.8.4.4
2、Cloudflare DNS:1.1.1.1 和 1.0.0.1
3、OpenDNS:208.67.222.222 和 208.67.220.220
4、腾讯DNSPod:119.29.29.29 和 182.254.116.116
5、阿里DNS:223.5.5.5 和 223.6.6.6
你可以在网络设置中手动更改DNS服务器地址,选择离你最近的或你认为最快的服务器,自建DNS服务器也可以根据个人需求进行优化,进一步提升访问速度。
问题2:如何查询当前使用的DNS服务器?
答:你可以通过以下几种方法查询当前使用的DNS服务器:
Windows系统
1、使用命令提示符:按下Win + R
键,输入cmd
并回车打开命令提示符窗口,输入以下命令并回车:
ipconfig /all
查找“DNS 服务器”部分,显示的内容即为当前使用的DNS服务器地址。
2、通过网络设置界面查询:点击任务栏右下角的网络图标,选择“打开网络和Internet设置”,点击“更改适配器选项”,找到当前使用的网络连接,右键选择“属性”,双击“Internet协议版本4 (TCP/IPv4)”,可以看到“首选DNS服务器”和“备用DNS服务器”的地址。
Mac系统
1、使用终端:打开“应用程序”文件夹中的“实用工具”,找到并打开“终端”应用,输入以下命令并回车:
scutil get LocalDomainNameServer
显示的内容即为当前使用的DNS服务器地址。
2、通过系统偏好设置:点击屏幕左上角的苹果图标,选择“系统偏好设置”,进入“网络”设置,选择当前使用的网络连接,点击“高级”按钮,在“DNS”标签下可以看到当前的DNS服务器地址。
Linux系统
1、使用终端:打开终端应用,输入以下命令并回车:
cat /etc/resolv.conf
查找以nameserver
开头的行,其后的IP地址即为当前使用的DNS服务器地址。
2、通过图形界面:如果你使用的是Linux桌面环境,可以通过网络设置界面查看DNS服务器地址,具体路径可能因发行版而异,一般在“设置”>“网络”>“高级设置”中可以找到。
通过以上方法,你可以方便地查询当前使用的DNS服务器,并根据需要进行更改,选择合适的DNS服务器可以提升上网体验,保障网络安全。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/86897.html