Linux 中的網路指令:如何檢視一個域名有哪些 NS 記錄?
遠端操作指令
- 遠端操作指令用的最多的是ssh,ssh指令允許遠端登入到目標計算機並進行遠端操作和管理。
- 還有一個比較常用的遠端指令是scp,scp幫助我們遠端傳送檔案。
ssh (Secure Shell)
- 有一種場景需要遠端登入一個 Linux 系統,這時我們會用到ssh指令。比如你想遠端登入一臺機器,可以使用ssh user@ip的方式
- 上圖中,我在使用ssh指令從機器u1登入我的另一臺虛擬機器u2。這裡u1和u2對應著 IP 地址,是我在/etc/hosts中設定的,如下圖所示:
- /etc/hosts這個檔案可以設定 IP 地址對應的域名。我這裡是一個小叢集,總共有兩臺機器,因此我設定了方便記憶和操作的名字。
scp
- 另一種場景是我需要拷貝一個檔案到遠端,這時可以使用scp指令,如下圖,我使用scp指令將本地計算機的一個檔案拷貝到了 ubuntu 虛擬機器使用者的家目錄中。
- 比如從u1拷貝家目錄下的檔案a.txt到u2。家目錄有一個簡寫,就是用~。具體指令見下圖:
- 輸入 scp 指令之後會彈出一個提示,要求輸入密碼,系統驗證通過後檔案會被成功拷貝。
檢視本地網路狀態
- 如果你想要了解本地的網路狀態,比較常用的網路指令是ifconfig和netstat
ifconfig
- 當你想知道本地ip以及本地有哪些網路介面時,就可以使用ifconfig指令。你可以把一個網路介面理解成一個網路卡,有時候虛擬機器會裝虛擬網路卡,虛擬網路卡是用軟體模擬的網路卡。
- 比如:VMware 為每個虛擬機器創造一個虛擬網路卡,通過虛擬網路卡接入虛擬網路。當然物理機也可以接入虛擬網路,它可以通過虛擬網路向虛擬機器的虛擬網路卡上傳送資訊。
- 下圖是我的 ubuntu 虛擬機器用 ifconfig 檢視網路介面資訊。
- 可以看到我的這臺 ubuntu 虛擬機器一共有 2 個網路卡,ens33 和 lo。
- lo是本地迴路(local lookback),傳送給lo就相當於傳送給本機。
- ens33是一塊連線著真實網路的虛擬網路卡。
netstat
- 另一個檢視網路狀態的場景是想看目前本機的網路使用情況,這個時候可以用netstat
- 預設行為
- 不傳任何引數的netstat幫助查詢所有的本地 socket,下圖是netstat | less的結果。
- 如上圖,我們看到的是 socket 檔案。socket 是網路插槽被抽象成了檔案,負責在客戶端、伺服器之間收發資料。當客戶端和服務端發生連線時,客戶端和服務端會同時各自生成一個 socket 檔案,用於管理這個連線。這裡,可以用wc -l數一下有多少個socket。
- 你可以看到一共有 615 個 socket 檔案,因為有很多 socket 在解決程式間的通訊。就是將兩個程式一個想象成客戶端,一個想象成服務端。並不是真的有 600 多個連線著網際網路的請求。
檢視 TCP 連線
- 如果想看有哪些 TCP 連線,可以使用netstat -t。比如下面我通過netstat -t看tcp協議的網路情況:
- 這裡沒有找到連線中的tcp,因為我們這臺虛擬機器當時沒有發生任何的網路連線。因此我們嘗試從機器u2(另一臺機器)ssh 登入進u1,再看一次:
- 如上圖所示,可以看到有一個 TCP 連線了。
檢視埠占用
還有一種非常常見的情形,我們想知道某個埠是哪個應用在佔用。如下圖所示:
- 這裡我們看到 22 埠被 sshd,也就是遠端登入模組被佔用了。
- -n是將一些特殊的埠號用數字顯示,-t是指看 TCP 協議,-l是隻顯示連線中的連線,-p是顯示程式名稱。
網路測試
- 當我們需要測試網路延遲、測試服務是否可用時,可能會用到ping和telnet指令。
ping
- 想知道本機到某個網站的網路延遲,就可以使用ping指令。如下圖所示:
- ping一個網站需要使用 ICMP 協議。因此你可以在上圖中看到 icmp 序號。 這裡的時間time是往返一次的時間。ttl叫作 time to live,是封包的生存時間。就是說,一個封包從發出就開始倒數計時,如果途中超過 128ms,這個包就會被丟棄。如果包被丟棄,就會被算進丟包率。
- 另外ping還可以幫助我們看到一個網址的 IP 地址。 通過網址獲得 IP 地址的過程叫作 DNS Lookup(DNS 查詢)。ping利用了 DNS 查詢,但是沒有顯示全部的 DNS 查詢結果。
telnet
- 有時候我們想知道本機到某個 IP + 埠的網路是否通暢,也就是想知道對方伺服器是否在這個埠上提供了服務。這個時候可以用telnet指令。 如下圖所示:
- telnet 執行後會進入一個互動式的介面,比如這個時候,我們輸入下圖中的文字就可以傳送 HTTP 請求了
DNS 查詢
- 我們排查網路故障時想要進行一次 DNS Lookup,想知道一個網址 DNS 的解析過程。這個時候有多個指令可以用。
host
- host 就是一個 DNS 查詢工具。比如我們查詢拉勾網的 DNS,如下圖所示:
- 我們看到拉勾網 www.lagou.com 是一個別名,它的原名是 lgmain 開頭的一個域名,這說明拉勾網有可能在用 CDN 分發主頁
- 上圖中,可以找到 3 個域名對應的 IP 地址。
- 如果想追查某種型別的記錄,可以使用host -t。比如下圖我們追查拉勾的 AAAA 記錄,因為拉勾網還沒有部署 IPv6,所以沒有找到。
dig
- dig指令也是一個做 DNS 查詢的。不過dig指令顯示的內容更詳細。下圖是dig拉勾網的結果。
HTTP 相關
curl
- 如果要在命令列請求一個網頁,或者請求一個介面,可以用curl指令。curl支援很多種協議,比如 LDAP、SMTP、FTP、HTTP 等。
- 我們可以直接使用 curl 請求一個網址,獲取資源,比如我用 curl 直接獲取了拉勾網的主頁,如下圖所示:
- 如果只想看 HTTP 返回頭,可以使用curl -I。
- 另外curl還可以執行 POST 請求,比如下面這個語句:
-
curl -d '{"x" : 1}' -H "Content-Type: application/json" -X POST http://localhost:3000/api
curl在向
localhost:3000
傳送 POST 請求。-d
後面跟著要傳送的資料, -X
後面是用到的 HTTP 方法,-H
是指定自定義的請求頭。
總結
-
遠端登入的 ssh 指令;
-
遠端拷貝檔案的 scp 指令;
-
檢視網路介面的 ifconfig 指令;
-
檢視網路狀態的 netstat 指令;
-
測試網路延遲的 ping 指令;
-
可以互動式除錯和服務端的 telnet 指令;
-
兩個 DNS 查詢指令 host 和 dig;
-
可以傳送各種請求包括 HTTPS 的 curl 指令。
相關文章
- Linux如何檢視檔案包含內容?常用指令有哪些?Linux
- Linux中如何排查網路?常見的網路排查指令都有哪些?Linux
- 在Linux中,如何檢視網路效能?Linux
- 在Linux系統中如何檢視有哪些組?Linux
- 如何在 Linux 中檢視可用的網路介面Linux
- Linux中如何檢視有幾個telnet程式?Linux
- 在Linux中,如何檢視網路介面的狀態?Linux
- Linux檢視檔案的命令有哪些?Linux
- Linux中如何檢視開啟了哪些埠?Linux
- NAS中如何檢視日誌記錄?
- SAP中如何檢視BOM的修改記錄呢?
- Linux中如何檢視目錄下的檔案大小?Linux
- ss命令檢視網路狀態引數選項有哪些?linux運維Linux運維
- Linux系統中如何檢視當前路徑?常用命令有哪些?Linux
- 查劫持網路方法,如何檢視網路有沒有被DNS劫持?DNS
- 如何檢視Linux系統版本?常用命令有哪些?Linux
- linux 檢視日誌的命令引數有哪些?Linux
- Linux系統中如何檢視磁碟可用空間?常用命令有哪些?Linux
- Linux中檢視指令碼程式是否存在的命令!Linux指令碼
- Linux檢視歷史記錄小技巧Linux
- 一個快速檢視trace的小指令碼指令碼
- Shell指令碼 – 檢視網路介面資訊指令碼
- Linux系統中檢視程式埠常用命令有哪些?Linux
- 在Linux中,如何檢視linux中記憶體使用率最高的程序?Linux記憶體
- Linux網路中的DNS域名正向解析實操LinuxDNS
- Linux如何檢視JDK的安裝路徑LinuxJDK
- Linux系統下如何檢視日誌?常用命令有哪些?Linux
- 網路安全中,計算機病毒檢測方法有哪些?計算機
- 怎麼檢視域名是否被劫持沒有、如何判斷網站域名是否被劫持?網站
- Linux系統中什麼是父目錄?如何檢視父目錄?Linux
- 中科三方域名管理專題:域名解析記錄的型別有哪些(下)型別
- AD中如何檢視一個Domain User對一個Domain Group具備哪些許可權AI
- linux檢視網路報文頻率Linux
- LINUX中如何檢視某個埠是否被佔用Linux
- win10 檢視病毒掃描記錄方法 win10如何檢視掃描檢測記錄Win10
- linux 實時檢視一個 python 程式有幾個執行緒LinuxPython執行緒
- 中科三方域名管理專題:域名解析記錄型別有哪些(上)型別
- 如何檢視Linux的記憶體使用狀況Linux記憶體