你應該知道的 22 個基本的 Linux 網路命令

語言: CN / TW / HK

我們並不是每天都會談論 Linux 的命令列。但正如一些讀者指出的那樣,你們也想學習一些命令列的技巧。

因此,我整理了一份基本的 Linux 網路命令清單,這些命令在我的大學時代幫助了我,讓我對如何在網路方面使用 Linux 有了堅定的認識。

這些命令將幫助你設定網路,以及解決你在 Linux 系統中可能遇到的各種網路問題。

Linux 中的基本網路命令

這個彙編包括了 CLI 實用程式,它們將幫助你排除網路問題、監控資料包和連線的裝置,以及更多。

在我展示這些命令的一些細節之前,讓我分享一下我今天要討論的所有命令的簡要概述。

命令

說明

​ip​

操縱路由來分配和配置網路引數

​traceroute​

識別資料包到達主機的路徑

​tracepath​

在追蹤網路主機的路徑時,獲取最大傳輸單元

​ping​

通常用於檢查主機和伺服器之間的連線情況

​ss​

獲得有關網路套接字的詳細資訊

​dig​

給出所有關於 DNS 名稱伺服器的必要資訊

​host​

輸出特定域和主機的 IP 地址

​hostname​

主要用於輸出和更改主機名

​curl​

在網路上通過各種協議傳輸資料

​mtr​

​ping​ ​​ 和 ​ ​traceroute​ ​ 的組合,用於診斷網路

​whois​

獲取有關注冊的域名、IP 地址、名稱伺服器等資訊

​ifplugstatus​

檢測本地乙太網裝置的連結狀態

​iftop​

監視與頻寬有關的統計資訊

​tcpdump​

資料包嗅探和分析工具,用於捕獲、分析和過濾網路流量

​ethtool​

允許使用者配置乙太網裝置

​nmcli​

用於網路連線的故障排除工具

​nmap​

主要用於審計網路安全

​bmon​

開源工具,用於監控實時頻寬

​firewalld​

配置防火牆規則的 CLI 工具

​iperf​

測量網路效能和調整的工具

​speedtest-cli​

​speedtest.net​ ​ 的 CLI 工具,用於檢查網速

​vnstat​

主要用於監控網路流量和頻寬消耗

現在,讓我們用例子和更深入的方式討論它們。

請注意,並不是所有的命令都會預裝。我已經添加了針對 Debian/Ubuntu 的說明。對於其他發行版,請使用你的軟體包管理器進行安裝。

1、ip 命令

​ip​ ​ 命令是最基本的,但也是最重要的,你會發現系統管理員經常使用它,其用於從操縱路由到分配和配置網路引數。

雖然用例可能無窮無盡,但讓我向你展示 ​ ​ip​ ​ 命令的最基本用例(尋找 IP 地址)。

ip address

同樣,你也可以使用 ​ ​ip​ ​ 命令來持續監控裝置的狀態,請使用 ​ ​monitor​ ​ 引數而不是我們之前用來獲取 IP 地址的 ​ ​address​ ​ 引數:

ip monitor

2、traceroute

使用 ​ ​traceroute​ ​ 命令,你可以確定資料包到達主機的路線。而且,當你想詢問資料包的傳輸情況和資料包所走的跳數時,它可能相當有用。

預設情況下,你的系統可能沒有安裝 ​ ​traceroute​ ​,如果你使用的是 Debian 及派生的發行版(包括 Ubuntu),安裝時只需使用一個命令:

例如,追蹤到 ​ ​google.com​ ​ 的資料包:

traceroute google.com

預設情況下,​ ​traceroute​ ​ 會使用 IPv4,但是你可以通過使用 ​ ​-6​ ​ 選項來改變這一行為,該選項將指示 ​ ​traceroute​ ​ 使用 IPv6。讓我告訴你怎麼做:

traceroute -6 google.com

3、tracepath

