Linux系統中已經可用的重要的網絡和故障排除命令

在Linux系統中,網絡設置、問題查找和故障修復是系統管理的重要技能,對于開發人員來說,了解Linux故障排除命令對于日常任務十分有幫助。

本文將介紹在Linux系統中已經可用的重要的網絡和故障排除命令。

以下是已經存在于Linux機器上的故障排除命令列表:

命令??????????????????描述
|?hostname?????|?檢查和設置服務器的主機名
|?host?????????|?檢索給定主機的DNS詳細信息
|?ping?????????|?使用ICMP檢查遠程服務器的可達性,并顯示往返時間
|?curl?????????|?用于數據傳輸的通用工具,用于故障排除網絡問題
|?wget?????????|?下載文件,解決代理連接和連通性問題
|?ip???????????|?替代ifconfig,配置和檢索有關網絡接口的信息
|?arp??????????|?管理和查看ARP緩存
|?ss/netstat???|?檢查端口和Unix套接字上的連接和PID
|?traceroute???|?使用ICMP查找到目標服務器的躍點,并顯示躍點之間的時間
|?mtr??????????|?結合ping和traceroute,提供額外的信息,如中間主機
|?dig??????????|?檢索與域名相關的DNS記錄
|?nslookup?????|?類似于dig,用于DNS查詢
|?nc???????????|?用于調試TCP/UDP套接字的實用工具
|?telnet???????|?在端口上測試遠程連接
|?route????????|?檢索路由表信息
|?tcpdump??????|?捕獲用于分析網絡問題的網絡數據包
|?lsof?????????|?列出打開的文件和關聯的進程信息

本文中提到的每個命令或實用程序都帶有各種選項和標志。要了解這些選項和標志,可以參考每個命令的手冊頁。手冊頁提供了有關命令功能及其使用方法的詳細信息。只需在終端中鍵入man,然后輸入命令即可訪問指南,并查看適合大家需求的可用選項和標志。

1 hostname

hostname命令可幫助檢查機器的當前主機名,并支持給其指定新的主機名。

要查看當前名稱,請鍵入:

hostname

如果想更改名稱,可以使用以下方式使用hostname命令:

sudo?hostname?example.com

注意:使用此命令進行的更改是臨時的。在重新啟動機器后,會恢復為保存在文件中的原始名稱(例如/etc/hostname)。

但是,如果想永久更改主機名,可以使用/etc/hosts文件或服務器上存在的hostname文件:

  • 對于Ubuntu,請編輯/etc/hostname file

  • 對于RHEL、CentOS和Fedora,請在?/etc/sysconfig/network file中進行更改。

2 ping

ping網絡工具用于檢查遠程服務器是否可達。其主要目的是驗證連接性并排除網絡問題。

它提供以下信息:

  • 發送和接收的字節數

  • 發送、接收和丟失的數據包

  • 往返時間的大致時間(以毫秒為單位)

ping命令的語法:ping IPADDRESS or DOMAINANME

例如:

ping?medium.com

要ping一個IP地址:

ping?1.1.1.1

如果想在不使用Ctrl+C的情況下限制ping輸出,可以使用帶有數字的-c標志,如下所示:

ping?-c?1?medium.com

3 curl

curl工具主要用于與服務器之間傳輸數據。然而,它也非常適用于網絡故障排除。

對于故障排除,curl支持多種協議,如DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET和TFTP。

例如,可以使用curl通過telnet檢查22端口的連接性:

curl?-v?telnet://192.168.33.10:22

檢查FTP連接:

curl?ftp://ftptest.net

還可以使用curl來排查Web服務器的連接性:

curl?http://medium.com?-I

在這些示例中,curl用于驗證不同端口和協議上的連接性,使其成為網絡診斷的通用工具。

4 wget

wget命令主要用于獲取網頁,但也可以幫助排查網絡問題。

例如,可以使用wget來排查通過代理服務器的連接:

wget?-e?use_proxy=yes?http_proxy=?http://externalsite.com

要檢查網站是否可用,可以獲取其文件:

wget?www.google.com

在這些示例中,wget擴展了其功能,不僅可以獲取網頁,還可以用于診斷網絡問題,如代理服務器連接和網站可用性。

5 IP(ifconfig)

ip命令用于顯示和管理路由和網絡接口。它是ifconfig的更新版本。雖然ifconfig在所有系統中都可以工作,但建議使用ip命令以獲得更好的功能。

以下是使用ip命令的幾個示例:

顯示網絡設備和配置:

ip?addr

