天天看點

你應該知道的 22 個基本的 Linux 網絡指令

作者:硬核老王
你應該知道的 22 個基本的 Linux 網絡指令

我們并不是每天都會談論 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
           
你應該知道的 22 個基本的 Linux 網絡指令

同樣,你也可以使用

ip

指令來持續監控裝置的狀态,請使用

monitor

參數而不是我們之前用來擷取 IP 位址的

address

參數:

ip monitor
           
你應該知道的 22 個基本的 Linux 網絡指令

2、traceroute

使用

traceroute

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

預設情況下,你的系統可能沒有安裝

traceroute

,如果你使用的是 Debian 及派生的發行版(包括 Ubuntu),安裝時隻需使用一個指令:

sudo apt install traceroute
           

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

traceroute google.com
           
你應該知道的 22 個基本的 Linux 網絡指令

預設情況下,

traceroute

會使用 IPv4,但是你可以通過使用

-6

選項來改變這一行為,該選項将訓示

traceroute

使用 IPv6。讓我告訴你怎麼做:

你應該知道的 22 個基本的 Linux 網絡指令

3、tracepath

tracepath

指令用于發現 MTU(最大傳輸單元),同時追蹤到網絡主機的路徑。它與我上面讨論的

traceroute

很相似,但它不需要

sudo

權限,而且也沒有像它那麼多功能。

但是,首先什麼是 MTU?

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

現在,讓我們看一下 google.com的

tracepath

的基本例子:

tracepath google.com
           
你應該知道的 22 個基本的 Linux 網絡指令

同樣,你可以使用

-b

選項同時列印出 IP 位址和主機名。

tracepath -b google.com
           
你應該知道的 22 個基本的 Linux 網絡指令

4、ping

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

例如,我

ping

谷歌:

ping google.com
           
你應該知道的 22 個基本的 Linux 網絡指令

這裡,最後一行(

min/avg/max

)表示從指定的伺服器獲得響應的時間。

如果你得到一個錯誤提示

bash: ping: command not found

(LCTT 譯注:不會吧?),你可以檢視我們的指南如何在 Ubuntu 上安裝 Ping。

5、ss

ss

(套接字統計socket statistics)指令用于詳細了解網絡套接字(在網絡上發送和接收資料的端點)。

要列出所有監聽和非監聽的 TCP 連接配接,你必須使用

-at

選項,如下所示:

ss -at
           
你應該知道的 22 個基本的 Linux 網絡指令

同樣,你可以使用

-au

選項對 UDP 端口進行同樣的操作:

ss -au
           
你應該知道的 22 個基本的 Linux 網絡指令

6、dig

dig 指令(域資訊龍爪手Domain Information Groper 😜)用于擷取有關域名的所有必要資訊。

要在基于 Ubuntu 的發行版上安裝

dig

工具,請按照給出的指令進行:

sudo apt install dnsutils
           

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

dig itsfoss.com
           
你應該知道的 22 個基本的 Linux 網絡指令

7、host

host

指令主要用于擷取一個特定主機的 IP 位址,或者你可以從一個特定的 IP 位址擷取主機名。換句話說,它是一個 DNS 查詢工具。

要找到主機的 IP,你隻需要在

host

指令中附加主機名。讓我告訴你怎麼做:

host itsfoss.com
           
你應該知道的 22 個基本的 Linux 網絡指令

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

host 8.8.4.4
           
你應該知道的 22 個基本的 Linux 網絡指令

8、hostname

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

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

hostname
           
你應該知道的 22 個基本的 Linux 網絡指令

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

sudo hostname -F 
           
你應該知道的 22 個基本的 Linux 網絡指令

9、curl

curl

(用戶端 URL(Client URL))指令主要用于在網絡上傳輸資料,支援各種協定,包括 HTTP、FTP、IMAP 和許多其他協定。

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

curl

工具沒有預裝,如果你在任何 Debian 及其派生發行版上,你隻需要使用以下指令進行安裝:

sudo apt install curl
           

使用

curl

指令下載下傳檔案非常容易,你隻需在 URL 中使用

-O

選項,就可以開始了。

curl -O [URL]
           
你應該知道的 22 個基本的 Linux 網絡指令

在下載下傳大檔案時,進度條會很友善,你可以用

curl

-#

選項來顯示進度條。

你應該知道的 22 個基本的 Linux 網絡指令

10、mtr

它是

ping

traceroute

工具的組合,主要用于網絡診斷,并提供網絡響應和連接配接的實時情況。

使用

mtr

的最簡單方法是用它跟上一個主機名或 IP 位址,它将給出一個實時的

traceroute

報告。

mtr [URL/IP]
           
你應該知道的 22 個基本的 Linux 網絡指令

如果你想讓

mtr

同時顯示主機名和 IP 位址,你可以把它和

-b

選項配對,如下圖:

mtr -b [URL]
           
你應該知道的 22 個基本的 Linux 網絡指令

11、whois

whois

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

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

sudo apt install whois
           

一般來說,

whois

指令是與給出的域名配對使用的:

whois [DomainName]
           
你應該知道的 22 個基本的 Linux 網絡指令

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

12、ifplugstatus

ifplugstatus

