欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux網(wǎng)絡開發(fā)者定位問題、常用工具和命令總結

  發(fā)布時間:2023-07-02 11:25:56   作者:itwolf   我要評論
Linux網(wǎng)絡開發(fā)者面臨的問題往往比較復雜,因此需要使用一些工具和命令來進行定位和解決。在本篇博客中,我將總結一些常用的Linux網(wǎng)絡開發(fā)者工具和命令,包括網(wǎng)絡包觀測、各層網(wǎng)絡狀況快速診斷、網(wǎng)絡關鍵統(tǒng)計計數(shù)收集、性能診斷、問題復現(xiàn)等方面的命令總結

Linux網(wǎng)絡開發(fā)者面臨的問題往往比較復雜,因此需要使用一些工具和命令來進行定位和解決。在本篇博客中,我將總結一些常用的Linux網(wǎng)絡開發(fā)者工具和命令,包括網(wǎng)絡包觀測、各層網(wǎng)絡狀況快速診斷、網(wǎng)絡關鍵統(tǒng)計計數(shù)收集、性能診斷、問題復現(xiàn)等方面的命令總結。

分類命令、工具作用備注
包觀測

tcpdump

用于抓取網(wǎng)絡數(shù)據(jù)包。通過 tcpdump 命令可以捕獲網(wǎng)絡數(shù)據(jù)包,并進行分析和診斷。

wireshark&&tshark

分析網(wǎng)絡數(shù)據(jù)包。

wireshark可視化分析,tshark命令行分析。

tcpflow

用于抓取 TCP 流量并保存到文件。通過 tcpflow 命令可以捕獲 TCP 流量,并將每個 TCP 連接的數(shù)據(jù)保存到不同的文件中。

比如可以快速將每個連接的包分發(fā)到不同文件保存。

ngrep

用于過濾和顯示網(wǎng)絡數(shù)據(jù)包。通過 ngrep 命令可以過濾和顯示滿足特定條件的數(shù)據(jù)包。

比如快速過濾http GET和POST請求。

快速驗證各層網(wǎng)絡情況

ping

用于測試主機之間是否能夠互相通信。通過向目標主機發(fā)送 ICMP 報文,可以確定網(wǎng)絡連接是否正常。

檢查ip層是否ok。

telnet

用于遠程登錄和測試網(wǎng)絡服務。通過 telnet 命令可以遠程登錄主機、測試網(wǎng)絡服務是否可用,并進行交互式操作。

檢查tcp握手是否ok。

curl

用于從命令行發(fā)送 HTTP 請求。通過 curl 命令可以發(fā)送 GET、POST 等 HTTP 請求,并查看服務器返回的響應。

檢查http是否ok。

openssl

OpenSSL 是一個常用的加密工具庫,可以用來實現(xiàn) SSL/TLS 通信、數(shù)字證書簽發(fā)和管理、密碼學算法等功能。

檢查ssl握手情況,證書內(nèi)容等。

網(wǎng)絡路徑狀況查看

traceroute

用于確定數(shù)據(jù)包從一個主機到另一個主機所經(jīng)過的路由路徑。

mtr

用于網(wǎng)絡故障定位和性能分析。mtr 命令可以連續(xù)發(fā)送 ICMP 報文,并在每一跳的路由器上進行網(wǎng)絡延遲和丟包率的統(tǒng)計,用于找出網(wǎng)絡故障的根源。

網(wǎng)絡狀態(tài)和計數(shù)查看

netstat

用于查看網(wǎng)絡連接、路由表、網(wǎng)絡接口狀態(tài)等信息。通過 netstat 命令可以了解當前系統(tǒng)的網(wǎng)絡狀況。

ss

ss 命令是 netstat 的替代品,用于查看網(wǎng)絡連接狀態(tài)、監(jiān)聽端口、網(wǎng)絡接口等信息。與 netstat 不同的是,ss 命令提供了更快的速度和更多的選項。

ifconfig

用于查看和配置網(wǎng)絡接口。通過 ifconfig 命令可以查看網(wǎng)絡接口的 IP 地址、MAC 地址、網(wǎng)絡狀態(tài)等信息。

ip

配置和管理網(wǎng)絡接口、路由表、ARP 緩存和其他網(wǎng)絡相關的屬性。

curl cip.cc

查看網(wǎng)絡出口地址。

ethtool

用于查看和配置網(wǎng)絡接口的驅動程序。通過 ethtool 命令可以查看網(wǎng)絡接口的狀態(tài)、速度、雙工模式等信息,并進行網(wǎng)絡性能調(diào)優(yōu)。

iftop

用于實時監(jiān)控網(wǎng)絡流量。iftop 命令可以顯示每個網(wǎng)絡接口的實時流量、連接數(shù)、連接速度等信息,用于快速診斷網(wǎng)絡瓶頸和流量異常。

nethogs

用于查看進程占用的網(wǎng)絡帶寬。通過 nethogs 命令可以查看每個進程占用的網(wǎng)絡帶寬、連接數(shù)和流量等信息,用于找出網(wǎng)絡資源占用高的進程。

dns相關

nslookup

用于查詢 DNS 服務器上的主機名和 IP 地址信息。通過 nslookup 命令可以查看主機名對應的 IP 地址、反向 DNS 解析等信息。

dig 

查詢 DNS 服務器上的主機名和 IP 地址信息。與 nslookup 不同的是,dig 命令提供了更多的選項和功能。

系統(tǒng)異常查看

dmesg

用于查看內(nèi)核日志。通過 dmesg 命令可以查看系統(tǒng)內(nèi)核的日志信息,包括硬件檢測、設備驅動加載等信息,用于排查和分析系統(tǒng)硬件和驅動問題。

