你應該知道的 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
同樣,你也可以使用 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 命令( 數據包網路飛龍探雲手 ?) 可以說是在排除網路故障時最重要的命令之一,因為它是檢查主機和伺服器之間連接情況的最常用方法。
例如,我 ping
谷歌:
ping google.com
這裡,最後一行(min/avg/max
)表示從指定的伺服器獲得響應的時間。
如果你得到一個錯誤提示 bash: ping: command not found
(LCTT 譯註:不會吧?),你可以查看我們的指南 如何在 Ubuntu 上安裝 Ping。
5、ss
ss
( 套接字統計 )命令用於詳細了解網路套接字(在網路上發送和接收數據的端點)。
要列出所有監聽和非監聽的 TCP 連接,你必須使用 -at
選項,如下所示:
ss -at
同樣,你可以使用 -au
選項對 UDP 埠進行同樣的操作:
ss -au
6、dig
dig 命令( 域信息龍爪手 ?)用於獲取有關域名的所有必要信息。
要在基於 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 <filename>
9、curl
curl
( 客戶端 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
( 介面的 top )經常被管理員用來監控與帶寬有關的統計數據,當你遇到網路問題時,也可以作為診斷工具使用。
這個工具需要手動安裝,可以通過給出的命令在運行 Debian/Ubuntu 的機器上輕鬆安裝。
sudo apt install iftop
當 iftop
在沒有任何選項的情況下使用時,它會顯示默認介面的帶寬統計。
sudo iftop
你也可以通過在設備名稱後面加上 -i
選項來指定網路設備。
sudo iftop -i <DeviceName>.
在我的例子中,是 enp1s0
,所以我的輸出將是如下:
14、tcpdump
tcpdump
是一個數據包嗅探和分析工具,用於捕獲、分析和過濾網路流量。它也可以作為一個安全工具使用,因為它將捕獲的數據保存在可以 通過 Wireshark 訪問 的 pcap 文件中。
像許多其他工具一樣,tcpdump
沒有預裝,如果你是在Debian/Ubuntu 上,你可以按照下面的命令進行安裝:
sudo apt install tcpdump
一旦你完成了安裝,你可以獲得當前介面的捕獲數據包,如下所示:
sudo tcpdump
那麼如何將捕獲的數據包保存在 pcap 文件中呢?讓我告訴你怎麼做:
sudo tcpdump -w Captured_Packets.cap -i < networkdevice >
要訪問保存的文件,你需要使用 -r
選項加上文件名。
sudo tcpdump -r Captured_Packets.pcap
15、ethtool
顧名思義,ethtool
工具主要涉及管理乙太網設備。使用這個工具,你可以調整網卡速度、自動協商特性等。
但它可能沒有預裝在你的機器上,可以通過利用給出的命令安裝在 Debian/Ubuntu 機器上:
sudo apt install ethtool
要獲取介面的詳細信息,你只需在命令後面加上設備名稱,如下所示:
sudo ethtool <InterfaceName>
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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive