導(dǎo)讀:我們并不是每天都會談?wù)?linux 的命令行。但正如一些讀者指出的那樣,你們也想學(xué)習(xí)一些命令行的技巧。
本文字?jǐn)?shù):7598,閱讀時長大約: 11分鐘
我們并不是每天都會談?wù)?Linux 的命令行。但正如一些讀者指出的那樣,你們也想學(xué)習(xí)一些命令行的技巧。
因此,我整理了一份基本的 Linux 網(wǎng)絡(luò)命令清單,這些命令在我的大學(xué)時代幫助了我,讓我對如何在網(wǎng)絡(luò)方面使用 Linux 有了堅定的認(rèn)識。
這些命令將幫助你設(shè)置網(wǎng)絡(luò),以及解決你在 Linux 系統(tǒng)中可能遇到的各種網(wǎng)絡(luò)問題。
Linux 中的基本網(wǎng)絡(luò)命令
這個匯編包括了 CLI 實用程序,它們將幫助你排除網(wǎng)絡(luò)問題、監(jiān)控數(shù)據(jù)包和連接的設(shè)備,以及更多。
在我展示這些命令的一些細(xì)節(jié)之前,讓我分享一下我今天要討論的所有命令的簡要概述。
< 如顯示不全,請左右滑動 >
命令 說明ip
操縱路由來分配和配置網(wǎng)絡(luò)參數(shù)traceroute
識別數(shù)據(jù)包到達(dá)主機的路徑tracepath
在追蹤網(wǎng)絡(luò)主機的路徑時,獲取最大傳輸單元ping
通常用于檢查主機和服務(wù)器之間的連接情況ss
獲得有關(guān)網(wǎng)絡(luò)套接字的詳細(xì)信息dig
給出所有關(guān)于 DNS 名稱服務(wù)器的必要信息host
輸出特定域和主機的 IP 地址hostname
主要用于輸出和更改主機名curl
在網(wǎng)絡(luò)上通過各種協(xié)議傳輸數(shù)據(jù)mtr
ping
traceroute
的組合,用于診斷網(wǎng)絡(luò)whois
獲取有關(guān)注冊的域名、IP 地址、名稱服務(wù)器等信息ifplugstatus
檢測本地以太網(wǎng)設(shè)備的鏈接狀態(tài)iftop
監(jiān)視與帶寬有關(guān)的統(tǒng)計信息tcpdump
數(shù)據(jù)包嗅探和分析工具,用于捕獲、分析和過濾網(wǎng)絡(luò)流量ethtool
允許用戶配置以太網(wǎng)設(shè)備nmcli
用于網(wǎng)絡(luò)連接的故障排除工具nmap
主要用于審計網(wǎng)絡(luò)安全bmon
開源工具,用于監(jiān)控實時帶寬firewalld
配置防火墻規(guī)則的 CLI 工具iperf
測量網(wǎng)絡(luò)性能和調(diào)整的工具speedtest-cli
speedtest.NET 的 CLI 工具,用于檢查網(wǎng)速vnstat
主要用于監(jiān)控網(wǎng)絡(luò)流量和帶寬消耗
現(xiàn)在,讓我們用例子和更深入的方式討論它們。
請注意,并不是所有的命令都會預(yù)裝。我已經(jīng)添加了針對 Debian/Ubuntu 的說明。對于其他發(fā)行版,請使用你的軟件包管理器進(jìn)行安裝。
1、ip 命令
ip
命令是最基本的,但也是最重要的,你會發(fā)現(xiàn)系統(tǒng)管理員經(jīng)常使用它,其用于從操縱路由到分配和配置網(wǎng)絡(luò)參數(shù)。
雖然用例可能無窮無盡,但讓我向你展示ip
命令的最基本用例(尋找 IP 地址)。
-
ip address
ip address
同樣,你也可以使用ip
命令來持續(xù)監(jiān)控設(shè)備的狀態(tài),請使用monitor
參數(shù)而不是我們之前用來獲取 IP 地址的address
參數(shù):
-
ip monitor
ip monitor
2、traceroute
使用traceroute
命令,你可以確定數(shù)據(jù)包到達(dá)主機的路線。而且,當(dāng)你想詢問數(shù)據(jù)包的傳輸情況和數(shù)據(jù)包所走的跳數(shù)時,它可能相當(dāng)有用。
默認(rèn)情況下,你的系統(tǒng)可能沒有安裝traceroute
,如果你使用的是 Debian 及派生的發(fā)行版(包括 Ubuntu),安裝時只需使用一個命令:
-
sudo apt install traceroute
例如,追蹤到 google.com 的數(shù)據(jù)包:
-
traceroute google.com
traceroute google.com
默認(rèn)情況下,traceroute
會使用 IPv4,但是你可以通過使用-6
選項來改變這一行為,該選項將指示traceroute
使用 IPv6。讓我告訴你怎么做:
traceroute -6 google.com
3、tracepath
tracepath
命令用于發(fā)現(xiàn) MTU(最大傳輸單元),同時追蹤到網(wǎng)絡(luò)主機的路徑。它與我上面討論的traceroute
很相似,但它不需要sudo
權(quán)限,而且也沒有像它那么多功能。
但是,首先什么是 MTU?
MTU 就是可以在網(wǎng)絡(luò)上傳輸或接收的最大幀或數(shù)據(jù)包。
現(xiàn)在,讓我們看一下 google.com 的tracepath
的基本例子:
-
tracepath google.com
tracepath google.com
同樣,你可以使用-b
選項同時打印出 IP 地址和主機名。
-
tracepath -b google.com
tracepath -b google.com
4、ping
linuxhandbook.com(數(shù)據(jù)包網(wǎng)絡(luò)飛龍?zhí)皆剖?Packet Internet Groper) ) 可以說是在排除網(wǎng)絡(luò)故障時最重要的命令之一,因為它是檢查主機和服務(wù)器之間連接情況的最常用方法。
例如,我ping
谷歌:
-
ping google.com
ping google.com
這里,最后一行(min/avg/max
)表示從指定的服務(wù)器獲得響應(yīng)的時間。
如果你得到一個錯誤提示bash: ping: command not found
(LCTT 譯注:不會吧?),你可以查看我們的指南 linuxhandbook.com。
5、ss
ss
(套接字統(tǒng)計(socket statistics))命令用于詳細(xì)了解網(wǎng)絡(luò)套接字(在網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù)的端點)。
要列出所有監(jiān)聽和非監(jiān)聽的 TCP 連接,你必須使用-at
選項,如下所示:
-
ss -at
ss -at
同樣,你可以使用-au
選項對 UDP 端口進(jìn)行同樣的操作:
-
ss -au
ss -au
6、dig
linuxhandbook.com(域信息龍爪手(Domain Information Groper) )用于獲取有關(guān)域名的所有必要信息。
要在基于 Ubuntu 的發(fā)行版上安裝dig
工具,請按照給出的命令進(jìn)行:
-
sudo apt install dnsutils
現(xiàn)在,讓我告訴你如何獲取一個特定主機的信息,在這個例子中,我將獲取 itsfoss.com 的信息:
-
dig itsfoss.com
dig itsfoss.com
7、host
host
命令主要用于獲取一個特定主機的 IP 地址,或者你可以從一個特定的 IP 地址獲取主機名。換句話說,它是一個 DNS 查詢工具。
要找到主機的 IP,你只需要在host
命令中附加主機名。讓我告訴你怎么做:
-
host itsfoss.com
host itsfoss.com
同樣,你可以用一個 IP 地址來獲取主機名:
-
host 8.8.4.4
host 8.8.4.4
8、hostname
如果你已經(jīng)使用了一段時間的 Linux,你一定很熟悉這個命令,因為這主要是用來 itsfoss.com 和 NIS(網(wǎng)絡(luò)信息系統(tǒng))的主機名。
當(dāng)不使用任何選項時,它可以得到系統(tǒng)當(dāng)前的主機名。
-
hostname
hostname
從包含所需主機名的文件中改變主機名是這個工具的另一個有趣的功能:
-
sudo hostname -F
sudo hostname -F hostname.txt
9、curl
curl
(客戶端 URL(Client URL))命令主要用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù),支持各種協(xié)議,包括 HTTP、FTP、IMAP 和許多其他協(xié)議。
這個工具是首選的自動化工具,因為它是在沒有任何人類互動的情況下工作的,也可以用于端點測試、調(diào)試和錯誤記錄。
curl
工具沒有預(yù)裝,如果你在任何 Debian 及其派生發(fā)行版上,你只需要使用以下命令進(jìn)行安裝:
-
sudo apt install curl
使用curl
命令 linuxhandbook.com 非常容易,你只需在 URL 中使用-O
選項,就可以開始了。
-
curl -O [URL]
curl -o url
在下載大文件時,進(jìn)度條會很方便,你可以用curl
的-#
選項來顯示進(jìn)度條。
curl -# -O
10、mtr
它是ping
和traceroute
工具的組合,主要用于網(wǎng)絡(luò)診斷,并提供網(wǎng)絡(luò)響應(yīng)和連接的實時情況。
使用mtr
的最簡單方法是用它跟上一個主機名或 IP 地址,它將給出一個實時的traceroute
報告。
-
mtr [URL/IP]
mtr google.com
如果你想讓mtr
同時顯示主機名和 IP 地址,你可以把它和-b
選項配對,如下圖:
-
mtr -b [URL]
mtr -b
11、whois
whois
可以幫助你找到有關(guān)注冊的域名、IP 地址、名稱服務(wù)器等信息,因為它是 whois 目錄服務(wù)的客戶端。
這個工具可能沒有預(yù)裝在你的設(shè)備上,要在基于 Debian/Ubuntu 的發(fā)行版上安裝,你可以使用給出的命令:
-
sudo apt install whois
一般來說,whois
命令是與給出的域名配對使用的:
-
whois [DomainName]
whois google.com
另外,你也可以用一個 IP 地址來代替域名,你會得到同樣的細(xì)節(jié)。
12、ifplugstatus
ifplugstatus
是一個最基本的,但也是最有用的工具,足以在基本水平上排除連接問題。它用于檢測本地以太網(wǎng)的鏈接狀態(tài),其工作方式與mii-diag
、mii-tool
和ethtool
類似,支持所有三個 API。
在基于 Debian/Ubuntu 的發(fā)行版上安裝,你可以按照給出的命令進(jìn)行:
-
sudo apt install ifplugd
這個工具沒有任何花哨的選項,經(jīng)常不需要與任何配對選項而使用:
-
ifplugstatus
ifplugstatus
13、iftop
iftop
(接口的 top(Interface TOP))經(jīng)常被管理員用來監(jiān)控與帶寬有關(guān)的統(tǒng)計數(shù)據(jù),當(dāng)你遇到網(wǎng)絡(luò)問題時,也可以作為診斷工具使用。
這個工具需要手動安裝,可以通過給出的命令在運行 Debian/Ubuntu 的機器上輕松安裝。
-
sudo apt install iftop
當(dāng)iftop
在沒有任何選項的情況下使用時,它會顯示默認(rèn)接口的帶寬統(tǒng)計。
-
sudo iftop
iftop
你也可以通過在設(shè)備名稱后面加上-i
選項來指定網(wǎng)絡(luò)設(shè)備。
-
sudo iftop -i .
在我的例子中,是enp1s0
,所以我的輸出將是如下:
sudo iftop -i enp1s0
14、tcpdump
tcpdump
是一個數(shù)據(jù)包嗅探和分析工具,用于捕獲、分析和過濾網(wǎng)絡(luò)流量。它也可以作為一個安全工具使用,因為它將捕獲的數(shù)據(jù)保存在可以 itsfoss.com 的 pcap 文件中。
像許多其他工具一樣,tcpdump
沒有預(yù)裝,如果你是在Debian/Ubuntu 上,你可以按照下面的命令進(jìn)行安裝:
-
sudo apt install tcpdump
一旦你完成了安裝,你可以獲得當(dāng)前接口的捕獲數(shù)據(jù)包,如下所示:
-
sudo tcpdump
sudo tcpdump
那么如何將捕獲的數(shù)據(jù)包保存在 pcap 文件中呢?讓我告訴你怎么做:
-
sudo tcpdump -w Captured_Packets.cap -i < networkdevice >
sudo tcpdump -w
要訪問保存的文件,你需要使用-r
選項加上文件名。
-
sudo tcpdump -r Captured_Packets.pcap
sudo tcpdump -r filename
15、ethtool
顧名思義,ethtool
工具主要涉及管理以太網(wǎng)設(shè)備。使用這個工具,你可以調(diào)整網(wǎng)卡速度、自動協(xié)商特性等。
但它可能沒有預(yù)裝在你的機器上,可以通過利用給出的命令安裝在 Debian/Ubuntu 機器上:
-
sudo apt install ethtool
要獲取接口的詳細(xì)信息,你只需在命令后面加上設(shè)備名稱,如下所示:
-
sudo ethtool
sudo ethtool enp1s0
16、nmcli
作為一個簡單而強大的網(wǎng)絡(luò)故障排除工具,它是任何系統(tǒng)管理員在排除網(wǎng)絡(luò)故障時首先使用的工具之一,也可以在腳本中使用。
你可以使用nmcli
命令來監(jiān)控設(shè)備的連接狀態(tài):
-
nmcli dev status
nmcli dev status
當(dāng)不使用任何選項時,它將帶來你系統(tǒng)中所有現(xiàn)有設(shè)備的信息:
-
nmcli
nmcli
17、nmap
nmap
是一個探索和審計網(wǎng)絡(luò)安全的工具。它經(jīng)常被黑客和安全愛好者使用,因為它允許你獲得網(wǎng)絡(luò)的實時信息、連接到你的網(wǎng)絡(luò)的 IP 的詳細(xì)信息、端口掃描,以及更多。
要在基于 Debian/Ubuntu 的發(fā)行版上安裝nmap
工具,請使用給出的命令:
-
sudo apt install nmap
讓我們開始掃描主機名:
-
nmap itsfoss.com
nmap itsfoss.com
18、bmon
bmon
是一個開源的工具,用于監(jiān)測實時帶寬和調(diào)試問題,以更人性化的方式呈現(xiàn)統(tǒng)計數(shù)據(jù)。這個工具最好的部分是圖形顯示,甚至可以在 html 中得到你的輸出!
安裝非常簡單,因為bmon
存在于流行的 Linux 發(fā)行版的默認(rèn)倉庫中,這也包括 Debian/Ubuntu。
-
sudo apt install bmon
現(xiàn)在,你只需要啟動bmon
,就可以用眼睛愉快地監(jiān)控帶寬了:
-
bmon
bmon
19、firewalld
管理防火墻可以說是網(wǎng)絡(luò)安全的核心部分,這個工具允許你添加、配置和刪除防火墻的規(guī)則。
但是 firewalld 需要手動安裝,如果你使用的是基于 Debian/Ubuntu 的發(fā)行版,你可以利用給出的命令進(jìn)行安裝:
-
sudo apt install firewalld
例如,我將向你展示,如何為公共區(qū)域永久地打開 80 端口:
-
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public
同樣,要刪除最近添加的規(guī)則,你必須使用-remove
選項,如下所示:
-
sudo firewall-cmd --zone=public --remove-port=80/tcp
sudo firewall-cmd --zone=public --remove
20、iperf
iperf
是一個用 C 語言編寫的開源工具,允許用戶進(jìn)行網(wǎng)絡(luò)性能測量和調(diào)整。
這個工具存在于 Debian/Ubuntu 的默認(rèn)資源庫中,可以通過給出的命令安裝:
-
sudo apt install iperf
要開始監(jiān)控網(wǎng)絡(luò),用戶必須通過給出的命令在服務(wù)器上啟動這個客戶端:
-
iperf -s -u
其中,-s
選項表示服務(wù)器,-u
選項為 UDP 格式。
iperf -s -u
現(xiàn)在,你可以通過提供首選協(xié)議的 IP 地址有效載荷連接到你的服務(wù)器(使用-c
選項表示客戶端)。在這個例子中,我選擇了 UDP(使用-u
選項),有效載荷為 100:
-
iperf -c 10.0.2.15 -u 100
iperf c
21、speedtest-cli
顧名思義,這是 speedtest.net 網(wǎng)站的 CLI 工具。這個在 Apache 2.0 許可下發(fā)布的開源工具,當(dāng)你想從 CLI 獲得一個可靠的 itsfoss.com 的來源時,會有很大幫助。
安裝非常簡單,如果你是在 Debian/Ubuntu 上,可以利用給出的命令輕松安裝:
-
sudo apt install speedtest-cli
一旦你完成了安裝部分,你只需要使用一行命令即可測試你的速度:
-
speedtest-cli
speedtest-cli
22、vnstat
vnstat
工具主要被系統(tǒng)管理員用來監(jiān)控網(wǎng)絡(luò)流量和帶寬消耗(大部分情況下),因為這個工具可以監(jiān)控你系統(tǒng)的網(wǎng)絡(luò)接口的流量。
和其他網(wǎng)絡(luò)工具一樣,你可以在默認(rèn)的軟件庫中找到vnstat
,如果你在 Debian/Ubuntu 上,可以通過給出的命令進(jìn)行安裝:
-
sudo apt install vnstat
你可以使用vnstat
命令,不需要任何選項,它將帶來你系統(tǒng)所有可用接口的基本統(tǒng)計信息:
-
vnstat
vnstat
對于實時監(jiān)控,你可以將vnstat
命令與-l
選項配對。
vnstat -l
一個長長的清單,對嗎?
這個匯編連冰山一角都算不上,只是分享了每個命令的目的和基本例子,因為增加更多的命令會使這個清單變得更長。
流行的但 itsfoss.com,如ipconfig
,已被故意排除在這個列表之外。
如果你很好奇,你可以學(xué)習(xí) linuxhandbook.com,這將教會你如何使用任何實用程序的最大潛力。
如果我忘了提到任何你喜歡的東西,請在評論中告訴我。
via:
作者: 選題: 譯者: 校對:
本文由 原創(chuàng)編譯, 榮譽推出
LCTT 譯者 :Xingyu.Wang
翻譯: 892.0 篇
貢獻(xiàn): 2968 天
2014-07-25
2022-09-08
https://linux.cn/lctt/wxy
歡迎遵照 CC-BY-SA 協(xié)議規(guī)定轉(zhuǎn)載,
如需轉(zhuǎn)載,請在文章下留言 “ 轉(zhuǎn)載:公眾號名稱”,
我們將為您添加白名單,授權(quán)“ 轉(zhuǎn)載文章時可以修改”。