​tracepath​ ​ 命令用於發現 MTU(最大傳輸單元),同時追蹤到網路主機的路徑。它與我上面討論的 ​ ​traceroute​ ​ 很相似,但它不需要 ​ ​sudo​ ​ 許可權,而且也沒有像它那麼多功能。

但是,首先什麼是 MTU?

MTU 就是可以在網路上傳輸或接收的最大幀或資料包。

現在,讓我們看一下 ​ ​google.com​ ​ 的 ​ ​tracepath​ ​ 的基本例子:

tracepath google.com

同樣,你可以使用 ​ ​-b​ ​ 選項同時打印出 IP 地址和主機名。

tracepath -b google.com

4、ping

​ping 命令​ ​(資料包網路飛龍探雲手Packet Internet Groper  ) 可以說是在排除網路故障時最重要的命令之一,因為它是檢查主機和伺服器之間連線情況的最常用方法。

例如,我 ​ ​ping​ ​ 谷歌:

ping google.com

這裡,最後一行(​ ​min/avg/max​ ​)表示從指定的伺服器獲得響應的時間。

如果你得到一個錯誤提示 ​ ​bash: ping: command not found​ ​ (LCTT 譯註:不會吧?),你可以檢視我們的指南 ​ ​如何在 Ubuntu 上安裝 Ping​ ​。

5、ss

​ss​ ​(套接字統計socket statistics)命令用於詳細瞭解網路套接字(在網路上傳送和接收資料的端點)。

要列出所有監聽和非監聽的 TCP 連線,你必須使用 ​ ​-at​ ​ 選項,如下所示:

ss -at

同樣,你可以使用 ​ ​-au​ ​ 選項對 UDP 埠進行同樣的操作:

ss -au

6、dig

​dig 命令​ ​(域資訊龍爪手Domain Information Groper :stuck_out_tongue_winking_eye:)用於獲取有關域名的所有必要資訊。

要在基於 Ubuntu 的發行版上安裝 ​ ​dig​ ​ 工具,請按照給出的命令進行:

現在,讓我告訴你如何獲取一個特定主機的資訊,在這個例子中,我將獲取 ​ ​itsfoss.com​ ​ 的資訊:

dig itsfoss.com

7、host

​host​ ​ 命令主要用於獲取一個特定主機的 IP 地址,或者你可以從一個特定的 IP 地址獲取主機名。換句話說,它是一個 DNS 查詢工具。

要找到主機的 IP,你只需要在 ​ ​host​ ​ 命令中附加主機名。讓我告訴你怎麼做:

host itsfoss.com

同樣,你可以用一個 IP 地址來獲取主機名:

host 8.8.4.4

8、hostname

如果你已經使用了一段時間的 Linux,你一定很熟悉這個命令,因為這主要是用來 ​ ​改變你的系統的主機名​ ​ 和 NIS(網路資訊系統)的主機名。

當不使用任何選項時,它可以得到系統當前的主機名。

hostname

從包含所需主機名的檔案中改變主機名是這個工具的另一個有趣的功能:

sudo hostname -F hostname.txt

9、curl

​curl​ ​(客戶端 URL(Client URL))命令主要用於在網路上傳輸資料,支援各種協議,包括 HTTP、FTP、IMAP 和許多其他協議。

這個工具是首選的自動化工具,因為它是在沒有任何人類互動的情況下工作的,也可以用於端點測試、除錯和錯誤記錄。

​curl​ ​ 工具沒有預裝,如果你在任何 Debian 及其派生髮行版上,你只需要使用以下命令進行安裝:

使用 ​ ​curl​ ​ 命令 ​ ​下載檔案​ ​ 非常容易,你只需在 URL 中使用 ​ ​-O​ ​ 選項,就可以開始了。

curl -o url

在下載大檔案時,進度條會很方便,你可以用 ​ ​curl​ ​ 的 ​ ​-#​ ​ 選項來顯示進度條。

curl -# -O

10、mtr