是一個最基本的,但也是最有用的工具,足以在基本水準上排除連接配接問題。它用于檢測本地以太網的連結狀态,其工作方式與

mii-diag

mii-tool

ethtool

類似,支援所有三個 API。

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

sudo apt install ifplugd
           

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

ifplugstatus
           
你應該知道的 22 個基本的 Linux 網絡指令

13、iftop

iftop

(接口的 topInterface TOP)經常被管理者用來監控與帶寬有關的統計資料,當你遇到網絡問題時,也可以作為診斷工具使用。

這個工具需要手動安裝,可以通過給出的指令在運作 Debian/Ubuntu 的機器上輕松安裝。

sudo apt install iftop
           

iftop

在沒有任何選項的情況下使用時,它會顯示預設接口的帶寬統計。

sudo iftop
           
你應該知道的 22 個基本的 Linux 網絡指令

你也可以通過在裝置名稱後面加上

-i

選項來指定網絡裝置。

sudo iftop -i            

在我的例子中,是

enp1s0

,是以我的輸出将是如下:

你應該知道的 22 個基本的 Linux 網絡指令

14、tcpdump

tcpdump

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

像許多其他工具一樣,

tcpdump

沒有預裝,如果你是在Debian/Ubuntu 上,你可以按照下面的指令進行安裝:

sudo apt install tcpdump
           

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

sudo tcpdump
           
你應該知道的 22 個基本的 Linux 網絡指令

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

sudo tcpdump -w Captured_Packets.cap -i 
           
你應該知道的 22 個基本的 Linux 網絡指令

要通路儲存的檔案,你需要使用

-r

選項加上檔案名。

sudo tcpdump -r Captured_Packets.pcap
           
你應該知道的 22 個基本的 Linux 網絡指令

15、ethtool

顧名思義,

ethtool

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

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

sudo apt install ethtool
           

要擷取接口的詳細資訊,你隻需在指令後面加上裝置名稱,如下所示:

sudo ethtool 
           
你應該知道的 22 個基本的 Linux 網絡指令

16、nmcli

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

你可以使用

nmcli

指令來監控裝置的連接配接狀态:

nmcli dev status
           
你應該知道的 22 個基本的 Linux 網絡指令

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

nmcli
           
你應該知道的 22 個基本的 Linux 網絡指令

17、nmap

nmap

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

要在基于 Debian/Ubuntu 的發行版上安裝

nmap

工具,請使用給出的指令:

sudo apt install nmap
           

讓我們開始掃描主機名:

nmap itsfoss.com
           
你應該知道的 22 個基本的 Linux 網絡指令

18、bmon

bmon

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

安裝非常簡單,因為

bmon

存在于流行的 Linux 發行版的預設倉庫中,這也包括 Debian/Ubuntu。

sudo apt install bmon
           

現在,你隻需要啟動

bmon

,就可以用眼睛愉快地監控帶寬了:

bmon
           
你應該知道的 22 個基本的 Linux 網絡指令

19、firewalld

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

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

sudo apt install firewalld
           

例如,我将向你展示,如何為公共區域永久地打開 80 端口:

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
           
你應該知道的 22 個基本的 Linux 網絡指令

同樣,要删除最近添加的規則,你必須使用

-remove

選項,如下所示:

sudo firewall-cmd --zone=public --remove-port=80/tcp
           
你應該知道的 22 個基本的 Linux 網絡指令

20、iperf

iperf

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

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

sudo apt install iperf
           

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

iperf -s -u
           

其中,

-s

選項表示伺服器,

-u

選項為 UDP 格式。

你應該知道的 22 個基本的 Linux 網絡指令

現在,你可以通過提供首選協定的 IP 位址有效載荷連接配接到你的伺服器(使用

-c

選項表示用戶端)。在這個例子中,我選擇了 UDP(使用

-u

選項),有效載荷為 100:

iperf -c 10.0.2.15 -u 100
           
你應該知道的 22 個基本的 Linux 網絡指令

21、speedtest-cli

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

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

sudo apt install speedtest-cli
           

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

speedtest-cli
           
你應該知道的 22 個基本的 Linux 網絡指令

22、vnstat

vnstat

工具主要被系統管理者用來監控網絡流量和帶寬消耗(大部分情況下),因為這個工具可以監控你系統的網絡接口的流量。

和其他網絡工具一樣,你可以在預設的軟體庫中找到

vnstat

,如果你在 Debian/Ubuntu 上,可以通過給出的指令進行安裝:

sudo apt install vnstat
           

你可以使用

vnstat

指令,不需要任何選項,它将帶來你系統所有可用接口的基本統計資訊:

vnstat
           
你應該知道的 22 個基本的 Linux 網絡指令

對于實時監控,你可以将

vnstat

指令與

-l

選項配對。

你應該知道的 22 個基本的 Linux 網絡指令

一個長長的清單,對嗎?

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

流行的但 已廢棄的 Linux 指令,如

ipconfig

,已被故意排除在這個清單之外。

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

如果我忘了提到任何你喜歡的東西,請在評論中告訴我。

via: https://itsfoss.com/basic-linux-networking-commands/

作者:Sagar Sharma選題:lkxed譯者:wxy校對:wxy

本文由 LCTT原創編譯,Linux中國榮譽推出

繼續閱讀