可以將此命令與管道和grep結合使用,以獲取特定信息,例如eth0接口的IP地址。這對于需要動態獲取IP地址的自動化工具特別有幫助。

例如,要獲取eth0網絡接口的IP地址:

ip?a?|?grep?eth0?|?grep?"inet"?|?awk?-F"?"?'{print?$2}'

獲取特定接口的詳細信息:

ip?a?show?eth0

列出路由表:

ip?route
ip?route?list

這些示例說明了如何使用ip命令顯示有關網絡設備、配置和路由表的詳細信息。

6 arp

ARP(地址解析協議)顯示了系統與本地網絡的IP地址和MAC地址之間的緩存表。

arp

示例輸出:

vagrant@somelab:~$?arp
Address??????????????????HWtype??HWaddress???????????Flags?Mask????????????Iface
10.0.2.3?????????????????ether???52:54:00:12:35:03???C?????????????????????eth0
192.168.33.1?????????????ether???0a:00:27:00:00:00???C?????????????????????eth1
10.0.2.2?????????????????ether???52:54:00:12:35:02???C?????????????????????eth0

7 ss(netstat)

ss命令可以作為netstat的替代品使用,但在所有系統上仍然可以使用netstat命令。

使用ss命令,可以獲取比netstat命令更多的信息。ss命令速度快,因為它從內核用戶空間獲取所有信息。

下面來看一下ss命令的幾個用法。

7.1 列出所有連接

"ss"命令將列出計算機上的所有TCP、UDP和Unix套接字連接。

ubuntu@medium:~$?ss
Netid??State??????Recv-Q?Send-Q???Local?Address:Port???????Peer?Address:Port
u_str??ESTAB??????0??????0????????????????????*?7594??????????????????*?0
u_str??ESTAB??????0??????0??????@/com/ubuntu/upstart?7605??????????????????*?0??
u_str??ESTAB??????0??????0????????????????????*?29701?????????????????*?0
u_str??ESTAB??????0??????0??????/var/run/dbus/system_bus_socket?29702?????????????????*?0
tcp????ESTAB??????0??????400??????172.31.18.184:ssh?????????1.22.167.31:61808

ss命令的輸出會很大,可以使用"ss | less"命令使輸出可滾動。

7.2 過濾TCP、UDP和Unix套接字

如果要過濾掉TCP、UDP或UNIX套接字的詳細信息,請使用"ss"命令的"-t"、"-u"和"-x"標志。它將顯示所有連接到特定端口的已建立連接。如果要使用"a"和特定標志同時列出已連接和監聽端口,請參考下面的示例。

ss?-ta
ss?-ua
ss?-xa

7.3 列出所有監聽端口

要列出所有監聽端口,請使用"ss"命令的"-l"標志。要列出特定的TCP、UDP或UNIX套接字,請使用"-t"、"-u"和"-x"標志與"-l"一起,如下所示。

ubuntu@medium:~$?ss?-lt
State??????Recv-Q?Send-Q??????Local?Address:Port??????????Peer?Address:Port
LISTEN?????0??????128?????????????????????*:ssh??????????????????????*:*
LISTEN?????0??????50?????????????????????:::http-alt?????????????????:::*
LISTEN?????0??????50?????????????????????:::55857???????????????????:::*
LISTEN?????0??????128????????????????????:::ssh?????????????????????:::*
LISTEN?????0??????50?????????????????????:::53285???????????????????:::*
ubuntu@medium:~$

7.4 列出所有已建立連接

要列出所有已建立的端口,請使用狀態已建立標志,如下所示。

ss?-t?-r?state?established

要列出所有處于監聽狀態的套接字,

ss?-t?-r?state?listening

8 mtr

mtr工具是用于排查網絡瓶頸的網絡診斷工具。它結合了pingtraceroute的功能。

例如,以下命令實時顯示traceroute輸出。

mtr?google.com

mtr報告

可以使用"--report"標志生成報告。運行mtr報告時,它會向目標發送10個數據包并生成報告。

mtr?-n?--report?google.com

9 dig

如果有與DNS查找相關的任務,可以使用“dig”命令查詢DNS名稱服務器。

9.1 使用dig獲取所有DNS記錄

下面的命令返回twitter.com的所有DNS記錄和TTL信息

dig?twitter.com?ANY

使用+short參數可以獲得無冗余的輸出。

dig?google.com?ANY?+short

9.2 使用dig獲取特定的DNS記錄

例如,如果想獲取特定域名的A記錄,可以使用dig命令。使用+short參數可以提供無冗余的信息。

dig?www.google.com?A?+short

類似地,可以使用以下命令分別獲取其他記錄信息。

