2026年8月2日 星期日

在 Ubuntu 26.04 安裝與設定 Blocky DNS(DNS Proxy / Ad-blocking DNS)

一、更新系統
    sudo apt update
    sudo apt upgrade -y

二、安裝必要工具  wget curl tar
    sudo apt install -y wget curl tar

三、下載與安裝 Blocky
    (1) 下載   
wget https://github.com/0xERR0R/blocky/releases/download/v0.34.0/
blocky_v0.34.0_Linux_x86_64.tar.gz

    (2) 解壓
        tar -xzf blocky_v0.34.0_Linux_x86_64.tar.gz

    (3) 安裝到 /usr/local/bin
        sudo mv blocky /usr/local/bin/
        sudo chmod +x /usr/local/bin/blocky

    (4) 檢測是否安裝成功
        blocky version

四、建立設定目錄
        sudo mkdir -p /etc/blocky

    (1)建立設定檔
        sudo nano /etc/blocky/config.yml
        範例內容:
upstream: 
    default:
        - https://dns.cloudflare.com/dns-query 
        - https://dns.google/dns-query 

blocking: 
   blackLists:
      ads:
          - https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts     

   clientGroupsBlock:
      default:
          - ads
ports:
    dns: 53

cache:
    minTime: 300
    maxTime: 3600

 log:
     level: info

        這個設定:
            本機提供 DNS 服務
            上游使用 Cloudflare / Google DoH
            阻擋廣告網域
            啟用 DNS cache

四、測試 Blocky
    (1)啟動
        sudo blocky --config /etc/blocky/config.yml


在 192.168.91.x/24 網段,架設兩台DNS。當Master變更,讓client電腦對Slave 進行變更後的正解與反解

系列文章:

一、環境說明:
在 192.168.91.x/24 閘道 192.168.91.254,ubuntu 26.04 主機架設BIND9:一台MASTER:IP:192.168.91.2、一台SLAVE:IP:192.168.91.3 ,MASTER變更,讓 client IP:192.168.91.201 對SLAVE  進行變更後的正解與反解。
二、Master (192.168.91.2)
(1) 安裝
      sudo apt update
      sudo apt install bind9 bind9-utils bind9-dnsutils -y

(2)設定 /etc/bind/named.conf.lan
     sudo nano /etc/bind/named.conf.lan
    內容:
zone "lab.lan" { 
     type master; 
     file "/etc/bind/db.lab.lan"; 

     allow-transfer { 
           192.168.91.3; 
     }; 

     also-notify { 
           192.168.91.3; 
     }; 
};

zone "91.168.192.in-addr.arpa" { 
     type master; 
     file "/etc/bind/db.192.168.91"; 

     allow-transfer { 
            192.168.91.3; 
      }; 

      also-notify { 
             192.168.91.3; 
      }; 
};

(3)設定正解區 /etc/bind/db.lab.lan
    sudo nano /etc/bind/db.lab.lan
    內容:
$TTL 86400 