它是 ​ ​ping​ ​ 和 ​ ​traceroute​ ​ 工具的組合,主要用於網路診斷,並提供網路響應和連線的實時情況。

使用 ​ ​mtr​ ​ 的最簡單方法是用它跟上一個主機名或 IP 地址,它將給出一個實時的 ​ ​traceroute​ ​ 報告。

mtr google.com

如果你想讓 ​ ​mtr​ ​ 同時顯示主機名和 IP 地址,你可以把它和 ​ ​-b​ ​ 選項配對,如下圖:

mtr -b

11、whois

​whois​ ​ 可以幫助你找到有關注冊的域名、IP 地址、名稱伺服器等資訊,因為它是 whois 目錄服務的客戶端。

這個工具可能沒有預裝在你的裝置上,要在基於 Debian/Ubuntu 的發行版上安裝,你可以使用給出的命令:

一般來說,​ ​whois​ ​ 命令是與給出的域名配對使用的:

whois google.com

另外,你也可以用一個 IP 地址來代替域名,你會得到同樣的細節。

12、ifplugstatus

​ifplugstatus​ ​ 是一個最基本的,但也是最有用的工具,足以在基本水平上排除連線問題。它用於檢測本地乙太網的連結狀態,其工作方式與 ​ ​mii-diag​ ​、​ ​mii-tool​ ​ 和 ​ ​ethtool​ ​ 類似,支援所有三個 API。

在基於 Debian/Ubuntu 的發行版上安裝,你可以按照給出的命令進行:

這個工具沒有任何花哨的選項,經常不需要與任何配對選項而使用:

ifplugstatus

13、iftop

​iftop​ ​(介面的 topInterface TOP)經常被管理員用來監控與頻寬有關的統計資料,當你遇到網路問題時,也可以作為診斷工具使用。

這個工具需要手動安裝,可以通過給出的命令在執行 Debian/Ubuntu 的機器上輕鬆安裝。

當 ​ ​iftop​ ​ 在沒有任何選項的情況下使用時,它會顯示預設介面的頻寬統計。

iftop

你也可以通過在裝置名稱後面加上 ​ ​-i​ ​ 選項來指定網路裝置。

在我的例子中,是 ​ ​enp1s0​ ​,所以我的輸出將是如下:

sudo iftop -i enp1s0

14、tcpdump

​tcpdump​ ​ 是一個數據包嗅探和分析工具,用於捕獲、分析和過濾網路流量。它也可以作為一個安全工具使用,因為它將捕獲的資料儲存在可以 ​ ​通過 Wireshark 訪問​ ​ 的 pcap 檔案中。

像許多其他工具一樣,​ ​tcpdump​ ​ 沒有預裝,如果你是在Debian/Ubuntu 上,你可以按照下面的命令進行安裝:

一旦你完成了安裝,你可以獲得當前介面的捕獲資料包,如下所示:

sudo tcpdump

那麼如何將捕獲的資料包儲存在 pcap 檔案中呢?讓我告訴你怎麼做:

sudo tcpdump -w

要訪問儲存的檔案,你需要使用 ​ ​-r​ ​ 選項加上檔名。

sudo tcpdump -r filename

15、ethtool

顧名思義,​ ​ethtool​ ​ 工具主要涉及管理乙太網裝置。使用這個工具,你可以調整網絡卡速度、自動協商特性等。

但它可能沒有預裝在你的機器上,可以通過利用給出的命令安裝在 Debian/Ubuntu 機器上:

要獲取介面的詳細資訊,你只需在命令後面加上裝置名稱,如下所示:

sudo ethtool enp1s0

16、nmcli

作為一個簡單而強大的網路故障排除工具,它是任何系統管理員在排除網路故障時首先使用的工具之一,也可以在指令碼中使用。

你可以使用 ​ ​nmcli​ ​ 命令來監控裝置的連線狀態:

nmcli dev status

當不使用任何選項時,它將帶來你係統中所有現有裝置的資訊:

nmcli

17、nmap

