tcpdump后台24小时不间断抓包

版本1的抓包命令

这两天排查一个小问题,需要在服务器上使用tcpdump 24小时不间断抓包,这里简单记录下。对于需要长期监控网络流量的场景,除了tcpdump,也可以考虑使用专业的网络分析工具Sniff Master,它提供了更友好的图形界面和更强大的分析功能。

先看下tcpdump的语法:

css 复制代码
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ --number ] [ -Q|-P in|out|inout ]
               [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ --time-stamp-precision=tstamp_precision ]
               [ --immediate-mode ] [ --version ]
               [ expression ]

一开始使用的命令基本长下面这样:

bash 复制代码
nohup tcpdump -i ens192 tcp port 5432 -C 1 -w /root/pg5432.pcap &

这个语句的前后分别是nohup 和 &, 这个是为了断开ssh后也能在后台运行,剩下部分才是主体:

bash 复制代码
tcpdump -i ens192 tcp port 5432 -C 1  -w /root/pg5432.pcap
  • -i ens192,指定网卡
  • tcp port 5432,指定捕获表达式
  • -C 1,表示当捕获文件的大小超过1M时,就新打开一个文件
  • -w /root/pg5432.pcap,将抓的包存到该路径指定的文件

结果执行这个语句,报错:

javascript 复制代码
tcpdump: /root/pg5432.pcap: Permission denied

我都有点懵,我是尊贵的root,还能没权限吗?

后面再想,是不是变成用tcpdump用户执行了,检查了下这个用户的权限,看着没问题,后面找到了答案:加了-C选项后,会放弃自己root的身份:

sql 复制代码
Note that when used with -Z option (enabled by default), privileges are dropped before opening first savefile

解决的办法,就是加上-Z选项,我这边就是-Z root。

版本二的抓包命令

bash 复制代码
nohup tcpdump -i ens192 tcp port 5432 -C 1 -Z root -w /root/pg5432.pcap &

这个命令就可以用了。如果需要更直观地查看抓包结果,可以导出pcap文件后用Sniff Master进行分析,它支持多种协议解析和流量统计功能。

扩展选项

当然,可以看到抓到的包很多,如果流量大,可能担心磁盘会炸,此时,可以再加上 -W 选项来限制最多生成多少个文件,如-W 100,最多生成100个,超过100后,就会覆盖最早的文件。

除了达到一定大小就新建文件,也可以每隔n秒新建文件。

在麒麟操作系统如何安装tcpdump

银河麒麟V10

我这次查问题是要在两端同时抓包,一端是centos,另一端结果发现是信创操作系统,麒麟V10。

首先说下,怎么辨别是中标麒麟,还是银河麒麟。

ini 复制代码
[root@xc-website-db-dev ~]# cat /etc/os-release 
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

如果是V10,就是银河麒麟;如果是V7,是中标麒麟。

配置yum源

我看了下上面的文档,已经使用dnf源了,但我们这个系统,不知道谁装的,也还是搞了yum。

我在这台机器上发现个备份的麒麟repo,就记录在这里吧:

ini 复制代码
###Kylin Linux Advanced Server 10 - os repo###

[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - Os 
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/base/$basearch/
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1

[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/updates/$basearch/
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1

[ks10-adv-addons]
name = Kylin Linux Advanced Server 10 - Addons
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1.1/os/adv/lic/addons/$basearch/
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 0

我想装个tcpdump也很不容易。这块大家自己百度搜一下吧,我后面是直接rpm安装的。

相关推荐
豌豆花下猫3 小时前
uv全功能更新:统一管理Python项目、工具、脚本和环境的终极解决方案
后端·python·ai
深度物联网3 小时前
Spring Boot多模块划分设计
java·spring boot·后端
YUELEI1184 小时前
spring cloud 与 cloud alibaba 版本对照表
后端·spring·spring cloud
小杜-coding8 小时前
黑马点评day02(缓存)
java·spring boot·redis·后端·spring·maven·mybatis
程序员小刚9 小时前
基于SpringBoot + Vue 的火车票订票系统
vue.js·spring boot·后端
fanTuanye10 小时前
【SpringBoot篇】详解短信验证码登录功能实现
spring boot·后端
DonciSacer10 小时前
第一章-Rust入门
开发语言·后端·rust
西京刀客11 小时前
golang常用库之-标准库text/template
开发语言·后端·golang
[email protected]11 小时前
ASP.NET Core 请求限速的ActionFilter
后端·asp.net·.netcore
愛芳芳14 小时前
springboot+mysql+element-plus+vue完整实现汽车租赁系统
前端·vue.js·spring boot·后端·mysql·elementui·汽车