原创

Linux抓包演示及路由表示例


Linux 抓包步骤

1.窗口 A 抓包

tcpdump -nn -i eth0 port 80 or arp

更详细的包

tcpdump -nn -X -i eth0 port 80 or arp

如果需要详细了解命令,可以使用

man tcpdump

2.窗口 B

curl https://www.baidu.com

3.窗口 A 查看结果

窗口 A 能看到 3 次握手+数据传输+4 次挥手

其他知识点

网络层:

查看网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

查看路由表

route -n

查看详细命令:

man route

路由表作用:

负责网络包下一跳,通过 IP 找到下一跳的 IP 地址,然后再通过 IP 地址找到对应的 MAC 地址进行数据包传输

IP 地址分类

网络标识+主机标识

IP 地址和子网掩码是如何计算出某个 IP 的网络地址的?

已知 IP 地址为 141.14.72.24 其子网掩码为 255.255.192.0 ,求其网络地址

解: 其实是将 IP 与子网掩码按位相与即可映射出真实的网络地址

72 的二进制为 01001000

192 的二进制为 11000000

IP 的前俩位相与还是 141.14.?.?

72 与 192 相与为 01000000 即 64

最后一位相与为 00000000 即 0

所以 最终的网络地址为:141.14.64.0

链路层

route -n 得到路由表,通过目的地址的按位与运算,得到 gateway,gateway 的 ip 地址可以通过 arp 协议得到 mac 地址,如果 arp 找不到 mac 地址,就会 arp 广播消息,找到结果

一个路由表示例

Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.31.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
正文到此结束