​nmap​ ​ 是一個探索和審計網路安全的工具。它經常被黑客和安全愛好者使用,因為它允許你獲得網路的實時資訊、連線到你的網路的 IP 的詳細資訊、埠掃描,以及更多。

要在基於 Debian/Ubuntu 的發行版上安裝 ​ ​nmap​ ​ 工具,請使用給出的命令:

讓我們開始掃描主機名:

nmap itsfoss.com

18、bmon

​bmon​ ​ 是一個開源的工具,用於監測實時頻寬和除錯問題,以更人性化的方式呈現統計資料。這個工具最好的部分是圖形顯示,甚至可以在 HTML 中得到你的輸出!

安裝非常簡單,因為 ​ ​bmon​ ​ 存在於流行的 Linux 發行版的預設倉庫中,這也包括 Debian/Ubuntu。

現在,你只需要啟動 ​ ​bmon​ ​,就可以用眼睛愉快地監控帶寬了:

bmon

19、firewalld

管理防火牆可以說是網路安全的核心部分,這個工具允許你新增、配置和刪除防火牆的規則。

但是 firewalld 需要手動安裝,如果你使用的是基於 Debian/Ubuntu 的發行版,你可以利用給出的命令進行安裝:

例如,我將向你展示,如何為公共區域永久地開啟 80 埠:

sudo firewall-cmd --permanent --zone=public

同樣,要刪除最近新增的規則,你必須使用 ​ ​-remove​ ​ 選項,如下所示:

sudo firewall-cmd --zone=public --remove

20、iperf

​iperf​ ​ 是一個用 C 語言編寫的開源工具,允許使用者進行網路效能測量和調整。

這個工具存在於 Debian/Ubuntu 的預設資源庫中,可以通過給出的命令安裝:

要開始監控網路,使用者必須通過給出的命令在伺服器上啟動這個客戶端:

其中,​ ​-s​ ​ 選項表示伺服器,​ ​-u​ ​ 選項為 UDP 格式。

iperf -s -u

現在,你可以通過提供首選協議的 IP 地址有效載荷連線到你的伺服器(使用 ​ ​-c​ ​ 選項表示客戶端)。在這個例子中,我選擇了 UDP(使用 ​ ​-u​ ​ 選項),有效載荷為 100:

iperf -c

21、speedtest-cli

顧名思義,這是 ​ ​speedtest.net​ ​ 網站的 CLI 工具。這個在 Apache 2.0 許可下發布的開源工具,當你想從 CLI 獲得一個可靠的 ​ ​檢查網速​ ​ 的來源時,會有很大幫助。

安裝非常簡單,如果你是在 Debian/Ubuntu 上,可以利用給出的命令輕鬆安裝:

一旦你完成了安裝部分,你只需要使用一行命令即可測試你的速度:

speedtest-cli

22、vnstat

​vnstat​ ​ 工具主要被系統管理員用來監控網路流量和頻寬消耗(大部分情況下),因為這個工具可以監控你係統的網路介面的流量。

和其他網路工具一樣,你可以在預設的軟體庫中找到 ​ ​vnstat​ ​,如果你在 Debian/Ubuntu 上,可以通過給出的命令進行安裝:

你可以使用 ​ ​vnstat​ ​ 命令,不需要任何選項,它將帶來你係統所有可用介面的基本統計資訊:

vnstat

對於實時監控,你可以將 ​ ​vnstat​ ​ 命令與 ​ ​-l​ ​ 選項配對。

vnstat -l

一個長長的清單,對嗎?

這個彙編連冰山一角都算不上,只是分享了每個命令的目的和基本例子,因為增加更多的命令會使這個清單變得更長。

流行的但 ​ ​已廢棄的 Linux 命令​ ​,如 ​ ​ipconfig​ ​,已被故意排除在這個列表之外。

如果你很好奇,你可以學習 ​ ​如何最大限度地利用手冊頁​ ​,這將教會你如何使用任何實用程式的最大潛力。