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

linux網(wǎng)絡(luò)開(kāi)發(fā)者定位問(wèn)題、常用工具和命令總結(jié)

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

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

分類(lèi)命令、工具作用備注
包觀測(cè)

tcpdump

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

wireshark&&tshark

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

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

tcpflow

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

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

ngrep

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

比如快速過(guò)濾http GET和POST請(qǐng)求。

快速驗(yàn)證各層網(wǎng)絡(luò)情況

ping

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

檢查ip層是否ok。

telnet

用于遠(yuǎn)程登錄和測(cè)試網(wǎng)絡(luò)服務(wù)。通過(guò) telnet 命令可以遠(yuǎn)程登錄主機(jī)、測(cè)試網(wǎng)絡(luò)服務(wù)是否可用,并進(jìn)行交互式操作。

檢查tcp握手是否ok。

curl

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

檢查http是否ok。

openssl

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

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

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

traceroute

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

mtr

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

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

netstat

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

ss

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

ifconfig

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

ip

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

curl cip.cc

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

ethtool

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

iftop

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

nethogs

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

dns相關(guān)

nslookup

用于查詢(xún) DNS 服務(wù)器上的主機(jī)名和 IP 地址信息。通過(guò) nslookup 命令可以查看主機(jī)名對(duì)應(yīng)的 IP 地址、反向 DNS 解析等信息。

dig 

查詢(xún) DNS 服務(wù)器上的主機(jī)名和 IP 地址信息。與 nslookup 不同的是,dig 命令提供了更多的選項(xiàng)和功能。

系統(tǒng)異常查看

dmesg

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

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

systemctl

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

journalctl

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

內(nèi)存異常

valgrind

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

asan

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

性能定位

top

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

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

vmstat

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

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

pidstat

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

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

sar

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

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

perf

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

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

pprof

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

go語(yǔ)言專(zhuān)用更強(qiáng)大的采樣工具。

strace

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

bpftrace

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

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

bcc

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

比bpftrace更靈活。

網(wǎng)絡(luò)場(chǎng)景構(gòu)造

iptables

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

可以對(duì)特定特征進(jìn)行丟包,轉(zhuǎn)換。

tc

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

比如對(duì)特定流量增加丟包率、時(shí)延等。

postman

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

流量復(fù)制和重放

goreplay

一個(gè) HTTP 實(shí)時(shí)流量復(fù)制工具。支持流量的放大、縮小,頻率限制,還支持把請(qǐng)求記錄到文件,方便回放和分析,也支持和 ElasticSearch 集成。

tcpreplay

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

tcpcopy

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

性能壓測(cè)

iperf

用于測(cè)試網(wǎng)絡(luò)帶寬和性能。通過(guò) iperf 命令可以在兩個(gè)主機(jī)之間進(jìn)行帶寬測(cè)試和性能測(cè)試,用于評(píng)估網(wǎng)絡(luò)的實(shí)際性能。

適合傳輸層壓測(cè)、帶寬壓測(cè)等場(chǎng)景。

ApacheBench (ab)

一個(gè)基于 Apache HTTP 服務(wù)器的性能測(cè)試工具,用于測(cè)試 Web 服務(wù)器的負(fù)載能力

適合應(yīng)用層壓測(cè)。

wrk

一個(gè)高性能的 HTTP 壓力測(cè)試工具,支持多線程和支持 Lua 腳本擴(kuò)展。

stress

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

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

相關(guān)文章

最新評(píng)論