@ IN SOA dns1.lab.lan. admin.lab.lan. ( 
                   2026080201 
                   3600 
                   1800 
                   604800 
                   86400 

@               IN   NS    dns1.lab.lan. 
@               IN   NS    dns2.lab.lan. 

dns1           IN    A      192.168.91.2 
dns2           IN    A      192.168.91.3 

master        IN     A       192.168.91.2 
slave           IN     A       192.168.91.3 
client          IN     A        192.168.91.201

(4)設定反解區 /etc/bind/db.192.168.91
    sudo nano /etc/bind/db.192.168.91
    內容:
$TTL 86400 
 
@ IN SOA ns1.lab.lan. admin.lab.lan. ( 
                  2026080201 
                  3600 
                  1800 
                  604800 
                  86400 

@              IN             NS           dns1.lab.lan. 
@              IN             NS           dns2.lab.lan. 

2                IN              PTR         master.lab.lan. 
3                IN              PTR         slave.lab.lan. 
201            IN              PTR         client.lab.lan.

(5)檢查
     sudo named-checkzone lab.lan /etc/bind/db.lab.lan 
     sudo named-checkzone 91.168.192.in-addr.arpa  /etc/bind/db.192.168.91
     sudo named-checkconf 

(6)重新啟動
    sudo systemctl restart bind9

三、Slave (192.168.91.3)
(1) 安裝
      sudo apt update
      sudo apt install bind9 bind9-utils bind9-dnsutils -y

(2)設定 /etc/bind/named.conf.lan
     sudo nano /etc/bind/named.conf.lan
    內容:
zone "lab.local" { 
     type slave
     masters {      192.168.91.2;   };
     file "/var/cache/bind/db.lab.lan"; 
};

zone "91.168.192.in-addr.arpa" { 
     type slave
     masters {      192.168.91.2;   };
     file "/var/cache/bind/db.192.168.91"; 
};

(3)重新啟動
    sudo systemctl restart bind9

(4)確認是否已同步
    ls /var/cache/bind
    當出現 db.192.168.91 與 db.lab.lan 即是OK

四、Master 修改資料
     新增一筆資料  pc50        192.168.91.50
    (1)修改正解區 /etc/bind/db.lab.lan
        sudo nano /etc/bind/db.lab.lan
        內容:
$TTL 86400 

@ IN SOA dns1.lab.lan. admin.lab.lan. ( 
                   202608020
                   3600 
                   1800 
                   604800 
                   86400 

@               IN   NS    dns1.lab.lan. 
@               IN   NS    dns2.lab.lan. 

dns1           IN    A      192.168.91.2 
dns2           IN    A      192.168.91.3 

master        IN     A       192.168.91.2 
slave           IN     A       192.168.91.3 
client          IN     A        192.168.91.201
pc50           IN     A         192.168.91.50    

    (2)修改反解區 /etc/bind/db.192.168.91
        sudo nano /etc/bind/db.192.168.91
        內容:
$TTL 86400 
 
@ IN SOA dns1.lab.lan. admin.lab.lan. ( 
                  2026080202 
                  3600 
                  1800 
                  604800 
                  86400 

@              IN             NS           dns1.lab.lan. 
@              IN             NS           dns2.lab.lan. 

2                IN              PTR         master.lab.lan. 
3                IN              PTR         slave.lab.lan. 
201            IN              PTR         client.lab.lan.
50              IN              PTR         pc50.lab.lan.

    (3)重新載入
        sudo rndc reload
        或
        sudo systemctl reload bind9

五、Client (192.168.91.201)
     (1) 修改 DNS 的 IP:192.168.91.3
          cd /etc/netplan
          sudo cp 00-installer-config.yaml 00-installer-config.yaml.BK
          sudo nano 00-installer-config.yaml
          內容如下:

          # This is the network config written by 'subiquity'
            network:
                ethernets:
                    ens33:
                        dhcp4: false
                        addresses:
                            - 192.168.91.201/24
                        routes:
                            - to: default
                               via: 192.168.91.254
                        nameservers:
                            addresses:
                                - 192.168.91.3
            version: 2


     (2)測試正解
        dig pc50.lab.lan

     (3)測試反解
        dig -x 192.168.91.50

六、驗證 Slave 已更新
    (1) 在 Slave 執行
          dig @192.168.91.3 lab.lan SOA

七、更新流程

此架構可確保 Master 更新後,Slave 自動同步,而 Client 指向 Slave 查詢時能取得最新的正解與反解紀錄。


在 192.168.91.x/24 網段中,架設DNS,讓client電腦進行正解與反解

一、環境說明:
在 192.168.91.x/24 閘道 192.168.91.254,ubuntu 26.04 主機IP:192.168.91.2 架設BIND9,讓 client IP:192.168.91.201 進行正解與反解。
二、架設DNS與測試
1.安裝BIND9
    (1)更新套件
        sudo apt update
    (2)安裝
        sudo apt install bind9 bind9-utils bind9-dnsutils -y     (3)確認版本
        named -v 

2.設定固定IP
    (1) 設定固定IP:192.168.91.2
          cd /etc/netplan
          sudo cp 00-installer-config.yaml 00-installer-config.yaml.BK
          sudo nano 00-installer-config.yaml
          內容如下:
          # This is the network config written by 'subiquity'
            network:
                ethernets:
                    ens33:
                        dhcp4: false
                        addresses:
                            - 192.168.91.2/24
                        routes:
                            - to: default
                               via: 192.168.91.254
                        nameservers:
                            addresses:
                                - 127.0.0.1
                                - 8.8.8.8
            version: 2

    (2)套用設定
         sudo netplan apply    

3.建立 Forward Zone
    (1)編輯 named.conf.lan
        sudo nano /etc/bind/named.conf.lan
        加入內容:

zone "lab.lan" {
        type master;
        file "/etc/bind/db.lab.lan";
};
zone "91.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168.91";
};

4.建立 Forward Database
    (1)建立  db.lab.lan
        sudo nano /etc/bind/db.lab.lan
        內容為:
$TTL 604800 @ IN SOA dns.lab.lan. admin.lab.lan. ( 2026080201 604800 86400 2419200 604800 ) @ IN NS dns.lab.lan. dns IN A 192.168.91.2 client IN A 192.168.91.201

5.建立 Reverse Zone
  (1)建立 db.192.168.91
     sudo nano /etc/bind/db.192.168.91
     內容為:
$TTL    604800

@       IN      SOA     dns.lab.lan. admin.lab.lan. (
                        2026080201
                        604800
                        86400
                        2419200
                        604800 )

@       IN      NS      dns.lab.lan.
2       IN      PTR     dns.lab.lan.
201     IN      PTR     client.lab.lan.

6.允許 LAN 查詢
  (1)修改 named.conf.options
     sudo nano /etc/bind/named.conf.options  
    內容為:
options { directory "/var/cache/bind"; recursion yes; allow-query { localhost; 192.168.91.0/24; }; listen-on { any; }; listen-on-v6 { none; }; dnssec-validation auto; };

7.檢查設定
  (1)Forward
    sudo named-checkzone lab.lan /etc/bind/db.lab.lan
(2)Reverse
     sudo named-checkzone 91.168.192.in-addr.arpa /etc/bind/db.192.168.91
(3)整體設定
     sudo named-checkconf
沒有輸出,表示正常

8.重新啟動
   (1) 重新啟動 Bind9
         sudo systemctl restart bind9
   (2) 設定開機啟動 Bind9
         sudo systemctl enable bind9
   (3) 查看狀態
         sudo systemctl status bind9

三、Client 設定 DNS

1.設定固定IP
    (1) 設定固定IP:192.168.91.201
          cd /etc/netplan
          sudo cp 00-installer-config.yaml 00-installer-config.yaml.BK
          sudo nano 00-installer-config.yaml
          內容如下:
          # This is the network config written by 'subiquity'
            network:
                ethernets:
                    ens33:
                        dhcp4: false
                        addresses:
                            - 192.168.91.201/24
                        routes:
                            - to: default
                               via: 192.168.91.254
                        nameservers:
                            addresses:
                                - 192.168.91.2
            version: 2

    (2)套用設定
         sudo netplan apply    

四、測試正解
    (1)在 client 執行
        nslookup dns.lab.lan
        或
        dig dns.lab.lan

    (2)DNS 本機測試
        dig @127.0.0.1 dns.lab.lan

五、測試反解
    (1)在 client 執行
        nslookup 192.168.91.2
        或
        dig -x 192.168.91.2
    (2)DNS 本機測試
        dig @127.0.0.1 -x 192.168.91.201



在 Ubuntu 26.04 安裝與設定 Blocky DNS(DNS Proxy / Ad-blocking DNS)

一、更新系統     sudo apt update     sudo apt upgrade -y 二、安裝必要工具   wget curl tar     sudo apt install -y wget curl tar 三、下載與安裝 Blocky     (1) 下載 ...