Linux dig命令允許您查詢DNS伺服器並執行DNS查詢。您還可以找到IP地址指向的域。我們會教你怎麼做!
人們使用Linux dig命令來查詢域名系統(DNS)伺服器。dig是域名資訊搜尋者的縮寫。使用dig,您可以查詢有關各種DNS記錄的資訊,包括主機地址、郵件交換、名稱伺服器和相關資訊。它是用來診斷DNS問題的工具。但是,您可以使用它來瀏覽和了解更多關於DNS的資訊,DNS是保持internet路由流量的中心繫統之一。
網際網路使用網際網路協議(IP)地址來識別網路上的“位置”,但人們使用域名。當您在應用程式中鍵入域名時,例如web瀏覽器或SSH客戶端,必須將域名轉換為實際的IP地址。這就是域名系統的用武之地。
當您將域名用於任何連線到internet的程式時,您的本地路由器無法解析它(除非它是從以前的請求快取的)。因此,您的路由器查詢您的網際網路服務提供商(ISP)的DNS伺服器,或任何其他您已配置您的系統使用。這些被稱為DNS前體伺服器。
如果DNS伺服器最近收到同一臺計算機上其他人的相同請求,則答案可能在其快取中。如果是這樣,它只需將相同的資訊傳送回程序。
如果DNS前體伺服器在其快取中找不到域,它將聯絡DNS根名稱伺服器。根伺服器不會儲存將域名解析為IP地址所需的資訊,但它會儲存可以幫助您處理請求的伺服器列表。
根伺服器檢視您的域名所屬的頂級域,例如.COM、.ORG、。英國公司,等等。然後它將處理這些型別的域的頂級域伺服器的列表傳送回DNS伺服器。然後,DNS前置伺服器可以再次向頂級域伺服器發出請求。
頂級域伺服器將權威名稱伺服器的詳細資訊(儲存域詳細資訊的位置)傳送回DNS伺服器。然後,DNS伺服器查詢承載您最初輸入程式的域的區域的權威名稱伺服器。權威名稱伺服器將IP地址傳送回DNS伺服器,然後DNS伺服器將其傳送回您。
dig已經安裝在我們的ubuntu18.04和fedora30計算機上。但是,我們必須使用以下命令將其安裝到Manjaro 18.04計算機上:
sudo pacman -Sy bind-tools在第一個示例中,我們將返回與域名關聯的IP地址。通常,多個IP地址與一個域名相關聯。例如,如果使用負載平衡,這種情況經常發生。
我們使用+short query選項,如下所示,它給我們一個簡潔的響應:
dig tl80.cn +short與伺服器關聯的所有IP地址tl80.cn網站域為我們列出。另一方面,如果我們不使用+short查詢選項,輸出會非常冗長。
因此,我們鍵入以下內容以使其透過更少的管道:
dig tl80.cn | less輸出以較少的單位顯示,如下所示。
以下是完整列表:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> tl80.cn ;; global opti***: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;tl80.cn. IN A ;; ANSWER SECTION: tl80.cn. 3551 IN A 151.101.194.217 tl80.cn. 3551 IN A 151.101.130.217 tl80.cn. 3551 IN A 151.101.66.217 tl80.cn. 3551 IN A 151.101.2.217 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106讓我們一塊一塊地解剖。
首先,讓我們看一下標題中的內容:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> tl80.cn ;; global opti***: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1現在,這一切意味著:
接下來,我們將在Opt部分看到以下內容:
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494我們把它分解:
在問題部分,我們看到以下內容:
;; QUESTION SECTION: ;tl80.cn. IN A這意味著:
答案部分
答案部分包含我們從DNS伺服器收到的以下四個答案:
tl80.cn. 3551 IN A 151.101.194.217 tl80.cn. 3551 IN A 151.101.130.217 tl80.cn. 3551 IN A 151.101.66.217 tl80.cn. 3551 IN A 151.101.2.217以下是這些答案的含義:
統計是最後一節,它包含以下資訊:
;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106我們有以下資訊:
你不必滿足於守口如瓶和喋喋不休這兩個極端。dig命令允許您有選擇地從結果中包括或排除部分。
以下查詢選項將從結果中刪除該部分:
+noall查詢選項通常與上述選項結合使用,以便在結果中包含一個部分。因此,您可以使用+noall關閉所有部分,而不是鍵入一長串查詢選項來關閉多個部分。
然後,您可以使用以下包含性查詢選項重新開啟要檢視的查詢選項:
我們鍵入以下內容以發出請求並排除註釋行:
dig tl80.cn +nocomments如果我們單獨使用+noall查詢選項,如下所示,我們將不會得到任何有用的輸出:
dig tl80.cn +noall我們可以有選擇地新增要檢視的部分。要新增答案部分,請鍵入以下內容:
dig tl80.cn +noall +answer如果我們鍵入以下內容以啟用+統計資訊,我們還將看到統計資訊部分:
dig tl80.cn +noall +answer +stats通常使用+noall+答案組合。您可以根據需要向命令列新增其他節。如果您想避免每次使用dig時在命令列上鍵入+noall+應答,可以將它們放入名為“.digrc”的配置檔案中,該檔案位於主目錄中。
我們鍵入以下內容來建立一個帶有echo的:
echo "+noall +answer" > $HOME/.digrc然後,我們可以鍵入以下內容來檢查其內容:
cat .digrc這兩個選項現在將應用於dig的所有未來用途,如下所示:
dig ubuntu.org dig linux.org dig github.com此dig配置檔案將用於本文剩下的示例。
返回到dig請求的資訊是從DNS伺服器上儲存的不同型別的記錄中提取的。除非我們要求不同的東西,否則dig查詢A(地址)記錄。以下是dig常用的記錄型別:
指定A記錄型別不會更改預設操作,即查詢地址記錄並獲取IP地址,如下所示:
dig redhat.com A要查詢郵件交換記錄,我們使用以下MX標誌:
dig yahoo.com MX名稱伺服器標誌返回與頂級域關聯的根名稱伺服器的以下名稱:
dig fedora.com NS要查詢起始授權記錄,請鍵入以下SOA標誌:
dig manjaro.com SOATTL標誌將顯示DNS伺服器快取中資料的生存時間。如果我們提出一系列的請求,我們會看到生存時間減少到零,然後跳回到它的起始值。
我們鍵入以下內容:
dig usa.gov TTL要檢視文字記錄,請鍵入TX標誌:
dig usa.gov TXT如果您想對請求使用特定的DNS伺服器,可以使用at符號(@)將其作為命令列引數傳遞給dig。
對於預設DNS伺服器(見下文),dig引用了127.0.0.53中的本地快取存根解析器。
dig usa.gov +stats現在,我們鍵入以下內容以使用8.8.8.8的Google公共DNS伺服器:
dig @8.8.8.8 usa.gov +stats我們可以在命令列上傳遞多個域進行挖掘,如下所示:
dig ubuntu.org fedora.org manjaro.com如果您定期檢查一組域,您可以將它們儲存在文字檔案中並將其傳遞給dig。將依次檢查檔案中的所有域。
我們的檔名為“域.txt”我們將使用cat顯示其內容,然後使用-f(檔案)選項將其傳遞給dig。我們鍵入以下內容:
cat domains.txt dig -f domains.txt如果你有一個IP地址,想知道它去哪裡,你可以嘗試反向DNS查詢。如果它解析為在DNS伺服器上註冊的伺服器,則您可能能夠找到它的域。
是否可以,取決於PTR(指標記錄)的存在。ptr將IP地址解析為完全限定的域名。然而,由於這些不是強制性的,它們並不總是出現在域中。
讓我們看看是否能找出IP地址209.51.188.148帶我們去哪裡。我們使用-x(反向查詢)選項鍵入以下內容:
dig -x 209.51.188.148急板地!IP地址解析為gnu.org.
因為PTR是一個DNS記錄,而且我們知道dig可以請求指定的DNS記錄,所以我們不能請求dig為我們檢索PTR嗎?是的,我們可以,但這確實需要更多的工作。
我們必須以相反的順序提供IP地址,並在-地址:arpa最後,如下圖所示:
dig ptr 148.188.51.209.in-addr.arpa我們得到了同樣的結果,只是花了點力氣。
我們每天都在使用網際網路,好奇的人常常想知道,當我們在瀏覽器中鍵入網站名稱時,這種神奇是如何發生的。透過dig,你可以探索網路變戲法的過程。
... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...
...許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...
... 如何在windows10上安裝linux bash shell ...
要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...
想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...
...版本可以讓您對安全更新做出重要決定。我們將向您展示如何找到這些,無論您使用哪個發行版。 滾動和點釋放 你知道你在執行哪個版本的Linux嗎?你能找到核心版本嗎?Linux的滾動發行版,如Arch、Manjaro和openSUSE,經常使用自...