dig?google.com?CNAME?+short
dig?google.com?MX?+short
dig?google.com?TXT?+short
dig?google.com?NS?+short

9.3 使用dig進行反向DNS查找

可以使用以下命令使用dig進行反向DNS查找。將8.8.8.8替換為所需的IP地址。

dig?-x?8.8.8.8

10 nc(netcat)

nc(netcat)命令被稱為網絡命令中的瑞士軍刀。

使用nc,可以檢查特定端口上運行的服務的連接性。

例如,要檢查ssh端口是否打開,可以使用以下命令。

nc?-v?-n?192.168.33.10?22

netcat還可以用于TCP/UDP數據傳輸和端口掃描。

在云環境中不推薦進行端口掃描。您需要請求云服務提供商在您的環境中執行端口掃描操作。

11 telnet

telnet命令用于故障排除端口上的TCP連接。

要使用telnet檢查端口連接性,請使用以下命令。

telnet?10.4.5.5?22

12 lsof

lsof是個在日常Linux故障排除中使用的命令。對于任何與Linux系統工作的人來說,這個命令同樣重要。

要列出所有打開的文件,請執行lsof命令。

開發人員和DevOps工程師經常遇到的一個常見錯誤是“綁定失敗錯誤:地址已在使用中”。可以使用以下命令找到與端口關聯的進程ID,然后可以終止該進程以釋放端口。

lsof?-i?:8080

本文介紹了修復和設置網絡所需的重要Linux命令。每個命令都有很多功能,讀者可以根據需要深入挖掘。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714733.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714733.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714733.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024可以實現月入過萬的抖店,適合新手做嗎?

我是電商珠珠 過完年了,一些新手都在找項目,覺得自己能做的項目很少。每個人身邊或多或少都有做電商的人,都說做電商可以年入百萬什么的,于是找到了抖店,但是對于抖店并不了解,不知道抖店適不適合自己。 …

JVM 第四部分—垃圾回收相關概念 2

System.gc() 在默認情況下,通過System.gc()或者Runtime.getRuntime().gc()的調用,會顯式觸發Full GC,同時對老年代和新生代進行回收,嘗試釋放被丟棄對象占用的內存 然而System.gc()調用附帶一個免責聲明,無法保證對垃…

博途PLC 面向對象系列之“雙通氣缸功能塊“(SCL代碼)

1、面向對象系列之找對象 https://rxxw-control.blog.csdn.net/article/details/136150027https://rxxw-control.blog.csdn.net/article/details/1361500272、博途PLC 面向對象系列之"單通氣缸功能塊" https://rxxw-control.blog.csdn.net/article/details/1363399…

如何使用pip安裝和生成requirements.txt

使用 pip freeze 命令可以列出當前環境中已安裝的所有 Python 包及其版本信息,并將其輸出保存到 requirements.txt 文件中。可以使用重定向 (>) 將命令的輸出寫入文件中 pip freeze > requirements.txt使用 pip install 命令可以從 requirements.txt 文件中安…

Spark(1)-wordCount入門

1. 創建Maven項目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

JavaScript繼承 寄生組合式繼承 extends

