一、搭建DNS服務器
1、先選擇一台服務器作為DNS服務器。通常情況下,我們使用Linux系統的機器進行DNS服務器的搭建。但Windows也可以使用Microsoft DNS Server進行搭建。為方便理解,我們以Linux系統為例。
2、我們需要安裝DNS服務器軟件,這裡以Bind9為例:
sudo apt-get update sudo apt-get install bind9 sudo systemctl enable bind9
3、配置Bind9。配置文件為/etc/bind/named.conf,示例配置:
options { directory "/var/cache/bind"; recursion yes; allow-query { any; }; forwarders { 8.8.8.8; 8.8.4.4; }; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
4、添加域名解析。示例配置:
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
5、編輯域名解析配置文件,示例配置:
$TTL 7200 @ IN SOA example.com. admin.example.com. ( 2022041501 ; serial 3h ; refresh after 3 hours 1h ; retry after 1 hour 1w ; expire after 1 week 1h ) ; minimum TTL of 1 hour @ IN NS ns.example.com. ns IN A 192.168.1.1 websrv IN A 192.168.1.2 mail IN A 192.168.1.3 ftp IN CNAME websrv.example.com.
二、自建DNS解析不到百度
由於百度的DNS解析只有在中國境內可用,所以很可能是因為你的DNS服務器在境外導致無法解析。
解決方法是添加國內DNS服務器到/etc/bind/named.conf文件中作為轉發器。示例配置:
options { directory "/var/cache/bind"; recursion yes; allow-query { any; }; forwarders { 8.8.8.8; 8.8.4.4; 114.114.114.114; 223.5.5.5; }; };
三、自建DNS好處
1、更快的解析速度。自建DNS服務器可以緩存域名解析結果,下次再有相同的解析請求時,直接從緩存中獲取結果,加快了網站的響應速度。
2、自主掌控域名解析。相較於使用公用的DNS服務器,自建DNS服務器可以確保域名解析隱私安全,並且可以自主掌控解析結果。
3、更加可靠。部署自建DNS服務器可以避免因公用DNS服務器宕機或者遭受攻擊造成的DNS解析失敗問題。
4、提高網站的安全性。可以拒絕解析一些不安全、惡意的網站,從而提高網站的安全性。
四、自建DNS DOH實現方法
DOH(DNS over HTTPS)是一種新的DNS通信協議,它使用加密的HTTPS通道進行DNS查詢和響應。下面是自建DNS實現DOH協議的方法:
1、需要安裝Nginx和DNSmasq軟件,不再贅述。安裝完成後,創建一個nginx.conf配置文件,示例配置:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name dns.example.com; location /dns-query { proxy_pass http://localhost:3000/dns-query; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; } } }
2、在DNSmasq中設置如下選項:
port=53 bind-interfaces user=root resolv-file=/etc/resolv.dnsmasq.conf #如無需指定DNS服務器,請注釋這行 conf-dir=/etc/dnsmasq.d/,*.conf dhcp-option-force=208,254,208,115 #將DNS服務器指定為自己的DNS服務器(防止客戶端忽略了122號option) no-resolv server=127.0.0.1#3000
五、自建DNS解析
1、在自己的電腦上配置DNS服務器為自建DNS服務器。
2、當你要訪問DNS解析過的域名時,首先會向你的DNS服務器發送解析請求。如果你的DNS服務器本地已經緩存了解析結果,直接返回結果。否則,需要向外網DNS服務器發起域名解析請求,將結果存入本地緩存並返回給你的電腦。
六、自建DNS的好處
自建DNS服務器可以避免DNS染毒、DNS劫持等問題,而公用DNS服務器有很多安全隱患,可能會被攻擊,或者存在隱私泄露的問題。
七、自建DNS解析服務器好處
自建DNS解析服務器可以加快網站的訪問速度,減小因域名解析時間帶來的延遲。同時,還可以避免公共DNS服務器緩存的信息不更新,導致信息失效的問題。
八、自建DNS緩存服務器
自建DNS緩存服務器可以將DNS解析結果緩存在本地,下次再次訪問時,可以直接從緩存中讀取,從而提高網站的響應速度。
九、自建DNS解析服務器
自建DNS解析服務器可以更加精確的解析DNS請求,從而避免一些在特定網絡環境下解析錯誤的問題。
以上是自建DNS全解析,希望能對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293678.html