比如oom、segment fault都可以在這里面看到相應的記錄。

systemctl

用于管理 systemd 服務。通過 systemctl 命令可以啟動、停止、重啟和查詢 systemd 服務的狀態(tài),用于排查和處理系統(tǒng)服務異常問題。

journalctl

用于查看系統(tǒng)日志。通過 journalctl 命令可以查看系統(tǒng)日志、過濾日志信息、按時間戳或者進程名等條件搜索日志信息,用于排查和分析系統(tǒng)異常和錯誤。

內(nèi)存異常

valgrind

檢查程序在運行時的內(nèi)存訪問錯誤、泄漏等問題。無需修改代碼

asan

可以檢測常見的內(nèi)存安全問題,例如緩沖區(qū)溢出、使用未初始化的內(nèi)存等。

性能定位

top

實時監(jiān)控系統(tǒng) CPU、內(nèi)存、進程等資源的使用情況,用于找出系統(tǒng)資源占用高的進程。

看出是用戶態(tài)高還是內(nèi)核態(tài)高,是否是io高等。

vmstat

用于顯示系統(tǒng)虛擬內(nèi)存(VM)的使用情況。它提供了對系統(tǒng)內(nèi)存、進程、CPU 等性能數(shù)據(jù)的實時監(jiān)控。

可快速看出上下文切換次數(shù)。

pidstat

進程級別統(tǒng)計cpu、io、上下文切換等信息。

看出上下文切換中自愿切換和非自愿切換次數(shù)。

sar

監(jiān)測 CPU 使用率、磁盤 I/O、網(wǎng)絡流量、內(nèi)存使用情況、進程活動等多個方面的數(shù)據(jù),并將這些數(shù)據(jù)保存到本地或遠程系統(tǒng)中,以供后續(xù)分析和處理。

可快速統(tǒng)計流量。

perf

可以用于測量和分析系統(tǒng)各個方面的性能數(shù)據(jù),包括 CPU、內(nèi)存、磁盤、網(wǎng)絡等方面的數(shù)據(jù)。

cpu采樣一把好手,看哪些函數(shù)是高頻出現(xiàn)。還可以結合其他工具生成火焰圖。

pprof

用于分析 Go 應用程序性能的工具,可以分析 CPU、內(nèi)存和代碼分布等方面的性能問題。

go語言專用更強大的采樣工具。

strace

用于跟蹤進程的系統(tǒng)調(diào)用和信號。

bpftrace

動態(tài)跟蹤工具,它使用 BPF(Berkeley Packet Filter)技術來實現(xiàn)高效的內(nèi)核和用戶空間跟蹤功能。

比如打印某個函數(shù)的系統(tǒng)調(diào)用棧和用戶空間調(diào)用棧。腳本的方式使用ebpf工具。

bcc

基于 BPF(Berkeley Packet Filter)技術的動態(tài)跟蹤和性能分析工具集,主要用于 Linux 系統(tǒng)的內(nèi)核和用戶空間程序分析。

比bpftrace更靈活。

網(wǎng)絡場景構造

iptables

用于設置和管理 Linux 內(nèi)核的防火墻。通過 iptables 命令可以設置網(wǎng)絡連接的規(guī)則、過濾數(shù)據(jù)包、進行網(wǎng)絡地址轉換等操作。

可以對特定特征進行丟包,轉換。

tc

流量控制、網(wǎng)絡流量調(diào)度和隊列管理的工具,可用于實現(xiàn)各種 QoS(Quality of Service)和網(wǎng)絡流量控制功能

比如對特定流量增加丟包率、時延等。

postman

一款流行的 API 測試工具,可以幫助開發(fā)人員快速創(chuàng)建、測試、調(diào)試和共享 API。

流量復制和重放

goreplay

一個 HTTP 實時流量復制工具。支持流量的放大、縮小,頻率限制,還支持把請求記錄到文件,方便回放和分析,也支持和 ElasticSearch 集成。

tcpreplay

一種 pcap 包的重放工具,它可以將用 ethreal、wireshark工具抓下來的包原樣或經(jīng)過任意修改后重放回去。它允許你對報文做任意的修改指定重放報文的速度等,這樣tcpreplay 就可以用來復現(xiàn)抓包的情景以定位 bug,以極快的速度重放從而實現(xiàn)壓力測試。

tcpcopy

一種請求復制工具 ,通過復制在線數(shù)據(jù)包,修改 TCP/IP 頭部信息,發(fā)送給測試服務器,達到欺騙測試服務器的TCP 程序的目的。

性能壓測

iperf

用于測試網(wǎng)絡帶寬和性能。通過 iperf 命令可以在兩個主機之間進行帶寬測試和性能測試,用于評估網(wǎng)絡的實際性能。

適合傳輸層壓測、帶寬壓測等場景。

ApacheBench (ab)

一個基于 Apache HTTP 服務器的性能測試工具,用于測試 Web 服務器的負載能力

適合應用層壓測。

wrk

一個高性能的 HTTP 壓力測試工具,支持多線程和支持 Lua 腳本擴展。

stress

一個簡單但功能強大的 Linux 壓力測試工具,可以測試 CPU、內(nèi)存、I/O、網(wǎng)絡等方面的性能。

在我的公眾號中有一篇文章---怎樣進行問題定位,總結了開發(fā)者定位問題的方法論。熟悉工具和命令只能幫我們快速收集信息和對假設做出驗證。除了熟悉工具,更重要的是具備過硬的基礎知識、熟悉代碼流程,并懂什么時候收集什么信息,然后將這些命令和工具熟練的應用到工作中。

相關文章

最新評論