日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux网络开发者定位问题、常用工具和命令总结(linux 网络开发)

發布時間:2023/11/10 44 博士
生活随笔 收集整理的這篇文章主要介紹了 linux网络开发者定位问题、常用工具和命令总结(linux 网络开发) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

tcpdump

用于抓取網絡數據包。通過 tcpdump 命令可以捕獲網絡數據包,并進行分析和診斷。

wireshark&&tshark

分析網絡數據包。

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

tcpflow

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

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

ngrep

用于過濾和顯示網絡數據包。通過 ngrep 命令可以過濾和顯示滿足特定條件的數據包。

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

快速驗證各層網絡情況

ping

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

檢查ip層是否ok。

telnet

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

檢查tcp握手是否ok。

curl

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

檢查http是否ok。

openssl

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

檢查ssl握手情況,證書內容等。

網絡路徑狀況查看

traceroute

用于確定數據包從一個主機到另一個主機所經過的路由路徑。

mtr

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

網絡狀態和計數查看

netstat

用于查看網絡連接、路由表、網絡接口狀態等信息。通過 netstat 命令可以了解當前系統的網絡狀況。

ss

ss 命令是 netstat 的替代品,用于查看網絡連接狀態、監聽端口、網絡接口等信息。與 netstat 不同的是,ss 命令提供了更快的速度和更多的選項。

ifconfig

用于查看和配置網絡接口。通過 ifconfig 命令可以查看網絡接口的 IP 地址、MAC 地址、網絡狀態等信息。

ip

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

curl cip.cc

查看網絡出口地址。

ethtool

用于查看和配置網絡接口的驅動程序。通過 ethtool 命令可以查看網絡接口的狀態、速度、雙工模式等信息,并進行網絡性能調優。

iftop

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

nethogs

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

dns相關

nslookup

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

dig 

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

系統異常查看

dmesg

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

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

systemctl

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

journalctl

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

內存異常

valgrind

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

asan

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

性能定位

top

實時監控系統 CPU、內存、進程等資源的使用情況,用于找出系統資源占用高的進程。

看出是用戶態高還是內核態高,是否是io高等。

vmstat

用于顯示系統虛擬內存(VM)的使用情況。它提供了對系統內存、進程、CPU 等性能數據的實時監控。

可快速看出上下文切換次數。

pidstat

進程級別統計cpu、io、上下文切換等信息。

看出上下文切換中自愿切換和非自愿切換次數。

sar

監測 CPU 使用率、磁盤 I/O、網絡流量、內存使用情況、進程活動等多個方面的數據,并將這些數據保存到本地或遠程系統中,以供后續分析和處理。

可快速統計流量。

perf

可以用于測量和分析系統各個方面的性能數據,包括 CPU、內存、磁盤、網絡等方面的數據。

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

pprof

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

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

strace

用于跟蹤進程的系統調用和信號。

bpftrace

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

比如打印某個函數的系統調用棧和用戶空間調用棧。腳本的方式使用ebpf工具。

bcc

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

比bpftrace更靈活。

網絡場景構造

iptables

用于設置和管理 Linux 內核的防火墻。通過 iptables 命令可以設置網絡連接的規則、過濾數據包、進行網絡地址轉換等操作。

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

tc

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

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

postman

一款流行的 API 測試工具,可以幫助開發人員快速創建、測試、調試和共享 API。

流量復制和重放

goreplay

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

tcpreplay

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

tcpcopy

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

性能壓測

iperf

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

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

ApacheBench (ab)

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

適合應用層壓測。

wrk

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

stress

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

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

總結

以上是生活随笔為你收集整理的linux网络开发者定位问题、常用工具和命令总结(linux 网络开发)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。