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 网络开发)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 肌肉萎缩能治好吗?
 - 下一篇: 上海迪士尼身高102cm要买票吗(上海迪