Linux的shell编程前奏之常见网络管理命令实战七
前言:tcpdump命令是一个截获网络数据包的包分析工具。Tcpdump可以将网络中传送的数据包的“头”完全截获下来以提供分析。它支持针对网络层,协议,主机,端口等的过滤,并支持与,或,非逻辑语句协助过滤有效信息。
一>监听指定网卡收到的数据包
[root@lll /]# tcpdump -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes
17:52:07.058332 IP 192.168.0.104.50775 > 192.168.1.1.domain: 63991+ PTR? 1.1.168.192.in-addr.arpa. (42)
17:52:07.058699 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 196:472, ack 1, win 254, length 276
17:52:07.065062 IP 192.168.1.1.domain > 192.168.0.104.50775: 63991* 1/0/0 PTR 192.168.1.1. (67)
17:52:07.065916 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 472:1244, ack 1, win 254, length 772
17:52:07.066373 IP 192.168.0.101.52418 > 192.168.0.104.ssh: Flags [.], ack 1244, win 3834, length 0
17:52:07.066956 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 1244:1504, ack 1, win 254, length 260
17:52:07.067455 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 1504:1668, ack 1, win 254, length 164
17:52:07.067783 IP 192.168.0.101.52418 > 192.168.0.104.ssh: Flags [.], ack 1668, win 4096, length 0
17:52:07.068028 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 1668:1928, ack 1, win 254, length 260
17:52:07.068409 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 1928:2092, ack 1, win 254, length 164
17:52:07.068987 IP 192.168.0.101.52418 > 192.168.0.104.ssh: Flags [.], ack 2092, win 3990, length 0
17:52:07.069425 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 2092:2352, ack 1, win 254, length 260
17:52:07.069797 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 2352:2516, ack 1, win 254, length 164
17:52:07.070056 IP 192.168.0.101.52418 > 192.168.0.104.ssh: Flags [.], ack 2516, win 3884, length 0
17:52:07.070504 IP 192.168.0.104.ssh > 192.168.0.101.52418: Flags [P.], seq 2516:2776, ack 1, win 254, length 260
总结: -i,指定网络接口网卡。
17:52:07.070504:当前时间,精确到微妙。
IP 192.168.0.104.ssh > 192.168.0.101.52418:从主机192.168.0.104的SSH端口发送数据到192.168.0.101的52418端口,“>”代表数据流向。
Flags [P.]:TCP包中的标志信息,S是SYN标志的缩写,F(FIN),P(PUSH),R(RST),”.”(没有标记)
Seq:数据包中的数据的顺序号。
ack: 下次期望的顺序号。
win:接收缓存的窗口大小。
length:数据包长度。
二>监听指定主机的数据包
[root@lll /]# tcpdump -n host 192.168.0.104 ----监听所有192.168.0.104的主机收到的和发出的数据包
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
[root@lll /]# tcpdump -n src host 192.168.0.104 ---只监听从192.168.0.104发出的数据包,即源地址为192.168.0.104,关键字为src
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
[root@lll /]# tcpdump -n dst host 192.168.0.104 ----只监听192.168.0.104收到的数据包,即目标地址从192.168.0.104
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
三>监听指定端口的数据包
[root@lll /]# tcpdump -nn port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
四>多个过滤条件混合使用
[root@lll /]# tcpdump -n ip host 192.168.0.101 and 192.168.104
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
总结:tcpdump命令支持逻辑运算符and(与),or(或),!(非),即获取主机192.168.0.101与主机192.168.0.104通信的ip数据包。
五>使用tcpdump对tcp数据进行抓包
[root@lll /]# tcpdump tcp dst port 80 or src 192.168.10.104 -i ens33 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes
总结:tcpdump主要用来抓取网络包(网络层),获取网络流量,通讯传输底层走的都是网络。
Liunx网络管理命令 |
应用场景 |
重要参数及典型案例 |
ping |
测试主机之间网络的连通性 |
[root@lll /]# ping -c 3 -i 3 -s 1024 -t 255 www.baidu.com |
telnet |
判断远程服务器的端口是否开放 |
[root@lll /]# telnet 192.168.101 80 |
ssh |
安全的远程登录主机 |
[root@lll /]# ssh 192.168.0.101 "free -m" |
ifconfig |
配置或显示网络接口信息 |
[root@lll /]# ifconfig ens33 |
route |
显示或管理路由表 |
[root@lll /]# route add -net 192.168.0.104/24 gw 10.0.0.254 |
nmap |
网络探测工具和安全/端口扫描器 |
[root@lll /]# nmap 192.168.0.104 |
tcpdump |
抓包,监听网络流量 |
[root@lll /]# tcpdump -nn port 22 |
traceroute |
追踪数据传输路由情况 |
[root@lll /]# traceroute -I www.baidu.com |
ifup |
激活网络接口 |
[root@lll /]# ifup eth0 |
ifdown |
禁用网络接口 |
[root@lll /]# ifdown eth1 |