實踐出真知
傳輸層
使用route命令檢視路由表
Windows
route print
Linux
// man route檢視命令手冊
route -n
使用netstat列出監聽中的埠
Windows
netstat -ano
篩選指定資訊
netstat -ano | find /i "8005"
Linux
netstat -ant
使用netstat 檢視資料包統計資訊
Windows、Linux使用
netstat -s
網路層
使用tcpdump命令抓取IP資料包
1、安裝tcpdump工具
sudo apt-get update sudo apt-get install -y traceroute
2、抓取IP資料包
sudo tcpdump -ntx -c 1
引數說明:
- -n :顯示 IP 地址而非域名地址
- -t :不顯示時間戳
- -x :以十六進位制顯示包內內容
- -c :tcpdump 將在接受到指定個數據包後退出
192.168.42.5.5901 > 192.168.42.2.39512 表示:
源 IP 為 192.168.42.5,埠 5901,目的 IP 為 192.168.42.2,埠 39512。
然後看到 0x0000 那行:
-
協議版本:第一個數字“4”,為0x4。表示協議版本是IPv4。
-
首部長度:4位,第二個數字“5”,為0x5。表示IP報頭長度為5*4=20byte。
如果是0xF(15),則表示報頭長度為15*4=60位元組。
1byte=8bit,所以這裡可以知道 IP 報頭為 4500 到 2a02。
16進位制的1位等於2進位制的4位。
-
服務型別(TOS):0x00,意味著是一般服務。
-
總長度:0x331c,換算下來為 13084 位元組。
-
標識:0xb6ac
-
3bit 標誌 + 13bit 片偏移:0x4000
-
生存時間:0x40,值為 64
-
協議:0x06,代表 TCP 協議
-
首部校驗和:0x7bd7
其他資訊可依次類推。
Windows
ping程式
ping程式簡介
ping 程式是在網路層對兩臺主機之間連通性進行測試的基本工具。
ping只是利用 ICMP 回顯請求報文和應答報文,而不經過傳輸層。
ping程式計算往返時間
ping 程式會在ICMP報文中存放傳送請求時的時間值,當應答返回時,用當前時間減去存放在 ICMP 報文中的時間值,即是往返時間。
使用ping向www.mi.com傳送3個數據包
// Linux ping -c 3 www.mi.com // windows ping -n 3 www.mi.com
使用ping檢視網路資料包的結構
使用 tcpdump 命令檢視 ping 命令包的結構:
sudo tcpdump -nnvXSs 0 -c2 icmp
此時還沒有資料包資訊新開一個標籤,執行以下命令,就能看到輸出:
ping -c 1 mirrors.cloud.aliyuncs.com
第一個資料報是ICMP回顯請求報文,是本機 192.168.42.4 傳送給 100.100.2.148 的;
第二個資料報是ICMP回顯應答報文,是 100.100.2.148 發給本機 192.168.42.4 的。
ping 命令判斷作業系統
ping 命令會返回一個 TTL(Time To Live) 值,我們可以使用它來判斷目標主機的作業系統型別。常見作業系統的預設 TTL 值如下:
-
UNIX TTL: 255
-
Linux TTL: 64
-
WINDOWS 95/98 TTL: 32
-
Windows NT 4.0/2000/XP/2003/7/8/10 TTL:128
此方法主要用於粗略的判斷,想更加準確的獲取伺服器作業系統資訊請學習 NMAP 相關知識。
traceroute程式
traceroute是Linux系統中的工具;Windows系統中是tracert。
traceroute簡介
traceroute程式用來偵測IP資料報從源主機到目的主機之間所經路由的情況。
剛才 ping 程式中講過,帶 -R 引數的 ping 命令也可以記錄路由過程,但是因為 IP 資料報頭的長度限制(最多能儲存 9個IP 地址),ping 不能完全記錄IP資料報所經過的路由器。
traceroute工作原理
1、傳送一份TTL為1的IP資料報給目的主機;經過第一個路由器時,TTL 值被減為 0,則第一個路由器丟棄該資料報,並返回一份超時 ICMP 報文。於此得到了路徑中第一個路由器的地址。
2、然後再發送一份 TTL 值為 2 的資料報,便可得到第二個路由器的地址。
3、以此類推,一直到到達目的主機為止。這樣便記錄下了路徑上所有路由器的IP。
使用 traceroute 來追蹤路由過程
1、安裝traceroute工具
sudo apt-get update sudo apt-get install -y traceroute
2、追蹤本機到www.baidu.com的路由過程
traceroute www.baidu.com
Windows系統命令
ifconfig/ipconfig
檢視本機IP
Linux系統
這是一個C類IP。
Windows系統
ipconfig
檢視子網掩碼
ARP程式
檢視ARP快取表
Linux/Windows系統
資料鏈路層
檢視網路介面的 MTU
使用netstat -in 命令檢視網路介面的 MTU。
——本文結束——