《神探tcpdump第一招》-linux命令五分钟系列之三十五
应 @GamerH2o 博友在微博上提的要求,tcpdump专题会写成一个小型系列文章,力求每篇小文中突出重点,讲解清晰,避免长篇累牍,大家必然昏昏欲睡了。
其实tcpdump就好像一个神探,它有着夜视的绝技,在毫无光亮的环境中,也可以看到所有的东西。(好像在编美剧hero一般,哈哈)
在介绍tcpdump之前,要和你确认好几个关键前提,否则的话,往后的内容您看起来会非常困难。
1 了解和使用过linux
2 掌握网络七层协议及其作用
3 熟悉各层协议头,重点是以太网/IP/TCP/UDP
4 了解交换机、路由器所对应的协议层,并知道两者的异同点。
如果你有些忘记了,那么强烈建议你翻出《计算机网络》教材,先好好回忆一下,然后再进入到下面的内容…
==
正文:
通俗的说,tcpdump是一个抓包工具,用于抓取互联网上传输的数据包。
形象的说,tcpdump就好比是国家海关,驻扎在出入境的咽喉要道,凡是要入境和出境的集装箱,海关人员总要打开箱子,看看里面都装了点啥。
学术的说,tcpdump是一种嗅探器(sniffer),利用以太网的特性,通过将网卡适配器(NIC)置于混杂模式(promiscuous)来获取传输在网络中的信息包。
【抓人生中的第一个包】
要用tcpdump抓包,请记住,一定要切换到root账户下,因为只有root才有权限将网卡变更为“混杂模式”。
然后呢,就是用ifconfig的方法查看好你的服务器的网卡名称。(我的叫做eth0,一般都是这个名字)
# tcpdump -i eth0 -nn -X ‘port 53′ -c 1
?
1
|
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:48:33.285838 IP 116.255.245.206.47940 > 8.8.8.8.53: 22768+ A? www.baidu.com. (31)
0x0000: 4500 003b c341 0000 4011 3c93 74ff f5ce E..;.A..@.<.t... 0x0010: 0808 0808 bb44 0035 0027 b457 58f0 0100 .....D.5.'.WX... 0x0020: 0001 0000 0000 0000 0377 7777 0562 6169 .........www.bai 0x0030: 6475 0363 6f6d 0000 0100 01 du.com..... 1 packets captured 1 packets received by filter 0 packets dropped by kernel [/shell] 在此,我重点解释下这个命令:-i选项:
是interface的含义,是指我们有义务告诉tcpdump希望他去监听哪一个网卡。这在我们一台服务器有多块网卡时很有必要。
-nn选项:
意思是说当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称。比如,众所周知21端口是FTP端口,我们希望显示21,而非tcpdump自作聪明的将它显示成FTP。
-X选项:
告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。
‘port 53’:
这是告诉tcpdump不要看到啥就显示啥。我们只关心源端口或目的端口是53的数据包,其他的数据包别给我显示出来。
-c选项:
是Count的含义,这设置了我们希望tcpdump帮我们抓几个包。我设置的是1,所以tcpdump不会帮我再多抓哪怕一个包回来。
【未完待续】
从混混乱乱的输出中,大家一定隐约的能看到www.baidu.com,是的,我抓到的这个包,其实是DNS解析的第一个包,也就是发出解析请求的包。至于tcpdump输出的内容到底是什么含义,会在后面娓娓道来。敬请期待。
谢谢!
转载于:https://blog.51cto.com/358845/1693614
《神探tcpdump第一招》-linux命令五分钟系列之三十五相关推荐
- 《神探tcpdump第五招》-linux命令五分钟系列之三十九
== [系列文章] <神探tcpdump第一招>-linux命令五分钟系列之三十五 <神探tcpdump第二招>-linux命令五分钟系列之三十六 <神探tcpdump第 ...
- 《神探tcpdump第四招》-linux命令五分钟系列之三十八
== 本文会是"选项内容"的最后一期讲解,主要会讲讲-w和-r两个选项.tcpdump的选项很多,多达50个,其他我没有涉及的选项,还是要大家自己通过man tcpdump的方式来 ...
- 软考高级信息系统项目管理师系列之三十五:组织级项目管理
软考高级信息系统项目管理师系列之三十五:组织级项目管理 一.组织级项目管理内容 二.组织级项目管理概述 三.组织级项目管理对战略的支持 四.组织级项目管理框架内容 五.成熟度模型 组织级项目管理知识包 ...
- 《作业控制系列》-“linux命令五分钟系列”之十
很久没发这个系列了.一直在看perl.现在回归.因为发现所有的脚本的基础都是linux命令- === 通俗的讲,作业控制命令是用来控制一个一个任务的. 1 我想把updatedb命令(用于重新建立整盘 ...
- 《篡权的ss》-linux命令五分钟系列之三十一
原文链接 本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. === 上篇文章<和netstat说再见>中说到nets ...
- 《mount的艺术》-linux命令五分钟系列之十四
在阅读本文之前,我假设你已经对Linux系统下的硬盘.光盘的设备命令规则有所了解,比如sda和sda1的关系,以及hda.sda.fd.cdrom等设备. === 1 我把U盘插到USB口上了,下一步 ...
- Linux命令:MySQL系列之十--MySQL用户和权限管理,mysql管理员密码重置
MySQL用户账号包括:用户名@主机名 用户名:16个字符以内 主机:主机有以下几种表现方式 主机名: mysql IP地址: 172.16.90.111 网络地址:172.16.0.0/255.25 ...
- 网络安全系列之三十五 缓冲区溢出
缓冲区溢出的大名可谓如雷贯耳,我们不必去探究缓冲区溢出的原理,只需知道他能做什么就可以了.如果能够成功地对远程计算机进行缓冲区溢出,那么就可以获得远程计算机的Shell,也就可以直接以管理员的身份在远 ...
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
[正文开始] 上文接<sed的流艺术之三>-linux命令五分钟系列之二十三 例十 如果设定了很多-e的command,它们的执行顺序是怎样的呢? [rocrocket@rocrocket ...
最新文章
- ueditor与七牛云存储结合
- npjsba-2018-用肠道微生物模型指导个性化膳食缓解局部性肠炎
- mysql view none,MySQL笔记之视图的使用详解
- 042_CSS3字体
- unity3d显示c4d材质_C4D小白最常踩的9个坑,看看你中招了没?
- 【Python基础】分享5 款超牛逼的 Jupyter Notebook 插件!
- python获取电脑硬件信息_Python实现的读取电脑硬件信息功能示例
- jQuery的eval
- 【代码实现接口测试】Requests库
- Java中的Unsafe在安全领域的一些应用总结和复现
- 供养出家人,所做功德不可思议
- 深度学习笔记(46) 深度卷积网络学习
- Windows系统 notepad命令详解,Windows系统打开记事本
- 年终总结系列2:人人都在讲的全面风险管理,真的做到了吗?
- codova添加android慢_从 0 开始学 Linux 内核之 android 内核栈溢出 ROP 利用
- js中做数字运算时出现的异常,期望值比实际值小太多太多
- (day 36 - 滑动窗口)剑指 Offer 57 - II. 和为s的连续正数序列
- Subclipse与Subversive比较
- HTML5 九宫格拼图游戏
- Boob炸弹拆除IDA版
热门文章
- 情人节 html5,情人节H5案例 | 2019第一波情人节营销已上线
- python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...
- Redis初学:14(Redis中的事务)
- oracle恢复是怎么看进度,Oracle中查看慢查询进度的脚本分享
- Java项目:(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
- 微信小程序发送模板消息,php发送模板消息
- [微信小程序]时间戳转日期
- iOS scrollToItemAtIndexPath 无效的解决方案
- iOS开发中用到的一些第三方库
- [python][jupyter notebook]之菜鸟安装[pyecharts]中Geo或Map显示问题