我們并不是每天都會談論 Linux 的指令行。但正如一些讀者指出的那樣,你們也想學習一些指令行的技巧。
是以,我整理了一份基本的 Linux 網絡指令清單,這些指令在我的大學時代幫助了我,讓我對如何在網絡方面使用 Linux 有了堅定的認識。
這些指令将幫助你設定網絡,以及解決你在 Linux 系統中可能遇到的各種網絡問題。
Linux 中的基本網絡指令
這個彙編包括了 CLI 實用程式,它們将幫助你排除網絡問題、監控資料包和連接配接的裝置,以及更多。
在我展示這些指令的一些細節之前,讓我分享一下我今天要讨論的所有指令的簡要概述。
指令 | 說明 |
---|---|
| 操縱路由來配置設定和配置網絡參數 |
| 識别資料包到達主機的路徑 |
| 在追蹤網絡主機的路徑時,擷取最大傳輸單元 |
| 通常用于檢查主機和伺服器之間的連接配接情況 |
| 獲得有關網絡套接字的詳細資訊 |
| 給出所有關于 DNS 名稱伺服器的必要資訊 |
| 輸出特定域和主機的 IP 位址 |
| 主要用于輸出和更改主機名 |
| 在網絡上通過各種協定傳輸資料 |
| 和 的組合,用于診斷網絡 |
| 擷取有關注冊的域名、IP 位址、名稱伺服器等資訊 |
| 檢測本地以太網裝置的連結狀态 |
| 監視與帶寬有關的統計資訊 |
| 資料包嗅探和分析工具,用于捕獲、分析和過濾網絡流量 |
| 允許使用者配置以太網裝置 |
| 用于網絡連接配接的故障排除工具 |
| 主要用于審計網絡安全 |
| 開源工具,用于監控實時帶寬 |
| 配置防火牆規則的 CLI 工具 |
| 測量網絡性能和調整的工具 |
| speedtest.net的 CLI 工具,用于檢查網速 |
| 主要用于監控網絡流量和帶寬消耗 |
現在,讓我們用例子和更深入的方式讨論它們。
請注意,并不是所有的指令都會預裝。我已經添加了針對 Debian/Ubuntu 的說明。對于其他發行版,請使用你的軟體包管理器進行安裝。
1、ip 指令
ip
指令是最基本的,但也是最重要的,你會發現系統管理者經常使用它,其用于從操縱路由到配置設定和配置網絡參數。
雖然用例可能無窮無盡,但讓我向你展示
ip
指令的最基本用例(尋找 IP 位址)。
ip address
同樣,你也可以使用
ip
指令來持續監控裝置的狀态,請使用
monitor
參數而不是我們之前用來擷取 IP 位址的
address
參數:
ip monitor
2、traceroute
使用
traceroute
指令,你可以确定資料包到達主機的路線。而且,當你想詢問資料包的傳輸情況和資料包所走的跳數時,它可能相當有用。
預設情況下,你的系統可能沒有安裝
traceroute
,如果你使用的是 Debian 及派生的發行版(包括 Ubuntu),安裝時隻需使用一個指令:
sudo apt install traceroute
例如,追蹤到 google.com的資料包:
traceroute google.com
預設情況下,
traceroute
會使用 IPv4,但是你可以通過使用
-6
選項來改變這一行為,該選項将訓示
traceroute
使用 IPv6。讓我告訴你怎麼做:
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 😜)用于擷取有關域名的所有必要資訊。
要在基于 Ubuntu 的發行版上安裝
dig
工具,請按照給出的指令進行:
sudo apt install dnsutils
現在,讓我告訴你如何擷取一個特定主機的資訊,在這個例子中,我将擷取 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
9、curl
curl
(用戶端 URL(Client URL))指令主要用于在網絡上傳輸資料,支援各種協定,包括 HTTP、FTP、IMAP 和許多其他協定。
這個工具是首選的自動化工具,因為它是在沒有任何人類互動的情況下工作的,也可以用于端點測試、調試和錯誤記錄。
curl
工具沒有預裝,如果你在任何 Debian 及其派生發行版上,你隻需要使用以下指令進行安裝:
sudo apt install curl
使用
curl
指令下載下傳檔案非常容易,你隻需在 URL 中使用
-O
選項,就可以開始了。
curl -O [URL]
在下載下傳大檔案時,進度條會很友善,你可以用
curl
的
-#
選項來顯示進度條。
10、mtr
它是
ping
和
traceroute
工具的組合,主要用于網絡診斷,并提供網絡響應和連接配接的實時情況。
使用
mtr
的最簡單方法是用它跟上一個主機名或 IP 位址,它将給出一個實時的
traceroute
報告。
mtr [URL/IP]
如果你想讓
mtr
同時顯示主機名和 IP 位址,你可以把它和
-b
選項配對,如下圖:
mtr -b [URL]
11、whois
whois
可以幫助你找到有關注冊的域名、IP 位址、名稱伺服器等資訊,因為它是 whois 目錄服務的用戶端。
這個工具可能沒有預裝在你的裝置上,要在基于 Debian/Ubuntu 的發行版上安裝,你可以使用給出的指令:
sudo apt install whois
一般來說,
whois
指令是與給出的域名配對使用的:
whois [DomainName]
另外,你也可以用一個 IP 位址來代替域名,你會得到同樣的細節。
12、ifplugstatus
ifplugstatus
是一個最基本的,但也是最有用的工具,足以在基本水準上排除連接配接問題。它用于檢測本地以太網的連結狀态,其工作方式與
mii-diag
、
mii-tool
和
ethtool
類似,支援所有三個 API。
在基于 Debian/Ubuntu 的發行版上安裝,你可以按照給出的指令進行:
sudo apt install ifplugd
這個工具沒有任何花哨的選項,經常不需要與任何配對選項而使用:
ifplugstatus
13、iftop
iftop
(接口的 topInterface TOP)經常被管理者用來監控與帶寬有關的統計資料,當你遇到網絡問題時,也可以作為診斷工具使用。
這個工具需要手動安裝,可以通過給出的指令在運作 Debian/Ubuntu 的機器上輕松安裝。
sudo apt install iftop
當
iftop
在沒有任何選項的情況下使用時,它會顯示預設接口的帶寬統計。
sudo iftop
你也可以通過在裝置名稱後面加上
-i
選項來指定網絡裝置。
sudo iftop -i
在我的例子中,是
enp1s0
,是以我的輸出将是如下:
14、tcpdump
tcpdump
是一個資料包嗅探和分析工具,用于捕獲、分析和過濾網絡流量。它也可以作為一個安全工具使用,因為它将捕獲的資料儲存在可以通過 Wireshark 通路的 pcap 檔案中。
像許多其他工具一樣,
tcpdump
沒有預裝,如果你是在Debian/Ubuntu 上,你可以按照下面的指令進行安裝:
sudo apt install tcpdump
一旦你完成了安裝,你可以獲得目前接口的捕獲資料包,如下所示:
sudo tcpdump
那麼如何将捕獲的資料包儲存在 pcap 檔案中呢?讓我告訴你怎麼做:
sudo tcpdump -w Captured_Packets.cap -i
要通路儲存的檔案,你需要使用
-r
選項加上檔案名。
sudo tcpdump -r Captured_Packets.pcap
15、ethtool
顧名思義,
ethtool
工具主要涉及管理以太網裝置。使用這個工具,你可以調整網卡速度、自動協商特性等。
但它可能沒有預裝在你的機器上,可以通過利用給出的指令安裝在 Debian/Ubuntu 機器上:
sudo apt install ethtool
要擷取接口的詳細資訊,你隻需在指令後面加上裝置名稱,如下所示:
sudo ethtool
16、nmcli
作為一個簡單而強大的網絡故障排除工具,它是任何系統管理者在排除網絡故障時首先使用的工具之一,也可以在腳本中使用。
你可以使用
nmcli
指令來監控裝置的連接配接狀态:
nmcli dev status
當不使用任何選項時,它将帶來你系統中所有現有裝置的資訊:
nmcli
17、nmap
nmap
是一個探索和審計網絡安全的工具。它經常被黑客和安全愛好者使用,因為它允許你獲得網絡的實時資訊、連接配接到你的網絡的 IP 的詳細資訊、端口掃描,以及更多。
要在基于 Debian/Ubuntu 的發行版上安裝
nmap
工具,請使用給出的指令:
sudo apt install nmap
讓我們開始掃描主機名:
nmap itsfoss.com
18、bmon
bmon
是一個開源的工具,用于監測實時帶寬和調試問題,以更人性化的方式呈現統計資料。這個工具最好的部分是圖形顯示,甚至可以在 HTML 中得到你的輸出!
安裝非常簡單,因為
bmon
存在于流行的 Linux 發行版的預設倉庫中,這也包括 Debian/Ubuntu。
sudo apt install bmon
現在,你隻需要啟動
bmon
,就可以用眼睛愉快地監控帶寬了:
bmon
19、firewalld
管理防火牆可以說是網絡安全的核心部分,這個工具允許你添加、配置和删除防火牆的規則。
但是 firewalld 需要手動安裝,如果你使用的是基于 Debian/Ubuntu 的發行版,你可以利用給出的指令進行安裝:
sudo apt install firewalld
例如,我将向你展示,如何為公共區域永久地打開 80 端口:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
同樣,要删除最近添加的規則,你必須使用
-remove
選項,如下所示:
sudo firewall-cmd --zone=public --remove-port=80/tcp
20、iperf
iperf
是一個用 C 語言編寫的開源工具,允許使用者進行網絡性能測量和調整。
這個工具存在于 Debian/Ubuntu 的預設資源庫中,可以通過給出的指令安裝:
sudo apt install iperf
要開始監控網絡,使用者必須通過給出的指令在伺服器上啟動這個用戶端:
iperf -s -u
其中,
-s
選項表示伺服器,
-u
選項為 UDP 格式。
現在,你可以通過提供首選協定的 IP 位址有效載荷連接配接到你的伺服器(使用
-c
選項表示用戶端)。在這個例子中,我選擇了 UDP(使用
-u
選項),有效載荷為 100:
iperf -c 10.0.2.15 -u 100
21、speedtest-cli
顧名思義,這是 speedtest.net網站的 CLI 工具。這個在 Apache 2.0 許可下釋出的開源工具,當你想從 CLI 獲得一個可靠的檢查網速的來源時,會有很大幫助。
安裝非常簡單,如果你是在 Debian/Ubuntu 上,可以利用給出的指令輕松安裝:
sudo apt install speedtest-cli
一旦你完成了安裝部分,你隻需要使用一行指令即可測試你的速度:
speedtest-cli
22、vnstat
vnstat
工具主要被系統管理者用來監控網絡流量和帶寬消耗(大部分情況下),因為這個工具可以監控你系統的網絡接口的流量。
和其他網絡工具一樣,你可以在預設的軟體庫中找到
vnstat
,如果你在 Debian/Ubuntu 上,可以通過給出的指令進行安裝:
sudo apt install vnstat
你可以使用
vnstat
指令,不需要任何選項,它将帶來你系統所有可用接口的基本統計資訊:
vnstat
對于實時監控,你可以将
vnstat
指令與
-l
選項配對。
一個長長的清單,對嗎?
這個彙編連冰山一角都算不上,隻是分享了每個指令的目的和基本例子,因為增加更多的指令會使這個清單變得更長。
流行的但 已廢棄的 Linux 指令,如
ipconfig
,已被故意排除在這個清單之外。
如果你很好奇,你可以學習 如何最大限度地利用手冊頁,這将教會你如何使用任何實用程式的最大潛力。
如果我忘了提到任何你喜歡的東西,請在評論中告訴我。
via: https://itsfoss.com/basic-linux-networking-commands/
作者:Sagar Sharma選題:lkxed譯者:wxy校對:wxy
本文由 LCTT原創編譯,Linux中國榮譽推出