第八篇 網絡分析工具

1 ping

  • ping —Packet Internet Groper(因特網包探索器);
  • 原理:發送一個ICMP(Internet Control Messages Protocol,因特網信報控制協議),請求消息給目的地並報告是否收到所洗完的ICMP echo(ICMP回聲應答);
  • 作用:用來檢查網絡是否通暢或者網絡連接速度
  • 使用ping檢查連通性有以下6個步驟:
    1.使用ifconfig/all觀察本地網絡設置是否正確;
    2.ping 127.0.0.1,來檢查本地的TCP/IP協議有沒有設置好;
    3.ping 本機IP地址,這樣是爲了檢查本機的IP地址是否設置有誤;
    4.ping 本網網關或本網IP地址,這樣是爲了檢查硬件設備是否有問題,也可以檢查本機與本地網絡連接是否正常。(在非局域網中這一步可以忽略);
    5.ping 本地DNS地址,這樣做是爲了檢查本地DNS服務器是否工作正常;
    6.ping 遠程IP地址,這主要是檢查本網或本機與外部的連接是否正常
  • 差異:
    linux的ping數據包是64Byte,而Windows的是32Byte, Windows下默認發送4次數據包後結束,Linux下的ping程序默認不停發送數據包,直到用戶手動停止(停止命令是Ctrl+C)

2 tcpdump

tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助去掉無用的信息。

  • 參數:
    -i:指定tcpdump監聽的網絡幾面
    -c:指定要監聽的數據包數量
    -w:指定將監聽到的數據寫入文件中保存
  • 示例:
    1.截取某主機相關的包
    a.想要截獲所有210.27.48.1的主機收到的和發出的所有數據包:
    tcpdump host 210.27.48.1
    b.想要截獲主機210.27.48.1和主機210.27.48.2或210.27.48.3的通信:
    tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3)
    c.如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外的所有主機通信的ip包:
    tcpdump ip host 210.27.48.1 and !210.27.48.2
    2.截取某端口相關的包
    tcpdump port 6666
    3.截取某網卡的包
    tcpdump -ieth1

3 netstat

netstat命令用於顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。

  • 實例:
    1.列出所有端口(包括監聽和未監聽的):netstat -a
    2.列出所有TCP端口:netstat -at
    3.列出所有UDP端口:netstat -au
    4.列出所有處於監聽狀態的socket:netstat -l
    5.列出所有監聽TCP端口的socket:netstat -lt
    6.列出所有監聽UDP端口的socket:netstat -lu
    7.列出所有監聽UNIX端口的socket:netstat -lx
    8.在netstat輸出中顯示PID和進程名稱:netstat -p
    9.當你不想讓主機,端口和用戶名顯示,使用netstat -n,將會使用數字代替那些名稱
    10.持續輸出netstat信息:netstat -c
    11.找出程序運行的端口:netstat -ap | grep ssh
    12.找出運行在指定端口的進程:netstat -an | grep ‘:80’
    13.顯式網絡接口列表:netstat -i
    14.IP和TCP的分析,如查看鏈接某服務器端口最多的IP地址命令是:
    netstat -nat | grep “192.168.1.15:22” |awk ‘{print $5}’|awk -F:’{print $1}’|sort|uniq -c |sort -nr|head -20
    15.TCP各自狀態列表:netstat -nat | awk ‘{print $6}’
    16.先把各種TCP狀態全取出來,然後使用uniq -c統計,之後再進行排序:netstat -nat | awk ‘{print $6}’ | sort | uniq -c

4 lsof

lsof(list open file)是一個列出當前系統打開文件的工具。
通過lsof工具能夠查看這個列表對系統監測

  • 語法格式:lsof [options] filename
  • 參數列表:
    1.lsof filename 顯示打開指定文件的所有進程
    2.lsof -a 表示兩個參數都必須滿足時才顯示結果
    3.lsof -c string 顯示COMMAND列中包含指定字符的進程所有打開的文件
    4.lsof -u username 顯示所屬user進程打開的文件
    5.lsof -g gid 顯示歸屬gid的進程情況
    6.lsof +d /DIR/ 顯示目錄下被進程打開的文件
    7.lsof +D /DIR/ 同上,但是會搜索目錄下的所有目錄,時間相對較長
    8.lsof -d FD 顯示指定文件描述符的進程
    9.lsof -n 不將IP轉換爲hostname,缺省是不加上-n參數
    10.lsof -i 用以顯示符合條件的進程情況
  • 常用命令:
    1.查看6666端口現在運行情況:lsof -i :6666
    2.查看所屬root用戶進程所打開的文件,文件類型爲.txt :lsof -a -u root -d txt
    3.監控打開的文件和設備。查看設備/dev/tty1被哪些進程佔用的命令:lsof /dev/tty1
    4.監控程序。如查看指定程序server打開的文件:lsof -c server
    5.監控用戶。如查看指定用戶root打開的文件:lsof -u root.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章