JavaScript繼承 1、JS 的繼承到底有多少種實現方式呢? 2、ES6 的 extends 關鍵字是用哪種繼承方式實現的呢? 繼承種類 原型鏈繼承 function Parent1() {this.name parentlthis.play [1, 2, 3] }function Child1() {this.type child2 }Child1.prototype new Parent1(…

三天學會阿里分布式事務框架Seata-seata事務日志mysql持久化配置

鋒哥原創的分布式事務框架Seata視頻教程&#xff1a; 實戰阿里分布式事務框架Seata視頻教程&#xff08;無廢話&#xff0c;通俗易懂版&#xff09;_嗶哩嗶哩_bilibili實戰阿里分布式事務框架Seata視頻教程&#xff08;無廢話&#xff0c;通俗易懂版&#xff09;共計10條視頻&…

navicat16

Navicat16: 鏈接: https://pan.baidu.com/s/1vIfX0qEEL4mhBrsEzD_-lw?pwdy3fi 提取碼: y3fi 破解教程視頻&#xff1a;2023年Navicat16破解教程(小白教程)_嗶哩嗶哩_bilibili

1、云原生安全之K8S的部署與常用命令

文章目錄 1、常用命令1.1、基本信息查看1.2、日志查看與問題排查1.3、進入pod與pod內部文件導出1.4、環境搭建相關1.5、鏡像相關1.6、電腦重啟后,重啟k8s服務1.7、關于k8s的持久卷二、k8s的部署2.1、配置環境2.1.1、安裝所需工具2.1.2、修改主機名2.1.3、編輯hosts2.1.4、其他…

第13集《靈峰宗論導讀》

《靈峰宗論》導讀。諸位法師&#xff0c;諸位同學&#xff0c;阿彌陀佛&#xff01;&#xff08;阿彌陀佛&#xff01;&#xff09; 請大家打開講義第38面。 丙三、結示 這一科是《正見篇》的結示。《正見篇》主要的是要引導我們能夠正確地觀察生命的真相。生命的真相就是說…

【RISC-V 指令集】RISC-V DSP 擴展指令集介紹(二)

前言&#xff1a; 本筆記是基于對RISC-V DSP擴展指令集文檔總結的&#xff0c;《P-ext-proposal.pdf》文檔的關鍵內容如下&#xff1a; 主要介紹了RISC-V的P擴展指令集及其相關細節。 首先&#xff0c;對P擴展指令進行了概述&#xff0c;并列出了其與其他擴展重復的指令。 …

Java 的notify 可能導致死鎖原因詳解

假設有一個共享資源庫 ResourcePool&#xff0c;它內部維護了兩類資源&#xff1a;ResourceTypeA 和 ResourceTypeB。現在有兩個線程 Thread1 和 Thread2&#xff0c;它們都需要從資源庫中分別獲取一種資源才能繼續執行。Thread1 需要 ResourceTypeA 而 Thread2 需要 ResourceT…

上位機圖像處理和嵌入式模塊部署(當前機器視覺新形態)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 過去的機器視覺處理&#xff0c;大部分都是集中在上位機、或者是服務器領域&#xff0c;這種形式維持了很長的時間。這種業務形態下&#xff0c;無…

windows 11 藍牙突然消失

解決方法&#xff1a; 1.WinX&#xff0c;點擊設備管理器 2.選中藍牙&#xff0c;右鍵更新驅動。 3.然后就可以出現了&#xff0c;如下圖

Django多個app配置多個域名訪問

環境&#xff1a;Python 3.8.1 Django 2.2.12 項目目錄結構&#xff1a; CellMiddle -- 項目根目錄 ├─task --- 需求系統 │ ├─migrations │ ├─static │ └─templates ├─logs --- 日志目錄 ├─doc --- 文檔系統 │ ├─data │ ├─migrations │ ├─st…

程序員是如何看待“祖傳代碼”的?

目錄 ?編輯 程序員是如何看待“祖傳代碼”的&#xff1f; 一、什么是“祖傳代碼”&#xff1f; 二、“祖傳代碼”的利弊 1. 可以節省開發成本 2. 可能引入安全隱患 3. 可能增加系統的維護難度 三、祖傳代對程序員的影響 1. 豐富程序員的技能和知識 2. 提高程序員的創…

python筆記_進制

二進制 進位規則&#xff1a;滿2進1 范圍&#xff1a;0,1 符號&#xff1a;以0b和0B開頭 八進制 進位規則&#xff1a;滿8進1 范圍&#xff1a;0-7 符號&#xff1a;以0o和0O開頭 十進制 進位規則&#xff1a;滿10進1 范圍&#xff1a;0-9 十六進制 進位規則&#xff…

Python——Tchisla求解器(暴力搜索法)

Tchisla簡介 最近玩到一個挺有意思的數字解密小游戲《Tchisla》&#xff0c;其規則類似算24點&#xff0c;也是利用一些數學運算和初始數字計算出目標數字&#xff0c;與算24點不同的是&#xff0c;Tchisla允許不限次數地使用一種初始數字&#xff08;1~9&#xff09;&#xf…

【VSCODE修改代碼行間距】解決方案

在我們編碼的過程中&#xff0c;由于顯示字體和顯示器的不同&#xff0c;會需要調整行間距&#xff0c;在vscode默認的選項中沒有看到設定行間距的選項&#xff0c;不過&#xff0c;可以手動修改配置檔達到目的。 1.打開設置 2.打開配置檔&#xff0c;手動進行設定 3.在選項中添…

第七十二天 漏洞發現-Web框架中間件聯動GobyAfrogXrayAwvsVulmap

第72天 漏洞發現-Web框架中間件&聯動&Goby&Afrog&Xray&Awvs&Vulmap 知識點&#xff1a; 1、Bup簡單介紹&使用說明 2、Xray簡單介紹&使用說明 3、AWWS簡單介紹&使用說明 4、Goby簡單介紹&使用說明 5、Afrog簡單介紹&使用說明 6、…