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.