Unbound 是一個遞歸、可驗證和高度安全的 DNS 緩存服務器,在 BSD 許可下免費分發。 Unbound 支持 DNS-over-TLS 和 DNS-over-HTTPS,通過允許客戶端加密其連接來增強在線隱私。根據您的網絡配置,Unbound 可以同時支持 IPV4 和 IPV6。 在 Linux 發行版上安裝和配置 Unbound 很容易。 使用自己的域在內部為應用程序或網站提供服務的公司可以使用 unbound 作為其 DNS 服務器。在本文中,您將學習如何安裝和配置 未綁定 帶有 Ubuntu 20.04 的服務器。

安裝

在 Ubuntu 20.04 上安裝 Unbound 名稱解析服務器既簡單又直接。通過運行以下命令安裝包

$ sudo apt install unbound -y

輸出:

此外,運行以下命令來安裝用於檢查 DNS 服務器配置的其他軟件包:

$ sudo apt install bind-utils net-tools -y

安裝完成後,您可以使用以下命令查看配置文件的內容。

$ cat /etc/unbound/unbound.conf

輸出:

輸出顯示所有 .conf 文件都是從 unbound.conf.d 目錄加載的。

讓我們在目錄中創建一個新的配置文件 /etc/unbound/unbound.conf.d 目錄。在這個例子中, unbound_test.conf 文檔。你可以有自己的假設。

在文本編輯器中打開文件並添加以下示例配置。您可以相應地更改參數。

$ sudo nano /etc/unbound/unbound.conf.d/unbound_test.conf
server:

port: 53

verbosity: 0

num-threads: 2

outgoing-range: 512

num-queries-per-thread: 1024

msg-cache-size: 32m

interface: 127.0.0.1

interface: 192.168.5.5

rrset-cache-size: 64m

cache-max-ttl: 86400

infra-host-ttl: 60

infra-lame-ttl: 120

outgoing-interface: 192.168.0.2

access-control: 127.0.0.0/8 allow

access-control: 192.168.5.0/24 allow

username: unbound

directory: "/etc/unbound"

logfile: "/var/log/unbound.log"

use-syslog: no

hide-version: yes

so-rcvbuf: 4m

so-sndbuf: 4m

do-ip4: yes

do-ip6: no

do-udp: yes

do-tcp: yes
Now create a log file and assign permission to write logs

$ sudo touch /var/log/unbound.log
$ sudo chown unbound:unbound /var/log/unbound.log

重啟Unbound服務加載配置

$ sudo service unbound restart

使用以下命令啟用服務

$ sudo service unbound enable

使用以下命令檢查未綁定服務是否正在運行:

$ sudo service unbound status

輸出:

通過運行確保未綁定端口正在偵聽

$ sudo netstat -anlpt | grep LIST

輸出:

此輸出顯示 Unbound 服務正在偵聽端口 53 並接受請求。

配置文件說明:

港口 : 未綁定的監聽端口

隱藏版 :不顯示未綁定的版本

使用系統日誌 : 指定是否將日誌寫入 syslog

用戶名 : 在未綁定用戶下運行

: 日誌級別,範圍從 0 到 4。 4 是調試日誌級別。

界面: 監聽未綁定請求的接口

傳出接口 : 互聯網接口

: 線程數。我們建議您指定相同數量的處理器內核。

在防火牆中打開 DNS 端口。

創建配置文件後,您必須打開 DNS 端口以允許本地 LAN 客戶端連接到未綁定的僅緩存 DNS 服務器。

$ sudo ufw allow from any to any port 53 proto tcp
$ sudo ufw allow from any to any port 53 proto udp

要檢查您的防火牆規則,請運行以下命令:

$ sudo ufw status

輸出:

您現在已經到了測試新的 Unbound DNS 服務器的最後階段。對於測試,您可以使用 先前安裝的軟件包中包含的命令 裝訂工具. 在實際的 DNS 服務器上執行一些 DNS 查詢。對於這個例子,我查看了 kernel.org 進行測試。你可以有自己的假設。

$ dig kernel.org @localhost

輸出:

第一個查詢的響應時間為 4 毫秒。 現在我們已經配置了 Unbound DNS 服務器,查詢將被緩存。 要檢查您的 DNS 緩存,請使用相同的域名運行以下查詢:

$ dig kernel.org @localhost

可以看到查詢時間為0ms。

如果您從 LAN 客戶端測試未綁定 DNS 服務器配置,請查詢指向未綁定 DNS 服務器 IP 的 DNS 響應。 (在我的情況下,未綁定的 DNS 服務器 IP 是 192.168.178.130)

$ dig kernel.org @192.168.178.130

優化

Unbound的默認配置適用於有限數量的用戶,但如果需要服務大量用戶,則需要進行一定的優化。以下是您可以實施的一些優化選項以獲得更好的性能。

線: 在系統中放置相同數量的 CPU 內核。例如,將值 4 設置為兩個 CPU,每個 CPU 有兩個內核。

so-reuseport:是的 在 Linux 上,這有助於提高 UDP 性能

傳輸範圍:您可以根據核心數將值設置得盡可能高。

所以-sndbuf: 對於繁忙的服務器,可以將此值設置為 4m 或更高的值 8m。

有關更多信息,請參閱:

https://nlnetlabs.nl/documentation/unbound/howto-optimise/

結論是

本文介紹瞭如何通過基本配置在 Ubuntu 上安裝和配置 Unbound Name Resolution Server。使用 dig 命令執行了一些測試,以檢查未綁定服務器的配置。我們還看到瞭如何使用 Unbound 服務器的 IP 從本地 LAN 客戶端查詢 DNS 響應。任何反饋或建議將不勝感激。