در دنیای شبکه و امنیت، تحلیل ترافیک شبکه (Packet Analysis) ابزار اصلی برای عیبیابی، تشخیص حملات، بررسی عملکرد پروتکلها و بررسی امنیت شبکه است. دو ابزار مهم در این حوزه عبارتاند از:
✔️ Wireshark : ابزار گرافیکی تحلیل بستهها با فیلترهای حرفهای و قابلیت بررسی دقیق پروتکلها.
✔️ Tcpdump : ابزار خط فرمان برای Capture بستهها در لینوکس. عالی برای سرورهای بدون رابط گرافیکی یا اسکریپتنویسی و ذخیره Capture.
این مقاله از Hellodigi به شما میآموزد چگونه از tcpdump در لینوکس برای Capture بستهها استفاده کنید و سپس آنها را با Wireshark تحلیل کنید یا بهصورت مستقیم ترافیک را بررسی کنید.
tcpdump ، ابزار Capture در لینوکس
فرض کنید روی یک سرور لینوکسی در دیتاسنتر لاگین کردهاید. سرویس وب کند شده، بعضی کاربران Timeout میگیرند، اما:
✔️ هیچ رابط گرافیکی ندارید
✔️ نصب Wireshark روی سرور مجاز نیست
✔️ فقط SSH و ترمینال در اختیار شماست
در چنین شرایطی، تنها ابزاری که به شما امکان میدهد ببینید واقعاً روی شبکه چه اتفاقی میافتد، tcpdump است.
🧰 tcpdump چیست؟
Tcpdump یک ابزار قدرتمند خط فرمان (CLI) برای Capture و بررسی بستههای شبکه در سیستمهای یونیکسی (بهویژه لینوکس) است. این ابزار مستقیماً روی اینترفیس شبکه گوش میدهد و بستهها را قبل از رسیدن به لایههای بالاتر سیستمعامل دریافت میکند.
Tcpdump بر پایهی کتابخانهی معروف libpcap ساخته شده است، همان کتابخانهای که ابزارهایی مثل Wireshark نیز از آن استفاده میکنند. به همین دلیل، فایلهایی که با tcpdump ذخیره میشوند (.pcap) کاملاً با Wireshark سازگار هستند و میتوان آنها را بعداً بهصورت گرافیکی و دقیق تحلیل کرد.
🔍 tcpdump دقیقاً چه کاری انجام میدهد؟
Tcpdump به شما اجازه میدهد:
✔️ بستههای عبوری از یک Interface خاص را Capture کنید
✔️ فقط ترافیک موردنظر (مثلاً یک IP، پورت یا پروتکل مشخص) را ضبط کنید
✔️ بستهها را بهصورت Real-Time روی ترمینال ببینید
✔️ یا آنها را در یک فایل ذخیره کنید تا بعداً با Wireshark تحلیل شوند
این یعنی شما میتوانید روی یک سرور Production، حداقل دخالت و حداکثر دید را داشته باشید.
📦 مثال:
فرض کنید میخواهید بررسی کنید آیا سرور شما واقعاً درخواستهای HTTPS را دریافت میکند یا نه:
sudo tcpdump -i eth0 tcp port 443
در این حالت:
Tcpdump ✔️ روی کارت شبکه eth0 گوش میدهد
✔️ فقط ترافیک TCP مربوط به پورت 443 (HTTPS) را نمایش میدهد
✔️ شما میتوانید SYN، ACK و جریان واقعی ارتباط را ببینید
اگر بخواهید همین ترافیک را برای تحلیل عمیقتر ذخیره کنید:
sudo tcpdump -i eth0 tcp port 443 -w https_traffic.pcap
فایل خروجی را بعداً در Wireshark باز میکنید و دقیقاً میبینید:
Handshake ✔️ بهدرستی انجام شده یا نه
✔️ آیا Reset اتفاق افتاده
Latency ✔️ کجای مسیر ایجاد شده
⚙️ چرا tcpdump برای متخصص امنیت و شبکه حیاتی است؟
Tcpdump دقیقاً در جایی استفاده میشود که:
✔️ سرور GUI ندارد
✔️ نصب ابزار اضافی مجاز نیست
✔️ نیاز به تحلیل سریع و کمهزینه دارید
✔️ میخواهید Capture را به تیم SOC یا Incident Response بدهید
به همین دلیل، tcpdump یکی از ابزارهای الزامی در جعبهابزار مهندسین شبکه، SOC Analyst ها و Blue Team محسوب میشود.
🔗 ارتباط tcpdump با Wireshark (پل بین CLI و GUI)
اگر در مقالهی قبلی شما تحلیل Packet با Wireshark را بررسی کردهایم، tcpdump دقیقاً نقش مرحلهی قبل را بازی میکند:
tcpdump → Capture دقیق روی لینوکس
Wireshark → تحلیل عمیق و بصری روی سیستم تحلیل
این ترکیب، استاندارد حرفهای در دنیای امنیت شبکه است.
📦 نصب و آمادهسازی tcpdump
در اکثر توزیعهای لینوکس، میتوانید tcpdump را بهراحتی نصب کنید:
sudo apt install tcpdump # Debian/Ubuntu sudo dnf install tcpdump # RHEL/CentOS/Fedora
(در صورت نیاز Wireshark نیز به همین صورت نصب میشود.)
📌 چرا tcpdump؟
✔ سبک و سریع
✔ مناسب سرورهای بدون GUI
✔ قابل اسکریپتنویسی و زمانبندی
✔ همکاری قوی با Wireshark برای تحلیل حرفهای
(مثلاً Capture با tcpdump و آنالیز در Wireshark).
🧪 بخش چهارم: دستورات پایه tcpdump
🛑 شروع یک Capture ساده
sudo tcpdump -i any -w capture.pcap
- -i any : گوش دادن به تمام اینترفیسها
- -w capture.pcap : ذخیره در فایل با پسوند pcap برای تحلیل بعدی.
⚙️ گزینههای مهم tcpdump
|
Flag |
توضیحات |
|
-i <iface> |
انتخاب کارت شبکه |
|
-n |
عدم ترجمه IP به نامها |
|
-s 0 |
ضبط کامل بستهها (بدون کوتاهسازی) |
|
-c N |
ضبط N بسته و خروج |
|
-v |
نمایش بیشتر اطلاعات |
📍 مثالهای کاربردی
🔹 فقط ترافیک HTTP (پورت 80):
sudo tcpdump -i any tcp port 80 -w http.pcap
🔹 فقط ترافیک به یک IP مشخص:
sudo tcpdump -i any host 192.168.1.10 -w host.pcap
این فیلترها بسیار شبیه به فیلترهای Wireshark هستند و در tcpdump نیز قابل استفادهاند. (
🔍 بخش پنجم: استفاده از Wireshark برای تحلیل فایلهای tcpdump
پس از اینکه توسط tcpdump فایل Capture (مثلاً capture.pcap) را ذخیره کردید، میتوانید آن را در Wireshark باز کنید:
📌 مراحل
- Wireshark اجرا کنید.
- از منوی File → Open فایل .pcap را باز کنید.
- از Display Filters برای دیدن بستههای موردنظر استفاده کنید (مثلاً http, tcp, ip.addr == 192.168.1.10).
🧠 بخش ششم: Best practice و نکات حرفهای
🧩 نکته ۱: Snap Length را کامل بگیرید
برای بررسی کامل بستهها، همیشه از:
tcpdump -s 0
استفاده کنید تا کل بسته ضبط شود، نه فقط هدر آن.
🧩 نکته ۲: Capture هدفمند با فیلترهای BPF
استفاده از فیلترهای Berkeley Packet Filter (BPF) باعث بهینهسازی Capture میشود و فقط بستههای مورد نیاز ضبط میشوند، مثال:
sudo tcpdump -i any 'tcp and port 443'
فیلتر BPF عملکرد را بسیار بهبود میدهد.
🧩 نکته ۳: Capture از راه دور
میتوانید با SSH به سرور وصل شوید و روی سرور Capture کنید، سپس فایل را به سیستم خود منتقل و در Wireshark تحلیل کنید.
📌 جمعبندی
|
ابزار |
نقش |
|
tcpdump |
ضبط هدفمند و سبک بستهها روی لینوکس (CLI) |
|
Wireshark |
تحلیل دقیق، فیلتر حرفهای و نمایش بصری |
با ترکیب این دو ابزار، میتوانید در هر سناریویی، از سرورهای بدون گرافیک تا تحلیل عمیق امنیتی، ترافیک شبکه را ضبط، ذخیره و تحلیل حرفهای کنید.


