Rumah >Tutorial sistem >LINUX >Contoh biasa tcpdump
tcpdump ialah alat analisis paket rangkaian yang sangat biasa digunakan yang boleh digunakan untuk memaparkan TCP/IP dan paket data rangkaian lain yang dihantar ke sistem ini melalui rangkaian. tcpdump Gunakan perpustakaan libpcap untuk menangkap paket rangkaian Pustaka ini tersedia dalam hampir semua Linux/Unix.
tcpdump boleh membaca kandungan dari kad rangkaian atau fail paket yang dibuat sebelum ini, atau menulis paket ke fail untuk kegunaan seterusnya. Mesti root atau gunakan keistimewaan sudo untuk menjalankan tcpdump.
Dalam artikel ini, kami akan menunjukkan cara menggunakan arahan tcpdump melalui beberapa contoh, tetapi mula-mula mari kita lihat cara memasang tcpdump dalam pelbagai sistem pengendalian Linux.
tcpdump tersedia secara lalai dalam hampir semua pengedaran Linux, tetapi jika ia tidak tersedia pada Linux anda, gunakan kaedah di bawah untuk memasangnya.
Gunakan arahan berikut untuk memasang tcpdump,
pada CentOS dan RHEL$ sudo yum install tcpdump*
Gunakan arahan berikut untuk memasang tcpdump pada Fedora:
$ dnf install tcpdump
Gunakan arahan berikut untuk memasang tcpdump pada Ubuntu/Debain/Linux Mint:
$ apt-get install tcpdump
Selepas memasang tcpdump, mari lihat beberapa contoh.
Jalankan arahan berikut untuk menangkap paket daripada semua kad rangkaian:
$ tcpdump -i any
Untuk menangkap paket daripada kad rangkaian tertentu, jalankan:
$ tcpdump -i eth0
使用 -w 选项将所有捕获的包写入文件:
$ tcpdump -i eth1 -w packets_file
使用下面命令从之前创建的 tcpdump 文件中读取内容:
$ tcpdump -r packets_file
要获取更多的包信息同时以可读的形式显示时间戳,使用:
$ tcpdump -ttttnnvvS
要获取整个网络的数据包,在终端执行下面命令:
$ tcpdump net 192.168.1.0/24
要获取指定 IP 的数据包,不管是作为源地址还是目的地址,使用下面命令:
$ tcpdump host 192.168.1.100
要指定 IP 地址是源地址或是目的地址则使用:
$ tcpdump src 192.168.1.100 $ tcpdump dst 192.168.1.100
要查看某个协议的数据包,运行下面命令:
$ tcpdump ssh
要捕获某个端口或一个范围的数据包,使用:
$ tcpdump port 22 $ tcpdump portrange 22-125
我们也可以与 src 和 dst 选项连用来捕获指定源端口或指定目的端口的报文。
我们还可以使用“与” (and,&&)、“或” (or,|| ) 和“非”(not,!) 来将两个条件组合起来。当我们需要基于某些条件来分析网络报文是非常有用。
可以使用 and 或者符号 && 来将两个或多个条件组合起来。比如:
$ tcpdump src 192.168.1.100 && port 22 -w ssh_packets
“或”会检查是否匹配命令所列条件中的其中一条,像这样:
$ tcpdump src 192.168.1.100 or dst 192.168.1.50 && port 22 -w ssh_packets $ tcpdump port 443 or 80 -w http_packets
当我们想表达不匹配某项条件时可以使用“非”,像这样:
$ tcpdump -i eth0 src port not 22
这会捕获 eth0 上除了 22 号端口的所有通讯。
我们的教程至此就结束了,在本教程中我们讲解了如何安装并使用 tcpdump 来捕获网络数据包。
Atas ialah kandungan terperinci Contoh biasa tcpdump. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!