| TSHARK(1) | TSHARK(1) |
نام (NAME)
tshark - تخلیه و تحلیل ترافیک شبکه
خلاصه دستور (SYNOPSIS)
tshark [ -i <capture interface>|- ] [ -f <capture filter> ] [ -2 ] [ -r <infile> ] [ -w <outfile>|- ] [ options ] [ <filter> ]
tshark -h|--help
tshark -v|--version
توضیحات (DESCRIPTION)
TShark یک تحلیلگر پروتکل شبکه است. این ابزار به شما امکان میدهد تا دادههای بستهها را از یک شبکهٔ زنده ضبط کنید، یا بستهها را از یک فایل ضبط ذخیرهشده از قبل بخوانید، و سپس شکل رمزگشاییشدهٔ آن بستهها را در خروجی استاندارد چاپ کرده یا آنها را در یک فایل ذخیره کنید. قالب بومی فایلهای ضبط در TShark، قالب pcapng است که همان قالب مورد استفاده توسط Wireshark و ابزارهای گوناگون دیگر نیز میباشد.
بدون تنظیم هیچ گزینهای، TShark عملکردی بسیار شبیه به tcpdump خواهد داشت. این برنامه از کتابخانهٔ pcap برای ضبط ترافیک از اولین رابط شبکهٔ دردسترس استفاده کرده و برای هر بستهٔ دریافتی، یک خط خلاصه در خروجی استاندارد نمایش میدهد.
هنگام اجرا با گزینهٔ -r، که یک فایل ضبط را برای خواندن مشخص میکند، TShark مجدداً بسیار شبیه به tcpdump عمل خواهد کرد، بستهها را از فایل خوانده و برای هر بستهٔ خواندهشده یک خط خلاصه در خروجی استاندارد نمایش میدهد. TShark قادر است همان فایلهای ضبطی را که توسط Wireshark پشتیبانی میشوند شناسایی کرده، بخواند و بنویسد. فایل ورودی نیازی به پسوند نام فایل خاصی ندارد؛ قالب فایل و فشردهسازی اختیاری gzip، Zstandard یا LZ4 بهطور خودکار شناسایی خواهند شد. نزدیک به ابتدای بخش توضیحات (DESCRIPTION) در wireshark(1) یا https://www.wireshark.org/docs/man-pages/wireshark.html شرح مفصلی از نحوهٔ مدیریت این موضوع توسط Wireshark آورده شده است، که دقیقاً همان روشی است که TShark به کار میگیرد.
پشتیبانی از فایلهای فشرده از کتابخانهٔ zlib استفاده میکند (و در نتیجه به آن نیاز دارد). اگر کتابخانهٔ zlib هنگام کامپایل TShark موجود نباشد، کامپایل برنامه ممکن خواهد بود، اما برنامهٔ حاصل قادر به خواندن فایلهای فشرده نخواهد بود. به همین ترتیب، LZ4 و ZStandard نیز به کتابخانههای مربوط به خود نیاز دارند.
هنگام نمایش بستهها در خروجی استاندارد، TShark بهطور پیشفرض یک خط خلاصه شامل فیلدهای مشخصشده در فایل ترجیحات (preferences) را مینویسد (که همان فیلدهای نمایشیافته در قاب فهرست بستهها در Wireshark نیز هستند)، اگرچه اگر بستهها را همزمان با ضبط آنها بنویسد، به جای نوشتن بستهها از یک فایل ضبط ذخیرهشده، فیلد "frame number" (شماره فریم) را نشان نخواهد داد. اگر گزینهٔ -V مشخص شده باشد، در عوض نمایی از جزئیات بسته را مینویسد و تمام فیلدهای همهٔ پروتکلهای موجود در بسته را نشان میدهد. اگر گزینهٔ -O مشخص شده باشد، تنها جزئیات کامل پروتکلهای مشخصشده را نشان میدهد و برای سایر پروتکلها تنها خط جزئیات سطح بالا (top-level) را نمایش خواهد داد. برای یافتن نامهای اختصاری پروتکلهایی که میتوانید مشخص کنید، از خروجی "tshark -G protocols" استفاده کنید. اگر گزینهٔ -P همراه با گزینههای -V یا -O مشخص شود، هم خط خلاصه برای کل بسته و هم جزئیات آن نمایش داده خواهند شد.
ضبط بستهها با استفاده از کتابخانهٔ pcap انجام میشود. این کتابخانه از تعیین یک عبارت فیلتر پشتیبانی میکند؛ بستههایی که با آن فیلتر مطابقت نداشته باشند دور ریخته میشوند. گزینهٔ -f برای مشخص کردن یک فیلتر ضبط به کار میرود. نحو یک فیلتر ضبط توسط کتابخانهٔ pcap تعریف میشود؛ این نحو با نحو فیلتر نمایش که در ادامه توضیح داده شده متفاوت است، و سازوکار فیلترسازی آن در تواناییهای خود محدودتر است.
فیلترهای نمایش در TShark، که به شما امکان میدهند مشخص کنید کدام بستهها رمزگشایی شده یا در یک فایل نوشته شوند، بسیار قدرتمند هستند؛ فیلدهای قابل فیلتر شدن در TShark نسبت به سایر تحلیلگرهای پروتکل بیشتر است و نحوی که میتوانید برای ساخت فیلترهای خود استفاده کنید غنیتر است. با پیشرفت TShark، انتظار میرود فیلدهای پروتکلی بیشتر و بیشتری در فیلترهای نمایش مجاز شوند. فیلترهای نمایش از همان نحو فیلترهای نمایش و رنگبندی در Wireshark استفاده میکنند؛ یک فیلتر نمایش با گزینهٔ -Y مشخص میشود.
فیلترهای نمایش را میتوان هنگام ضبط یا هنگام خواندن از یک فایل ضبط مشخص کرد. توجه داشته باشید که فیلترهای ضبط بسیار کارآمدتر از فیلترهای نمایش هستند، و در صورتی که یک فیلتر نمایش برای ضبط زنده مشخص شود، ممکن است همگام ماندن با یک شبکهٔ شلوغ برای TShark دشوارتر باشد، بنابراین اگر از فیلتر نمایش استفاده میکنید، احتمال از دست رفتن بستهها بیشتر خواهد بود.
یک فیلتر ضبط یا نمایش را میتوان به ترتیب با گزینهٔ -f یا -Y مشخص کرد؛ در این حالت کل عبارت فیلتر باید به عنوان یک آرگومان واحد مشخص شود (به این معنی که اگر شامل فاصله باشد، باید درون علامت نقلقول قرار گیرد)، یا میتوان آن را با آرگومانهای خط فرمان پس از آرگومانهای گزینهها مشخص کرد که در این صورت تمام آرگومانهای پس از آرگومانهای فیلتر به عنوان یک عبارت فیلتر در نظر گرفته میشوند. اگر فیلتر با آرگومانهای خط فرمان پس از آرگومانهای گزینهها مشخص شود، در صورتی که ضبط زنده در حال انجام باشد (یعنی گزینهٔ -r مشخص نشده باشد) به عنوان فیلتر ضبط، و در صورتی که یک فایل ضبط در حال خوانده شدن باشد (یعنی گزینهٔ -r مشخص شده باشد) به عنوان فیلتر نمایش در نظر گرفته میشود.
اگر هنگام ضبط بستهها یا خواندن از یک فایل ضبط، گزینهٔ -w مشخص شده باشد، TShark بستهها را در خروجی استاندارد نمایش نمیدهد. در عوض، بستهها را در یک فایل ضبط با نام مشخصشده توسط گزینهٔ -w مینویسد. توجه داشته باشید که فیلترهای نمایش در حال حاضر هنگام ضبط و ذخیرهٔ بستههای ضبطشده پشتیبانی نمیشوند.
اگر میخواهید شکل رمزگشاییشدهٔ بستهها را در یک فایل بنویسید، TShark را بدون گزینهٔ -w اجرا کرده و خروجی استاندارد آن را به فایل هدایت کنید (از گزینهٔ -w استفاده نکنید).
اگر میخواهید بستهها در خروجی استاندارد نمایش داده شوند و همزمان در یک فایل نیز ذخیره گردند، علاوه بر گزینهٔ -w گزینهٔ -P را مشخص کنید تا خط خلاصه نمایش داده شود، علاوه بر گزینهٔ -w گزینهٔ -V را مشخص کنید تا جزئیات بسته نمایش یابد، و گزینهٔ -O را همراه با فهرستی از پروتکلها مشخص کنید تا جزئیات کامل پروتکلهای مشخصشده و خط جزئیات سطح بالا برای تمام پروتکلهای دیگر نمایش داده شود. اگر گزینهٔ -P همراه با گزینهٔ -V یا -O استفاده شود، خط خلاصه به همراه خطوط جزئیات نمایش داده خواهد شد.
هنگام نوشتن بستهها در یک فایل، TShark بهطور پیشفرض فایل را در قالب pcapng مینویسد، و تمام بستههایی را که مشاهده میکند در فایل خروجی ذخیره مینماید. از گزینهٔ -F میتوان برای مشخص کردن قالبی که فایل با آن نوشته میشود استفاده کرد. فهرست قالبهای فایل موجود با اجرای گزینهٔ -F بدون مقدار نمایش داده میشود. با این حال، برای ضبط زنده، تنها میتوانید قالب فایلی را مشخص کنید که توسط dumpcap(1) پشتیبانی میشود، یعنی pcapng یا pcap. از گزینهٔ --compress نیز میتوان برای مشخص کردن روش فشردهسازی استفاده کرد؛ فهرست روشهای فشردهسازی پشتیبانیشده برای نوشتن را میتوان با اجرای گزینهٔ --compress بدون آرگومان مشاهده کرد. اگر گزینهٔ --compress داده نشود، روش فشردهسازی مورد نظر (در صورت وجود) از پسوند نام فایل ارائهشده به عنوان آرگومان به گزینهٔ -w استنباط میشود.
هنگام ضبط بستهها، TShark یک خط اولیه در خطای استاندارد مینویسد که رابطهایی را که بستهها از آنها در حال ضبط هستند فهرست میکند و در صورتی که اطلاعات بستهها در ترمینال نمایش داده نشود، شمارش مداومی از بستههای ضبطشده را در خروجی استاندارد مینویسد. اگر گزینهٔ -q مشخص شده باشد، نه شمارش مداوم و نه اطلاعات بستهها نمایش داده نخواهند شد؛ در عوض، در پایان ضبط، تعداد بستههای ضبطشده نمایش داده خواهد شد. اگر گزینهٔ -Q مشخص شده باشد، نه خط اولیه، نه اطلاعات بستهها، و نه هیچ شمارشی از بستهها نمایش داده نخواهد شد. در صورت استفاده از گزینهٔ -q یا -Q، میتوان از گزینههای -P، -V یا -O برای نمایش خروجی متناظر استفاده کرد، حتی اگر سایر خروجیها سرکوب شده باشند.
هنگام خواندن بستهها، گزینههای -q و -Q نمایش خلاصه یا جزئیات بسته را سرکوب میکنند؛ این کار زمانی استفاده میشود که گزینههای -z به منظور نمایش آمار مشخص شده باشند، به طوری که تنها آمار و نه اطلاعات بسته نمایش داده شود.
گزینهٔ -G یک حالت ویژه است که صرفاً باعث میشود TShark یکی از چندین نوع واژهنامهٔ داخلی را تخلیه کرده و سپس خارج شود..SH "گزینهها (OPTIONS)"
-2
یک تحلیل دو-گذره (two-pass) انجام میدهد. این کار باعث میشود TShark خروجی را تا پایان گذر اول بافر کند، اما به آن اجازه میدهد فیلدهایی که نیازمند آگاهی از آینده هستند، مانند فیلدهای 'response in frame #' را پر کند. همچنین امکان محاسبه صحیح وابستگیهای فریمهای بازسرهمبندی (reassembly) را فراهم میسازد. این کار نیازمند توانایی جستجو به عقب (seek backwards) روی ورودی است و بنابراین نمیتوان از آن برای ضبطهای زنده یا هنگام خواندن از یک pipe یا FIFO استفاده کرد.
-a|--autostop <capture autostop condition>
معیاری را مشخص میکند که تعیین میکند TShark چه زمانی نوشتن در فایل ضبط را متوقف کند. این معیار به شکل test:value است که در آن test یکی از موارد زیر است:
duration:value توقف نوشتن در فایل ضبط پس از سپری شدن value ثانیه. مقادیر ممیز شناور (مانند 0.5) مجاز هستند.
files:value توقف نوشتن در فایلهای ضبط پس از نوشته شدن تعداد value فایل.
filesize:value توقف نوشتن در فایل ضبط پس از رسیدن اندازه آن به value کیلوبایت. اگر این گزینه همراه با گزینه -b استفاده شود، TShark در صورت رسیدن به این اندازه، نوشتن در فایل ضبط جاری را متوقف کرده و به فایل بعدی منتقل میشود. هنگام خواندن یک فایل ضبط، TShark پس از اینکه تعداد بایتهای خواندهشده از این عدد فراتر رفت، خواندن فایل را متوقف میکند (بسته بهطور کامل خوانده میشود، بنابراین ممکن است بایتهای بیشتری نسبت به این عدد خوانده شود). توجه داشته باشید که اندازه فایل به حداکثر مقدار ۲ ترابایت محدود است، هرچند اگر تعداد بستهها از 232 (۴۲۹۴۹۶۷۲۹۶) بیشتر شود ممکن است پیش از آن با مشکل مواجه شوید.
packets:value جابهجایی به فایل بعدی پس از اینکه حاوی value بسته شد. این مورد شامل بستههایی که از فیلتر نمایش عبور نمیکنند نمیشود، بنابراین ممکن است با -c<capture packet count> متفاوت باشد.
-A <user>:<password>
مشخص کردن یک کاربر و گذرواژه هنگامی که TShark از یک رابط rpcap:// که نیازمند احراز هویت است، بستهها را ضبط میکند.
این گزینه همراه با libpcap با پشتیبانی راهدور فعال در دسترس است.
-b|--ring-buffer <capture ring buffer option>
باعث میشود TShark در حالت «چند فایلی» (multiple files) اجرا شود. در این حالت، TShark در چندین فایل ضبط خواهد نوشت. هنگامی که نخستین فایل ضبط پر شد، TShark نوشتن را به فایل بعدی تغییر میدهد و به همین ترتیب ادامه مییابد.
نامهای فایل ایجاد شده بر اساس نام فایل ارائهشده با گزینه -w، شماره فایل و تاریخ و زمان ایجاد هستند؛ مانند outfile_00001_20260714120117.pcap، outfile_00002_20260714120523.pcap، ...
با گزینه files همچنین امکان ایجاد یک «بافر حلقهای» (ring buffer) وجود دارد. این کار فایلهای جدید را تا رسیدن به تعداد فایلهای مشخصشده پر میکند، و در آن نقطه TShark دادههای اولین فایل را دور ریخته و شروع به نوشتن در آن فایل میکند و به همین ترتیب ادامه میدهد. اگر گزینه files تنظیم نشده باشد، فایلهای جدید تا زمانی پر میشوند که یکی از شرایط توقف ضبط برقرار شود (یا دیسک پر شود).
این معیار به شکل key:value است، که در آن key یکی از موارد زیر است:
duration:value جابهجایی به فایل بعدی پس از سپری شدن value ثانیه، حتی اگر فایل جاری کاملاً پر نشده باشد. مقادیر ممیز شناور (مانند 0.5) مجاز هستند.
files:value شروع مجدد از فایل اول پس از نوشته شدن تعداد value فایل (ایجاد یک بافر حلقهای). این مقدار باید کمتر از ۱۰۰۰۰۰ باشد. هنگام استفاده از تعداد زیادی فایل باید احتیاط کرد: برخی سیستمهای فایل با فایلهای زیاد در یک دایرکتوری بهخوبی کار نمیکنند. معیار files برای کنترل زمان رفتن به فایل بعدی، نیازمند مشخص شدن یکی از موارد duration، interval یا filesize است. باید توجه داشت که هر پارامتر -b دقیقاً یک معیار میگیرد؛ برای تعیین دو معیار، هر یک باید با گزینه -b مشخص شوند.
filesize:value جابهجایی به فایل بعدی پس از رسیدن اندازه آن به value کیلوبایت. توجه داشته باشید که اندازه فایل به حداکثر مقدار ۲ ترابایت محدود است، هرچند اگر تعداد بستهها از 232 (۴۲۹۴۹۶۷۲۹۶) بیشتر شود ممکن است پیش از آن با مشکل مواجه شوید.
interval:value جابهجایی به فایل بعدی زمانی که زمان مضرب دقیقی از value ثانیه باشد. برای مثال، از 3600 برای جابهجایی به فایل جدید در هر ساعت رأس ساعت استفاده کنید.
packets:value جابهجایی به فایل بعدی پس از اینکه حاوی value بسته شد.
printname:filename چاپ نام آخرین فایل نوشتهشده در filename پس از بسته شدن فایل. filename میتواند stdout یا - برای خروجی استاندارد، یا stderr برای خطای استاندارد باشد.
nametimenum:value انتخاب بین دو الگوی نام فایل ذخیره. اگر value برابر ۱ باشد، بخش شماره فایل قبل از بخش زمان شروع قرار میگیرد؛ این رفتار اصلی و پیشفرض است (مانند log_00001_20260714164426.pcap). اگر value بزرگتر از ۱ باشد، بخش زمان شروع قبل از شماره فایل قرار میگیرد (مانند log_20210828164426_00001.pcap). حالت دوم باعث میشود ترتیب الفبایی معادل با ترتیب زمان ایجاد باشد، و مجموعههای مرتبط چندفایلی را در یک دایرکتوری در کنار یکدیگر نگه میدارد.
مثال: tshark -b filesize:1000 -b files:5 یک بافر حلقهای با پنج فایل که اندازه هر یک یک مگابایت است ایجاد میکند.
-B|--buffer-size <capture buffer size>
تنظیم اندازه بافر ضبط (به MiB، مقدار پیشفرض 2 MiB است). این گزینه توسط درایور ضبط برای ذخیره موقت دادههای بسته تا زمان نوشتن آنها روی دیسک استفاده میشود. اگر هنگام ضبط با بستههای از دست رفته (drop) مواجه شدید، سعی کنید این اندازه را افزایش دهید. توجه داشته باشید که اگرچه TShark بهطور پیشفرض تلاش میکند اندازه بافر را روی 2 MiB تنظیم کند و میتوان آن را روی مقادیر بزرگتری تنظیم کرد، سیستم یا رابطی که روی آن ضبط میکنید ممکن است بدون اطلاع اندازه بافر ضبط را به مقدار کمتری محدود کند یا آن را به مقدار بالاتری افزایش دهد.
این گزینه در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX با libpcap نسخه 1.0.0 یا بالاتر، و در Windows در دسترس است. در سیستمهای سازگار با UNIX با نسخههای قدیمیتر libpcap در دسترس نیست.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، اندازه بافر ضبط پیشفرض را تنظیم میکند. اگر بعد از یک گزینه -i استفاده شود، اندازه بافر ضبط را برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده تنظیم میکند. اگر اندازه بافر ضبط بهطور اختصاصی تنظیم نشود، اندازه پیشفرض به جای آن استفاده میشود.
-c <capture packet count>
تنظیم حداکثر تعداد بستهها برای خواندن هنگام ضبط دادههای زنده. در صورت خواندن از یک فایل ضبط، حداکثر تعداد بستهها برای خواندن را تعیین میکند. این مقدار شامل بستههایی که از فیلتر نمایش عبور نمیکنند نیز میشود، بنابراین ممکن است با -a packets:<capture packet count> متفاوت باشد.
-C <configuration profile>
اجرا با پروفایل پیکربندی دادهشده.
اگر همراه با --global-profile استفاده شود، پروفایل مشخصشده به جای دایرکتوری پیکربندی شخصی کاربر، از دایرکتوری پیکربندی سراسری بارگیری میشود. (معمولاً در UN*X برابر '/usr/share/wireshark/profiles' است؛ در Windows، این دایرکتوری یک زیردایرکتوری profiles از دایرکتوری محل نصب Wireshark است، مثلاً C:\Program Files\Wireshark\profiles. در macOS، هنگام اجرا از یک بسته نرمافزاری (app bundle)، زیردایرکتوری Contents/Resources/share/wireshark/profiles درون بسته برنامه است.)
این گزینه در محیطهای اشتراکی یا تنظیمات آزمونهای خودکار که به پیکربندیهای یکپارچه نیاز است و باید از تنظیمات ویژه کاربر اجتناب شود، مفید است.
-D|--list-interfaces
چاپ فهرستی از رابطهایی که TShark میتواند روی آنها بستهها را ضبط کند، و سپس خروج. برای هر رابط شبکه، یک شماره و یک نام رابط، و در صورت وجود یک توضیح متنی از رابط چاپ میشود. نام یا شماره رابط را میتوان به پرچم -i برای مشخص کردن رابط ضبط داد. استفاده از شماره میتواند در سیستمهای Windows که رابطها نامهای طولانی و معمولاً حاوی یک GUID دارند، بسیار مفید باشد.
-e <field>
افزودن یک فیلد به فهرست فیلدهای نمایشی در صورتی که -T ek|fields|json|pdml انتخاب شده باشد. این گزینه میتواند چندین بار در خط فرمان استفاده شود. اگر گزینه -T fields انتخاب شده باشد، باید حداقل یک فیلد تعیین شود. میتوان از انواع ستونها با پیشوند "_ws.col." استفاده کرد. قرار دادن نماد at (@) قبل از نام فیلد، دادهها را به صورت بایتهای هگزادسیمال نمایش میدهد.
مثال: tshark -T fields -e frame.number -e ip.addr -e udp -e _ws.col.info
فیلدها بهطور پیشفرض با نویسههای تب (tab) جدا میشوند. -E قالب فیلدهای چاپشده را کنترل میکند. ارائه یک پروتکل به جای یک فیلد واحد، خلاصه پروتکل (برچسب زیردرخت) را از جزئیات بسته به صورت یک فیلد واحد چاپ خواهد کرد. اگر خلاصه پروتکل تنها حاوی نام پروتکل باشد (مانند "Hypertext Transfer Protocol")، آنگاه نام فیلتر پروتکل ("http") چاپ خواهد شد.
-E <field print option>
تنظیم یک گزینه برای کنترل چاپ فیلدها هنگامی که -T fields انتخاب شده است.
گزینهها عبارتند از:
bom=y|n اگر y باشد، خروجی را با نشانگر ترتیب بایت UTF-8 (هگزادسیمال ef, bb, bf) پیشوندگذاری میکند. پیشفرض n است.
header=y|n اگر y باشد، فهرستی از نام فیلدهای تعیینشده با -e را به عنوان خط اول خروجی چاپ میکند؛ نام فیلدها با همان نویسه مقادیر فیلد جدا میشوند. پیشفرض n است.
separator=/t|/s|<character> تنظیم نویسه جداکننده برای استفاده در فیلدها. اگر /t باشد از نویسه تب استفاده میشود (این حالت پیشفرض است)، و اگر /s باشد، از یک فاصله تک استفاده خواهد شد. در غیر این صورت، هر نویسهای که بتواند توسط خط فرمان به عنوان بخشی از گزینه پذیرفته شود، میتواند استفاده شود.
occurrence=f|l|a انتخاب اینکه برای فیلدهایی با چند رخداد از کدام رخداد استفاده شود. اگر f باشد اولین رخداد، اگر l باشد آخرین رخداد، و اگر a باشد همه رخدادها استفاده خواهند شد (این حالت پیشفرض است).
aggregator=,|/s|<character> تنظیم نویسه تجمیعکننده برای استفاده در فیلدهایی که چند رخداد دارند. اگر , باشد از کاما استفاده میشود (این حالت پیشفرض است)، و اگر /s باشد، از یک فاصله تک استفاده خواهد شد. در غیر این صورت، هر نویسهای که بتواند توسط خط فرمان به عنوان بخشی از گزینه پذیرفته شود، قابل استفاده است.
quote=d|s|n تنظیم نویسه نقلقول برای احاطه کردن فیلدها. d از نقلقول دوتایی (double-quotes)، s از نقلقول تکی (single-quotes)، و n از بدون نقلقول (پیشفرض) استفاده میکند. اگر نویسه نقلقول در مقدار یک فیلد ظاهر شود، با تکرار شدن گریز داده میشود (escaped).
escape=y|n اگر y باشد، نویسههای کنترلی فضای خالی (تب، سطر جدید، بازگشت به ابتدای سطر، پرش صفحه، و تب عمودی)، پسبر (backspace)، و بکاسلش در مقادیر فیلد با توالیهای گریز سبک C جایگزین میشوند؛ مانند "\n" برای سطر جدید. اگر n باشد، رشتههای مقدار فیلد همانطور که هستند چاپ میشوند. پیشفرض y است.
escape_formulas=y|n اگر y باشد، به ابتدای هر مقدار فیلدی که ممکن است یک برنامه صفحهگسترده آن را به عنوان فرمول ارزیابی کند یک آپوستروف اضافه میکند تا دادههای بسته نتوانند فرمولی را به یک فایل CSV که بعداً در یک صفحهگسترده باز میشود تزریق کنند. مقادیری که با =، +، - یا @ شروع شوند (احتمالاً با فاصلههای خالی در ابتدا) تحت تأثیر قرار میگیرند. توجه داشته باشید که این کار مقادیر صادرشده را تغییر میدهد و بهویژه برای اعداد منفی معتبر نیز اعمال میشود، بنابراین بهطور پیشفرض غیرفعال است؛ زمانی آن را فعال کنید که خروجی به جای پردازش ماشینی بیشتر، برای یک برنامه صفحهگسترده در نظر گرفته شده باشد. پیشفرض n است.
split=<proto> تقسیم خروجی به یک سطر به ازای هر نمونه پیام از پروتکل <proto> در یک بسته. این قابلیت زمانی مفید است که یک بسته منفرد حاوی چندین پیام پروتکل باشد (مانند چندین پیام Diameter که در یک بسته SCTP بستهبندی شدهاند). فیلدهایی که متعلق به یک نمونه پیام خاص هستند تنها در سطر همان نمونه خروجی داده میشوند، در حالی که فیلدهایی که تحت هیچ نمونهای نیستند (مانند فیلدهای سطح فریم) در هر سطر تکرار میشوند. این گزینه تنها بر خروجی CSV مربوط به -T fields اعمال میشود. بهطور پیشفرض، هیچ تقسیمی انجام نمیشود.
-f <capture filter>
تنظیم عبارت فیلتر ضبط.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، عبارت فیلتر ضبط پیشفرض را تنظیم میکند. اگر بعد از یک گزینه -i استفاده شود، عبارت فیلتر ضبط را برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده تنظیم میکند. اگر عبارت فیلتر ضبط بهطور اختصاصی تنظیم نشود، عبارت فیلتر ضبط پیشفرض در صورت ارائه استفاده میشود.
نامهای فیلتر ضبط از پیش تعریفشده، همانطور که در مورد منوی گرافیکی Capture→Capture Filters نشان داده شده است، میتواند با قرار دادن پیشوند "predef:" به عنوان آرگومان استفاده شود. مثال: tshark -f "predef:MyPredefinedHostOnlyFilter"
-F <file format>
-g
-G <report type>
گزینه -G باعث میشود TShark یکی از چندین نوع واژهنامه (glossary) را تخلیه (dump) کرده و سپس خارج شود. تعیین نوع واژهنامه اکنون اجباری است؛ نسخههای قبلی در صورت عدم ارائه نوع، گزارش fields را بهطور پیشفرض تولید میکردند. به استثنای یک مورد، گزارشها پیکربندی فعلی را منعکس میکنند، از جمله آنچه توسط گزینه -C داده شده یا توسط گزینههای دیگر خط فرمان اصلاح شده است. استفاده از نوع گزارش help تمام انواع گزارشهای موجود را فهرست میکند.
انواع گزارشهای موجود عبارتند از:
column-formats قالبهای ستونی قابل درک برای TShark را تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
این گزارش با یک مثال کاربردی دنبال میشود که نشان میدهد چگونه میتوان ستونها را با لغو کردن مقدار ترجیحی gui.column.format با -o تغییر داد.
currentprefs نسخهای از فایل ترجیحات جاری را در stdout تخلیه میکند.
decodes ارتباطات «نوع لایه»/«رمزگشایی به عنوان» را در stdout تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
defaultprefs یک فایل ترجیحات پیشفرض را در stdout تخلیه میکند. این گزارش تحت تأثیر سایر آرگومانهای خط فرمان قرار نمیگیرد.
dissectors فهرستی از تشریحکنندههای ثبتشده را در stdout تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
dissector-tables فهرستی از جدولهای تشریحکننده را در stdout تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
elastic-mapping[,filter] فایل نگاشت ElasticSearch را در stdout تخلیه میکند. فیلدهایی که در حالت پیشفرض (رشته) قرار میگیرند نگاشت نخواهند شد.
filter یک فهرست اختیاری از نامهای فیلتر پروتکل جداشده با کاما است که فایل نگاشت تولیدشده را به پروتکلهای مشخصشده محدود میکند، تا از ایجاد یک فایل نگاشت حجیم که ممکن است برخی نرمافزارها (مانند Kibana) را دچار اختلال کند جلوگیری شود؛ مانند:
tshark -G elastic-mapping,ip,udp,dns
enterprises جدول شماره شرکتهای خصوصی (PEN) متعلق به IANA را تخلیه میکند.
fieldcount تعداد فیلدهای سرآیند را در stdout تخلیه میکند.
fields[,prefix] محتوای پایگاه داده ثبت را در stdout تخلیه میکند. یک برنامه مستقل میتواند این خروجی را گرفته و آن را به جدولهای مناسب، HTML یا موارد دیگر قالببندی کند. در هر سطر یک رکورد وجود دارد. هر رکورد یا یک پروتکل است یا یک فیلد سرآیند که با فیلد اول از یکدیگر متمایز میشوند. فیلدها با تب جدا شدهاند.
پروتکلها (Protocols)
فیلد ۱
فیلد ۲
فیلد ۳
فیلدهای سرآیند (Header Fields)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
فیلد ۷
فیلد ۸
یک آرگومان پیشوند جستجوی اختیاری را میتوان به fields داد، که در این صورت خروجی به پروتکلها و فیلدهایی محدود میشود که نام اختصاری آنها با پیشوند جستجو آغاز شود.
خروجی جستجو (Search Output)
فیلد ۱
فیلد ۲
folders پوشههای مختلف مورد استفاده توسط TShark را تخلیه میکند. این اساساً همان دادههایی است که در برگه About | Folders وایرشارک گزارش میشود. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
ftypes مقادیر "ftypes" (انواع پایه یا fundamental types) که برای TShark قابل درک هستند را تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
heuristic-decodes رمزگشاییهای اکتشافی (heuristic decodes) نصبشده در حال حاضر را تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
help انواع گزارشهای موجود را نمایش میدهد.
manuf جدول جستجوی آدرس MAC را در قالب manuf تخلیه میکند.
plugins افزونههای نصبشده کنونی را تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
profiles[,filter] فهرستی از پروفایلها را تخلیه میکند. انواع خاصی از پروفایلها را میتوان با فیلترهای "global"، "personal" یا "all" فهرست کرد. بهطور پیشفرض، "all" نمایش داده میشود.
فیلد ۱
فیلد ۲
protocols پروتکلهای موجود در پایگاه داده ثبت را در stdout تخلیه میکند. یک برنامه مستقل میتواند این خروجی را گرفته و آن را به جدولهای مناسب یا HTML یا هر قالب دیگری تبدیل کند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
services جدول سرویسهای انتقال (پورت) TCP، UDP و SCTP را تخلیه میکند.
values مقادیر value_strings، range_strings یا رشتههای درستی/نادرستی (true/false) را برای فیلدهایی که آنها را دارند تخلیه میکند. در هر سطر یک رکورد وجود دارد. فیلدها با تب جدا شدهاند. سه نوع رکورد وجود دارد: رشته مقدار (Value String)، رشته بازه (Range String) و رشته درستی/نادرستی (True/False String). فیلد اول، یعنی 'V'، 'R' یا 'T'، نوع رکورد را مشخص میکند.
رشتههای مقدار (Value Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
رشتههای بازه (Range Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
رشتههای درستی/نادرستی (True/False Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
-h|--help
-H <input hosts file>
خواندن فهرستی از مدخلها از یک فایل "hosts"، که سپس در یک فایل ضبط نوشته خواهند شد. مستلزم گزینه -W n است. میتواند چندین بار فراخوانی شود.
قالب فایل "hosts" در <https://en.wikipedia.org/wiki/Hosts_(file)>. مستند شده است.
-i|--interface <capture interface> | -
تنظیم نام رابط شبکه یا لولهای (pipe) که برای ضبط زنده بستهها استفاده میشود.
نامهای رابطهای شبکه باید با یکی از نامهای فهرستشده در "tshark -D" (که در بالا توضیح داده شد) مطابقت داشته باشند؛ یک شماره که توسط "tshark -D" گزارش میشود نیز میتواند استفاده شود.
اگر هیچ رابطی مشخص نشود، TShark فهرست رابطها را جستجو کرده، و در صورت وجود رابطهای غیر loopback اولین آنها را انتخاب میکند، و در صورت عدم وجود رابطهای غیر loopback اولین رابط loopback را برمیگزیند. اگر اصلاً هیچ رابطی وجود نداشته باشد، TShark خطایی گزارش میدهد و عملیات ضبط را آغاز نمیکند.
نامهای لوله باید یا نام یک FIFO (لوله نامگذاریشده) باشند یا "-" برای خواندن دادهها از ورودی استاندارد. در سیستمهای Windows، نام لولهها باید به صورت "\\.\pipe\pipename" باشد. دادههای خواندهشده از لولهها باید در قالب استاندارد pcapng یا pcap باشند. دادههای pcapng باید همان ترتیب بایت (endianness) میزبان ضبطکننده را داشته باشند.
این گزینه میتواند چندین بار تکرار شود. هنگام ضبط از چندین رابط، فایل ضبط در قالب pcapng ذخیره خواهد شد.
-I|--monitor-mode
قرار دادن رابط در «حالت پایشگر» (monitor mode)؛ این قابلیت تنها روی رابطهای Wi-Fi با استاندارد IEEE 802.11 و در برخی سیستمهای عامل پشتیبانی میشود.
توجه داشته باشید که در حالت پایشگر ممکن است ارتباط آداپتور از شبکهای که با آن مرتبط است قطع شود، به طوری که نتوانید از هیچ شبکه بیسیمی با آن آداپتور استفاده کنید. این امر در صورتی که در حالت پایشگر ضبط میکنید و با آداپتور دیگری به شبکه دیگری متصل نیستید، میتواند از دسترسی به فایلها روی یک سرور شبکه، یا تحلیل نامهای میزبان یا آدرسهای شبکه جلوگیری کند.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، حالت پایشگر را برای تمام رابطها فعال میکند. اگر بعد از یک گزینه -i استفاده شود، حالت پایشگر را برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده است فعال میسازد.
-j <protocol match filter>
فیلتر تطبیق پروتکل که برای انواع فایلهای خروجی ek|json|jsonraw|pdml استفاده میشود. تنها گره والد پروتکل گنجانده میشود. گرههای فرزند تنها در صورتی گنجانده میشوند که بهطور صریح در فیلتر مشخص شده باشند.
مثال: tshark -T json -j "ip ip.flags http"
-J <protocol match filter>
فیلتر سطح بالای پروتکل که برای انواع فایلهای خروجی ek|json|jsonraw|pdml استفاده میشود. گره والد پروتکل و تمام گرههای فرزند گنجانده میشوند. پروتکلهای سطح پایینتر باید بهطور صریح در فیلتر مشخص شوند.
مثال: tshark -T pdml -J "tcp http"
-l
تخلیه آنی (flush) خروجی استاندارد پس از چاپ اطلاعات هر بسته. (اگر -V مشخص شده باشد، این حالت دقیقاً بافر سطری نیست؛ با این حال، اگر -V مشخص نشده باشد مانند بافر سطری عمل میکند، زیرا برای هر بسته تنها یک سطر چاپ میشود، و از آنجا که -l معمولاً هنگام هدایت خروجی با لوله (pipe) از یک ضبط زنده به یک برنامه یا اسکریپت استفاده میشود تا خروجی یک بسته به محض مشاهده و تشریح آن نمایش یابد، باید به خوبی بافر سطری واقعی کار کند. ما این کار را به عنوان راهحلی برای یک نقص در کتابخانه C مایکروسافت ویژوال C++ انجام میدهیم.) این گزینه همچنین --update-interval را روی 0 میلیثانیه تنظیم میکند.
این گزینه میتواند هنگام هدایت خروجی TShark با لوله به برنامهای دیگر مفید باشد، زیرا به این معنی است که برنامه مقصد، دادههای تشریحشده یک بسته را به محض اینکه TShark آن را ببیند و آن خروجی را تولید کند دریافت میکند، نه اینکه تنها زمانی که بافر خروجی استاندارد حاوی آن دادهها پر شود آن را ببیند.
-L|--list-data-link-types
-o <preference>:<value>
تنظیم یک مقدار ترجیحی (preference)، با اولویت نسبت به مقدار پیشفرض و هر مقداری که از یک فایل ترجیحات خوانده شده باشد. آرگومان این گزینه رشتهای به شکل prefname:value است، که در آن prefname نام ترجیح (همان نامی که در فایل ترجیحات ظاهر میشود) و value مقداری است که باید روی آن تنظیم شود.
نکته
TShark
ترجیحات را
ذخیره
نمیکند،
بنابراین
از این
گزینه برای
تغییرات
موقت
در یک بار
اجرا
استفاده
کنید. برای
تنظیم
دائمی یک
ترجیح، آن
را در واسط
گرافیکی Wireshark
تغییر دهید
یا
مستقیماً
فایل
ترجیحات را
ویرایش
کنید، و در
صورتی که
برای شرایط
مختلف به
مجموعههای
متفاوتی از
ترجیحات
نیاز
دارید،
چندین
پروفایل
پیکربندی
بسازید.
-O <protocols>
مشابه گزینه -V است، اما باعث میشود TShark تنها نمای تفصیلی از فهرست جداشده با کامای protocols مشخصشده را نمایش دهد، و برای همه پروتکلهای دیگر تنها سطر تفصیلی سطح بالا را نشان دهد، به جای اینکه نمای تفصیلی همه پروتکلها را ارائه کند. برای یافتن نامهای اختصاری پروتکلهایی که میتوانید مشخص کنید، از خروجی "tshark -G protocols" استفاده کنید.
-p|--no-promiscuous-mode
رابط را در حالت بیقید (promiscuous mode) قرار ندهید. توجه داشته باشید که رابط ممکن است به دلیل دیگری در حالت بیقید باشد؛ بنابراین، -p نمیتواند تضمین کند که تنها ترافیک ضبطشده، ترافیک ارسالشده به یا از دستگاهی است که TShark روی آن در حال اجراست، یا ترافیک پخشی (broadcast) و ترافیک چندپخشی (multicast) دریافتی توسط آن دستگاه.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، هیچ رابطی در حالت بیقید قرار نخواهد گرفت. اگر بعد از یک گزینه -i استفاده شود، رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده است در حالت بیقید قرار نمیگیرد.
-P|--print
رمزگشایی و نمایش خلاصه یا جزئیات بسته، حتی هنگام نوشتن دادههای خام بسته با استفاده از گزینه -w، و حتی اگر خروجی بسته به روش دیگری با -Q سرکوب شده باشد.
-q
هنگام ضبط بستهها، شمارش مداوم بستههای ضبطشده که معمولاً هنگام ذخیره ضبط در یک فایل نشان داده میشود را نمایش ندهید؛ در عوض، تنها در پایان ضبط، تعداد بستههای ضبطشده را نمایش دهید. در سیستمهایی که از سیگنال SIGINFO پشتیبانی میکنند (مانند BSDهای مختلف)، میتوانید با فشردن نویسه «وضعیت» خود (معمولاً control-T، هرچند ممکن است دستکم در برخی BSDها بهطور پیشفرض غیرفعال باشد، بنابراین باید صریحاً آن را برای استفاده تنظیم کنید) کاری کنید که تعداد فعلی نمایش داده شود.
هنگام خواندن یک فایل ضبط یا هنگام ضبط و عدم ذخیره در یک فایل، اطلاعات بسته را چاپ نکنید؛ این حالت زمانی مفید است که از گزینه -z برای محاسبه آمار استفاده میکنید و نمیخواهید اطلاعات بسته چاپ شود، بلکه تنها آمار را میخواهید.
-Q
هنگام ضبط بستهها، پیام اولیه در خطای استاندارد که نشان میدهد ضبط روی کدام رابطها در حال انجام است، شمارش مداوم بستههای ضبطشده هنگام ذخیره ضبط در یک فایل، و پیام نهایی که تعداد بستههای ضبطشده را ارائه میدهد، نمایش ندهید. تنها خطاهای واقعی در خطای استاندارد نمایش داده میشوند.
این گزینه خروجی کمتری نسبت به گزینه -q تولید میکند، بنابراین نام رابط و تعداد کل بستهها در پایان ضبط به stderr ارسال نمیشوند.
هنگام خواندن یک فایل ضبط، یا هنگام ضبط و عدم ذخیره در یک فایل، اطلاعات بسته را چاپ نکنید؛ این حالت زمانی مفید است که از گزینه -z برای محاسبه آمار استفاده میکنید و نمیخواهید اطلاعات بسته چاپ شود، بلکه تنها آمار را میخواهید.
-r|--read-file <infile>
خواندن دادههای بسته از infile؛ میتواند هر قالب فایل ضبط پشتیبانیشدهای باشد (از جمله فایلهای فشرده). استفاده از لولههای نامگذاریشده یا stdin (-) در اینجا امکانپذیر است اما تنها با قالبهای فایل ضبط خاصی (بهویژه قالبهایی که بتوان بدون حرکت به عقب خواند).
راهنمایی
خواندن یک
ضبط زنده از
خروجی
استاندارد
یک فرآیند
دیگر از
طریق یک
لوله (pipe)
میتواند
محدودیتهایی
را که در حین
ضبط زنده بر
TShark اعمال
میشود،
مانند
قالبهای
فایل یا
فشردهسازی،
دور بزند.
-R|--read-filter <Read filter>
اعمال فیلتر مشخصشده (که از قواعد نحوی فیلترهای خواندن/نمایش استفاده میکند، نه فیلترهای ضبط) در طول اولین گذر تحلیل. بستههایی که با فیلتر تطابق ندارند برای گذرهای بعدی در نظر گرفته نمیشوند. این گزینه تنها با چندین گذر تحلیل معنی دارد، به -2 مراجعه کنید. برای فیلترسازی معمولی در تشریح تکگذره به جای آن از -Y استفاده کنید.
توجه داشته باشید که فیلدهای رو به جلو (forward-looking) مانند 'response in frame #' را نمیتوان با این فیلتر استفاده کرد، زیرا در زمان اعمال این فیلتر هنوز محاسبه نشدهاند.
-s|--snapshot-length <capture snaplen>
تنظیم طول پیشفرض برش بسته (snapshot length) برای استفاده هنگام ضبط دادههای زنده. حداکثر snaplen بایت از هر بسته شبکه در حافظه خوانده شده یا روی دیسک ذخیره میشود. مقدار 0 طول برش را روی 262144 تنظیم میکند تا بسته بهطور کامل ضبط شود؛ این مقدار پیشفرض است.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، طول برش پیشفرض را تنظیم میکند. اگر بعد از یک گزینه -i استفاده شود، طول برش را برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده تنظیم میکند. اگر طول برش بهطور اختصاصی تنظیم نشود، طول برش پیشفرض در صورت ارائه استفاده خواهد شد.
-S <separator>
-T ek|fields|json|jsonraw|pdml|ps|psml|tabs|text
تنظیم قالب خروجی هنگام مشاهده دادههای رمزگشاییشده بسته. گزینهها یکی از موارد زیر است:
ek قالب JSON جداشده با خط جدید (NDJSON) برای وارد کردن انبوه به Elasticsearch. میتوان از آن همراه با -j یا -J برای تعیین اینکه کدام پروتکلها گنجانده شوند یا با -x برای گنجاندن دادههای خام بسته با کدگذاری هگز استفاده کرد. اگر -P مشخص شود تنها خلاصه بسته را چاپ میکند، و با مشخص کردن هر دو گزینه -P و -V، خلاصه بسته و جزئیات بسته را چاپ میکند. اگر هیچکدام از گزینههای -P یا -V استفاده نشوند، تنها جزئیات بسته را چاپ میکند. مثال کاربرد برای وارد کردن دادهها به Elasticsearch:
tshark -T ek -j "http tcp ip" -P -V -x -r file.pcap > file.json curl -H "Content-Type: application/x-ndjson" -XPOST http://elasticsearch:9200/_bulk --data-binary "@file.json"
ابزار Elastic نیازمند یک فایل نگاشت است که به عنوان الگو برای نمایه *-packets بارگیری شود تا انواع دادههای Wireshark را به انواع دادههای elastic تبدیل کند. این فایل میتواند بهطور خودکار با دستور "tshark -G elastic-mapping" تولید شود. از آنجا که فایل نگاشت میتواند بسیار حجیم باشد، پروتکلها را میتوان با استفاده از گزینه --elastic-mapping-filter انتخاب کرد:
tshark -G elastic-mapping --elastic-mapping-filter ip,udp,dns
یا افزودن مستقیم فیلتر به گزینه -G elastic-mapping:
tshark -G elastic-mapping,ip,udp,dns
fields مقادیر فیلدهای مشخصشده با گزینه -e، در قالبی که توسط گزینه -E مشخص شده است. به عنوان مثال،
tshark -T fields -E separator=, -E quote=d
خروجی مقادیر جداشده با کاما (CSV) مناسب برای وارد کردن به برنامه صفحهگسترده دلخواه شما تولید خواهد کرد.
json قالب فایل JSON. میتوان از آن همراه با -j یا -J برای تعیین اینکه کدام پروتکلها گنجانده شوند یا با گزینه -x برای گنجاندن دادههای خام بسته با کدگذاری هگز استفاده کرد. مثال کاربرد:
tshark -T json -r file.pcap tshark -T json -j "http tcp ip" -x -r file.pcap
jsonraw قالب فایل JSON که تنها شامل دادههای خام بسته با کدگذاری هگز است. میتوان از آن با -j یا -J برای مشخص کردن اینکه کدام پروتکلها گنجانده شوند استفاده کرد. مثال کاربرد:
tshark -T jsonraw -r file.pcap tshark -T jsonraw -j "http tcp ip" -x -r file.pcap
pdml زبان نشانهگذاری جزئیات بسته (Packet Details Markup Language)، یک قالب مبتنی بر XML برای جزئیات یک بسته رمزگشاییشده. این اطلاعات معادل جزئیات بسته چاپشده با گزینه -V است. استفاده از گزینه --color ویژگیهای رنگی را به خروجی pdml اضافه میکند. این ویژگیها غیراستاندارد هستند.
ps فرمت PostScript برای خلاصه تکخطی قابل خواندن توسط انسان از هر بسته، یا نمای چندخطی از جزئیات هر یک از بستهها، بسته به اینکه گزینه -V مشخص شده باشد یا خیر.
psml زبان نشانهگذاری خلاصه بسته (Packet Summary Markup Language)، یک قالب مبتنی بر XML برای اطلاعات خلاصه یک بسته رمزگشاییشده. این اطلاعات معادل اطلاعات نشاندادهشده در خلاصه تکخطی چاپشده بهطور پیشفرض است. استفاده از گزینه --color ویژگیهای رنگی را به خروجی pdml اضافه میکند. این ویژگیها غیراستاندارد هستند.
tabs مشابه گزارش پیشفرض text، با این تفاوت که خلاصه تکخطی قابل خواندن توسط انسان از هر بسته، حاوی یک نویسه تب افقی ASCII (0x09) به عنوان جداکننده بین هر ستون خواهد بود.
text متن خلاصه تکخطی قابل خواندن توسط انسان از هر بسته، یا یک نمای چندخطی از جزئیات هر یک از بستهها، بسته به اینکه آیا گزینه -V مشخص شده باشد یا خیر. این حالت پیشفرض است.
--temp-dir <directory>
دایرکتوریای را مشخص میکند که فایلهای موقت (از جمله فایلهای ضبط) باید در آن نوشته شوند. رفتار پیشفرض در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، استفاده از متغیر محیطی $TMPDIR در صورت تنظیم بودن، و در غیر این صورت استفاده از پیشفرض سیستم (معمولاً /tmp) است. در Windows، از متغیر محیطی %TEMP% استفاده میشود، که معمولاً بهطور پیشفرض %USERPROFILE%\AppData\Local\Temp است.
-U <tap name>
صدور PDU؛ بستههای PDU را بر اساس نام شنودگر (tap name) دادهشده از infile به outfile صادر میکند. برای فیلتر کردن از -Y استفاده کنید.
برای دریافت فهرستی از نامهای موجود، یک نام شنودگر خالی "" یا نام شنودگر ? را وارد کنید.
-v|--version
-V
-w <outfile> | -
نوشتن دادههای خام بسته در outfile، یا در خروجی استاندارد اگر outfile برابر '-' باشد. از گزینههای -F و --compress میتوان برای کنترل قالب فایل و روش فشردهسازی استفاده کرد. اگر مورد دوم داده نشود، ممکن است از پسوند فایل برای استنتاج الگوریتم فشردهسازی مورد نظر (در صورت پشتیبانی) استفاده شود؛ مانند یک آرشیو gzip برای '.gz'.
نکته
گزینه -w
دادههای
خام بسته را
ارائه
میدهد نه
متن. اگر
خواهان
خروجی متنی
هستید،
باید خروجی
استاندارد
را تغییر
مسیر دهید
(مثلاً با
استفاده از
'>')؛ از گزینه
-w برای این
منظور
استفاده
نکنید.
-W <file format option>
ذخیره اطلاعات اضافی در فایل در صورتی که قالب فایل از آن پشتیبانی کند. برای مثال،
tshark -F pcapng -W n
رکوردهای تحلیل نام میزبان را همراه با بستههای ضبطشده ذخیره خواهد کرد.
نسخههای آینده TShark ممکن است قالب ضبط را در صورت لزوم بهطور خودکار به pcapng تغییر دهند.
آرگومان رشتهای است که میتواند حاوی حرف زیر باشد:
n نوشتن اطلاعات تحلیل آدرس شبکه (تنها در pcapng)
-x
--hexdump <hexoption>
باعث میشود TShark یک تخلیه هگز و ASCII از دادههای بسته را چاپ کند، با امکان انتخاب اینکه کدام منابع داده تخلیه شوند، متن تخلیه ASCII چگونه قالببندی یا حذف شود، و اینکه آیا برچسب زمانی فریم به عنوان دیباچه چاپ شود یا خیر.
این گزینه (و -x) میتوانند چندین بار در خط فرمان استفاده شوند، و تخلیه هگز تنها یک بار چاپ خواهد شد. در صورت وجود گزینههای متناقض، آخرین گزینههای دادهشده استفاده خواهند شد. مقادیر ممکن برای <hexoption> عبارتند از:
all
frames
ascii
delimit
noascii
time
notime
help
استفاده از --hexdump <hexoption> بهویژه برای تولید خروجی مفیدی کاربرد دارد که میتواند برای ایجاد یک فایل pcap یا pcapng از نوع فایلی مانند Microsoft NetMon 2.x استفاده شود که TShark و Wireshark میتوانند آن را بخوانند اما نمیتوانند مستقیماً آن را "Save as" کرده یا بستهها را از آن صادر کنند.
مثالها:
تولید خروجی hexdump، تنها با منبع داده فریم، با متن تخلیه ASCII جداشده، و با بلوک هگز هر فریم که با یک برچسب زمانی خوانا در منطقه زمانی محلی پیشوندگذاری شده است تا مستقیماً توسط ابزار کاربردی text2pcap قابل استفاده باشد:
tshark ... --hexdump frames --hexdump delimit --hexdump time -t ad \
| text2pcap -t 'ISO' - MYNEWPCAPNG
تولید خروجی hexdump، تنها با منبع داده فریم، با متن پیشفرض تخلیه ASCII بدون جداکننده، و با بلوک هگز هر فریم که با یک برچسب زمانی خوانا در UTC پیشوندگذاری شده است تا مستقیماً با گزینه -a توسط ابزار کاربردی text2pcap قابل استفاده باشد:
tshark ... --hexdump frames --hexdump time -t ud \
| text2pcap -a -t 'ISO' - MYNEWPCAPNG
تولید خروجی hexdump، تنها با منبع داده فریم، بدون متن تخلیه ASCII، و با بلوک هگز هر فریم که با یک برچسب زمانی epoch پیشوندگذاری شده است تا مستقیماً توسط ابزار کاربردی text2pcap قابل استفاده باشد:
tshark ... --hexdump frames --hexdump noascii --hexdump time -t e \
| text2pcap -t %s.%f - MYNEWPCAPNG
-X <eXtension options>
مشخص کردن گزینهای برای ارسال به یک ماژول TShark. گزینه افزونه (eXtension) به شکل extension_key:value است، که در آن extension_key میتواند یکی از موارد زیر باشد:
lua_script:lua_script_filename به TShark دستور میدهد اسکریپت دادهشده را علاوه بر اسکریپتهای پیشفرض Lua بارگیری کند.
lua_scriptnum:argument به TShark دستور میدهد آرگومان دادهشده را به اسکریپت lua شناساییشده با 'num' ارسال کند، که ترتیب شاخص شمارهگذاری دستور 'lua_script' است. برای مثال، اگر تنها یک اسکریپت با '-X lua_script:my.lua' بارگیری شده باشد، آنگاه '-X lua_script1:foo' رشته 'foo' را به اسکریپت 'my.lua' ارسال خواهد کرد. اگر دو اسکریپت بارگیری شده باشند، مانند '-X lua_script:my.lua' و '-X lua_script:other.lua' با همین ترتیب، آنگاه '-X lua_script2:bar' رشته 'bar' را به دومین اسکریپت lua یعنی 'other.lua' ارسال خواهد کرد.
read_format:file_format به TShark دستور میدهد از قالب فایل دادهشده برای خواندن فایل ورودی (فایل ارائهشده در گزینه دستور -r) استفاده کند. عدم ارائه آرگومان file_format یا ارائه یک آرگومان نامعتبر، فهرستی از قالبهای فایل موجود را نمایش میدهد. برای مثال،
tshark -r rtcp_broken.pcapng -X read_format:"MIME Files Format" -V
ساختار داخلی فایل را نمایش میدهد و امکان دسترسی به فیلدهای file-pcapng را فراهم میسازد.
-y|--linktype <capture link type>
تنظیم نوع پیوند داده (data link type) برای استفاده هنگام ضبط بستهها. مقادیر گزارششده توسط -L مقادیری هستند که میتوانند استفاده شوند.
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، نوع پیوند ضبط پیشفرض را تنظیم میکند. اگر بعد از یک گزینه -i استفاده شود، نوع پیوند ضبط را برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده است تنظیم میکند. اگر نوع پیوند ضبط بهطور اختصاصی تنظیم نشود، نوع پیوند ضبط پیشفرض در صورت ارائه استفاده میشود.
-Y|--display-filter <displaY filter>
اعمال فیلتر مشخصشده (که از قواعد نحوی فیلترهای خواندن/نمایش استفاده میکند، نه فیلترهای ضبط) پیش از چاپ شکل رمزگشاییشده بستهها یا نوشتن بستهها در یک فایل. بستههای منطبق با فیلتر چاپ شده یا در فایل نوشته میشوند؛ بستههایی که بستههای منطبق به آنها وابسته هستند (مانند قطعات)، چاپ نمیشوند اما در فایل نوشته میشوند؛ بستههایی که با فیلتر تطابق ندارند و وابستگی به آنها وجود ندارد، به جای چاپ یا نوشته شدن، دور ریخته میشوند.
از این گزینه به جای -R برای فیلترسازی با استفاده از تحلیل تکگذره استفاده کنید. اگر در حال انجام تحلیل دوگذره هستید (به -2 مراجعه کنید)، تنها بستههای منطبق با فیلتر خواندن (در صورت وجود) در برابر این فیلتر بررسی خواهند شد.
-M <auto session reset>
بازنشانی خودکار نشست داخلی پس از رسیدن به تعداد بستههای مشخصشده. برای مثال،
tshark -M 100000
نشست را در هر ۱۰۰۰۰۰ بسته بازنشانی میکند.
این قابلیت از تحلیل دوگذره -2 پشتیبانی نمیکند.
-z <statistics>
واداشتن TShark به جمعآوری انواع مختلف آمار و نمایش نتیجه پس از پایان خواندن فایل ضبط. اگر در حال خواندن یک فایل ضبط هستید و تنها میخواهید آمار چاپ شود نه اطلاعات مربوط به هر بسته، از گزینه -q استفاده کنید.
آمارها مستقل از خروجی عادی به ازای هر بسته و بدون تأثیرپذیری از فیلتر نمایش اصلی محاسبه میشوند. با این حال، بیشتر آنها پارامتر اختیاری filter مخصوص خود را دارند، و تنها بستههایی که با آن فیلتر (و هر فیلتر ضبط یا فیلتر خواندن) تطابق داشته باشند در محاسبات استفاده خواهند شد.
توجه داشته باشید که گزینه -z proto متفاوت است - این گزینه باعث جمعآوری و چاپ آمار پس از تکمیل ضبط نمیشود، بلکه خروجی خلاصه بسته عادی را تغییر میدهد تا شامل مقادیر فیلدهای مشخصشده با این گزینه باشد. بنابراین نباید از گزینه -q استفاده کنید، زیرا آن گزینه چاپ خروجی خلاصه عادی بسته را متوقف میکند؛ همچنین نباید از گزینه -V استفاده کنید، زیرا باعث میشود اطلاعات تفصیلی بسته به جای اطلاعات خلاصه چاپ شود.
برخی از آمارهای پیادهسازیشده کنونی عبارتند از:
-z help
-z afp,srt[,filter]
-z ancp,tree[,filter]
-z ansi_a,bsmap[,filter]
-z ansi_a,dtap[,filter]
-z ansi_map[,filter]
-z asap,stat[,filter]
-z bacapp_instanceid,tree[,filter]
-z bacapp_ip,tree[,filter]
-z bacapp_objectid,tree[,filter]
-z bacapp_service,tree[,filter]
-z calcappprotocol,stat[,filter]
-z camel,counter[,filter]
-z camel,srt[,filter]
-z collectd,tree[,filter]
-z componentstatusprotocol,stat[,filter]
-z conv,type[,filter]
ایجاد یک جدول که تمام گفتگوهای (conversations) مشاهدهشده در ضبط را فهرست میکند. type نوع نقطه پایانی گفتگو را مشخص میکند که میخواهیم برای آن آمار تولید کنیم؛ موارد پشتیبانیشده در حال حاضر عبارتند از:
"bluetooth" Bluetooth addresses "bpv7" Bundle Protocol Version 7 addresses "dccp" DCCP/IP socket pairs Both IPv4 and IPv6 are supported "dnp3" DNP3 addresses "eth" Ethernet addresses "fc" Fibre Channel addresses "fddi" FDDI addresses "ip" IPv4 addresses "ipv6" IPv6 addresses "ipx" IPX addresses "jxta" JXTA message addresses "ltp" LTP addresses "mptcp" Multipath TCP connections "ncp" NCP connections "openSAFETY" openSAFETY addresses "rsvp" RSVP connections "sctp" SCTP/IP socket pairs Both IPv4 and IPv6 are supported "sll" Linux "cooked mode" capture addresses "tcp" TCP/IP socket pairs Both IPv4 and IPv6 are supported "tr" Token Ring addresses "udp" UDP/IP socket pairs Both IPv4 and IPv6 are supported "usb" USB addresses "wlan" IEEE 802.11 addresses "wpan" IEEE 802.15.4 addresses "zbee_nwk" ZigBee Network Layer addresses
این جدول با یک سطر برای هر گفتگو ارائه میشود که تعداد فریمها/بایتها در هر جهت، تعداد کل فریمها/بایتها، زمان شروع نسبی و مدتزمان را نمایش میدهد. جدول بر اساس تعداد کل فریمها مرتب شده است.
-z credentials
-z dcerpc,srt,uuid,major.minor[,filter]
جمعآوری دادههای زمان پاسخ سرویس (SRT) برای فراخوانی/پاسخ رابط DCERPC با uuid و نسخه major.minor. دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر رویه، MinSRT، MaxSRT و AvgSRT.
مثال: -z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0 دادهها را برای رابط CIFS SAMR جمعآوری میکند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z dcerpc,srt,12345778-1234-abcd-ef00-0123456789ac,1.0,ip.addr==1.2.3.4 آمارهای SAMR SRT را برای یک میزبان خاص جمعآوری خواهد کرد.
-z dests,tree[,filter]
-z dhcp,stat[,filter]
-z diameter,avp[,cmd.code,field,field,...]
این گزینه امکان استخراج مهمترین فیلدهای diameter را از فایلهای ضبط حجیم فراهم میکند. دقیقاً یک سطر متنی برای هر پیام diameter با diameter.cmd.code منطبق چاپ خواهد شد.
کد دستور diameter خالی یا '*' را میتوان برای تطابق با هر diameter.cmd.code مشخص کرد.
مثال: -z diameter,avp استخراج مجموعه فیلدهای پیشفرض از پیامهای diameter.
مثال: -z diameter,avp,280 استخراج مجموعه فیلدهای پیشفرض از پیامهای diameter DWR.
مثال: -z diameter,avp,272 استخراج مجموعه فیلدهای پیشفرض از پیامهای diameter CC.
استخراج مهمترین فیلدها از پیامهای diameter CC:
tshark -r file.cap.gz -q -z diameter,avp,272,CC-Request-Type,CC-Request-Number,Session-Id,Subscription-Id-Data,Rating-Group,Result-Code
فیلدهای زیر برای هر پیام diameter چاپ خواهند شد:
"frame" Frame number. "time" Unix time of the frame arrival. "src" Source address. "srcport" Source port. "dst" Destination address. "dstport" Destination port. "proto" Constant string 'diameter', which can be used for post processing of tshark output. E.g. grep/sed/awk. "msgnr" seq. number of diameter message within the frame. E.g. '2' for the third diameter message in the same frame. "is_request" '0' if message is a request, '1' if message is an answer. "cmd" diameter.cmd_code, E.g. '272' for credit control messages. "req_frame" Number of frame where matched request was found or '0'. "ans_frame" Number of frame where matched answer was found or '0'. "resp_time" response time in seconds, '0' in case if matched Request/Answer is not found in trace. E.g. in the begin or end of capture.
گزینه -z diameter,avp بسیار سریعتر از گزینههای -V -T text یا -T pdml است.
گزینه -z diameter,avp بسیار قدرتمندتر از گزینههای -T field و -z proto,colinfo است.
وجود چندین پیام diameter در یک فریم پشتیبانی میشود.
وجود چند فیلد با نام یکسان درون یک پیام diameter پشتیبانی میشود، مانند diameter.Subscription-Id-Data یا diameter.Rating-Group.
نکته: گزینه tshark -q برای جلوگیری از خروجی پیشفرض TShark توصیه میشود.
-z diameter,srt[,filter]
-z dis,streams
-z dns,tree[,filter]
-z endpoints,type[,filter]
ایجاد یک جدول که تمام نقاط پایانی (endpoints) مشاهدهشده در ضبط را فهرست میکند. type نوع نقطه پایانی را مشخص میکند که میخواهیم برای آن آمار تولید کنیم؛ موارد پشتیبانیشده در حال حاضر عبارتند از:
"bluetooth" Bluetooth addresses "bpv7" Bundle Protocol Version 7 addresses "dccp" DCCP/IP socket pairs Both IPv4 and IPv6 are supported "dnp3" DNP3 addresses "eth" Ethernet addresses "fc" Fibre Channel addresses "fddi" FDDI addresses "ip" IPv4 addresses "ipv6" IPv6 addresses "ipx" IPX addresses "jxta" JXTA message addresses "ltp" LTP addresses "mptcp" Multipath TCP connections "ncp" NCP connections "openSAFETY" openSAFETY addresses "rsvp" RSVP connections "sctp" SCTP/IP socket pairs Both IPv4 and IPv6 are supported "sll" Linux "cooked mode" capture addresses "tcp" TCP/IP socket pairs Both IPv4 and IPv6 are supported "tr" Token Ring addresses "udp" UDP/IP socket pairs Both IPv4 and IPv6 are supported "usb" USB addresses "wlan" IEEE 802.11 addresses "wpan" IEEE 802.15.4 addresses "zbee_nwk" ZigBee Network Layer addresses
جدول با یک سطر برای هر نقطه پایانی ارائه میشود که تعداد کل بستهها/بایتها و تعداد بستهها/بایتها در هر جهت را نمایش میدهد. این جدول بر اساس تعداد کل بستهها مرتب شده است.
-z enrp,stat[,filter]
-z expert[,error|,warn|,note|,chat|,comment][,filter]
اطلاعات مربوط به همه گزارشهای کارشناسی (expert info) را جمعآوری کرده و آنها را به ترتیب، بر اساس سطح اهمیت (severity) گروهبندی و نمایش میدهد.
مثال: -z expert,sip موارد کارشناسی را در تمام سطوح اهمیت برای فریمهایی که با پروتکل sip تطابق دارند نمایش میدهد.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "expert,note,tcp" تنها موارد کارشناسی را برای فریمهایی جمعآوری میکند که شامل پروتکل tcp هستند و سطح اهمیت آنها note یا بالاتر است.
-z f1ap,tree[,filter]
-z f5_tmm_dist,tree[,filter]
-z f5_virt_dist,tree[,filter]
-z fc,srt[,filter]
-z flow,name,mode[,filter]
جریان داده بین دو گره را نمایش میدهد. خروجی مشابه قالب ASCII ذخیرهشده از طریق واسط گرافیکی است.
name نام جریان را مشخص میکند. میتواند یکی از موارد زیر باشد:
any All frames icmp ICMP icmpv6 ICMPv6 lbm_uim UIM tcp TCP
mode نوع آدرس را مشخص میکند. میتواند یکی از موارد زیر باشد:
standard Any address network Network address
مثال: -z flow,tcp,network جریان داده را برای تمام فریمهای TCP نشان میدهد
-z follow,prot,mode,filter[,range]
محتوای یک جریان (stream) را بین دو گره نمایش میدهد. دادههای ارسالشده توسط گره دوم با یک نویسه تب پیشوندگذاری میشوند تا از دادههای ارسالشده توسط گره اول متمایز شوند.
prot پروتکل انتقال را مشخص میکند. میتواند یکی از موارد زیر باشد:
tcp TCP udp UDP dccp DCCP tls TLS or SSL dtls DTLS http HTTP streams http2 HTTP/2 streams quic QUIC streams mp2t MPEG-2 TS PIDs mpeg-pes MPEG-2 Packetized Element Stream
نکته
اگرچه
راهنمای
کاربرد sip را
به عنوان یک
گزینه
معرفی
میکند،
فیلترهای
مناسب
جریان
پیادهسازی
نشدهاند،
بنابراین
تماسهای SIP
را
نمیتوان
در TShark دنبال
کرد و تنها
در Wireshark قابل
دنبال کردن
هستند.
mode حالت خروجی را مشخص میکند. میتواند یکی از موارد زیر باشد:
ascii ASCII output with dots for non-printable characters carray C arrays of chars ebcdic EBCDIC output with dots for non-printable characters hex Hexadecimal and ASCII data with offsets raw Hexadecimal data utf-8 UTF-8 output with REPLACEMENT CHARACTERs for invalid sequences yaml YAML format
از آنجا که خروجی در حالتهای ascii، ebcdic یا utf-8 ممکن است حاوی سطر جدید باشد، هر بخش از خروجی با طول آن به بایت به علاوه یک سطر جدید پیشوندگذاری میشود. (توجه داشته باشید که برای utf-8 این تعداد نویسههای UTF-8 نیست، و ممکن است به دلیل جایگزینی نویسههای نامعتبر با نویسههای جانشین، با طول ارسالشده متفاوت باشد).
filter جریانی را که باید نمایش داده شود مشخص میکند. سه قالب وجود دارد:
ip-addr0:port0,ip-addr1:port1 stream-index stream-index,substream-index
قالب اول آدرسهای IP و جفت پورتهای TCP، UDP یا DCCP را مشخص میکند. (پورتهای TCP برای TLS، HTTP و HTTP2 استفاده میشوند؛ پورتهای UDP برای DTLS، QUIC، MP2T و MPEG-PS استفاده میشوند). توجه داشته باشید که این قالب شامل تمام جریانهای چندگانهشده روی یک ۵-تایی (5-tuple) آدرس و پورت مشابه برای پروتکلهای انتقال دارای زیرجریان مانند HTTP/2، QUIC و MP2T خواهد بود. علاوه بر این، در پروتکل QUIC این قالب شامل تمام اتصالاتی است که در یک ۵-تایی یکسان مشترک هستند و مهاجرت اتصال (connection migration) را دنبال نمیکند.
قالب دوم شاخصهای جریان (stream indices) را مشخص میکند و برای TCP، UDP، DCCP، TLS، DTLS و HTTP استفاده میشود (پروتکل HTTP از شاخصهای جریان TCP استفاده میکند).
قالب سوم که جریانها و زیرجریانها را مشخص میکند، برای HTTP/2، QUIC، MP2T و MPEG-PES به دلیل استفاده از تکنیک چندگانهسازی استفاده میشود (شاخصهای جریان TCP و جریان HTTP/2 برای HTTP/2؛ شماره اتصال QUIC و شناسه جریان برای QUIC؛ جریان MP2T و PID برای MP2T و MPEG-PS).
range بهطور اختیاری مشخص میکند که کدام "تکهها" (chunks) از جریان باید نمایش داده شوند.
مثال: -z "follow,tcp,hex,1" محتوای دومین جریان TCP (اولین جریان، جریان ۰ است) را در قالب "hex" نمایش میدهد.
=================================================================== Follow: tcp,hex Filter: tcp.stream eq 1 Node 0: 200.57.7.197:32891 Node 1: 200.57.7.198:2906 00000000 00 00 00 22 00 00 00 07 00 0a 85 02 07 e9 00 02 ...".... ........ 00000010 07 e9 06 0f 00 0d 00 04 00 00 00 01 00 03 00 06 ........ ........ 00000020 1f 00 06 04 00 00 ...... 00000000 00 01 00 00 .... 00000026 00 02 00 00
مثال: -z "follow,tcp,ascii,200.57.7.197:32891,200.57.7.198:2906" محتوای یک جریان TCP بین 200.57.7.197 پورت 32891 و 200.57.7.98 پورت 2906 را نمایش میدهد.
=================================================================== Follow: tcp,ascii Filter: (omitted for readability) Node 0: 200.57.7.197:32891 Node 1: 200.57.7.198:2906 38 ..."..... ................ 4 ....
مثال: -z "follow,http2,hex,0,1" محتوای یک جریان HTTP/2 را در اولین نشست TCP (شاخص ۰) با شناسه جریان HTTP/2 برابر ۱ نمایش میدهد.
===================================================================
Follow: http2,hex
Filter: tcp.stream eq 0 and http2.streamid eq 1
Node 0: 172.16.5.1:49178
Node 1: 172.16.5.10:8443
00000000 00 00 2c 01 05 00 00 00 01 82 04 8b 63 c1 ac 2a ..,..... ....c..*
00000010 27 1d 9d 57 ae a9 bf 87 41 8c 0b a2 5c 2e 2e da '..W.... A...\...
00000020 e1 05 c7 9a 69 9f 7a 88 25 b6 50 c3 ab b6 25 c3 ....i.z. %.P...%.
00000030 53 03 2a 2f 2a S.*/*
00000000 00 00 22 01 04 00 00 00 01 88 5f 87 35 23 98 ac .."..... .._.5#..
00000010 57 54 df 61 96 c3 61 be 94 03 8a 61 2c 6a 08 2f WT.a..a. ...a,j./
00000020 34 a0 5b b8 21 5c 0b ea 62 d1 bf 4.[.!\.. b..
0000002B 00 40 00 00 00 00 00 00 01 89 50 4e 47 0d 0a 1a .@...... ..PNG...
-z fractalgeneratorprotocol,stat[,filter]
محاسبه آمار روی پروتکل Fractal Generator Protocol مربوط به Reliable Server Pooling. برای هر نوع پیام، تعداد، نرخ و سهم آن از بستهها و بایتها در میان تمام انواع پیامها، و نخستین و آخرین زمان دیده شدن آن را نمایش میدهد.
-z gsm_a
شمارش تعداد پیامهای GSM A-I/F از هر نوع در دستههای زیر: BSSMAP، DTAP Mobility Management، DTAP Radio Resource Management، DTAP Call Control، DTAP GPRS Mobility Management، DTAP SMS messages، DTAP GPRS Session Management، DTAP Supplementary Services، DTAP Special Conformance Testing Functions و SACCH Radio Resource Management.
برخلاف آمارهای تفکیکی برای هر رده که در ادامه میآید، این دستور تنها برای هر نوع پیامی که ظاهر شده یک سطر چاپ میکند، به جای اینکه سطرهایی با تعداد صفر را نیز شامل شود.
-z gsm_a,category[,filter]
شمارش تعداد پیامها از هر نوع در رده category از GSM A-I/F، که میتواند یکی از موارد زیر باشد:
bssmap BSSMAP dtap_cc DTAP Call Control dtap_gmm DTAP GPRS Mobility Management dtap_mm DTAP Mobility Management dtap_rr DTAP Radio Resource Management dtap_sacch SACCH Radio Resource Management dtap_sm DTAP GPRS Session Management dtap_sms DTAP Short Message Service dtap_ss DTAP Supplementary Services dtap_tp DTAP Special Conformance Testing Functions
-z gsm_map,operation[,filter]
-z gtp,srt[,filter]
-z gtpv2,srt[,filter]
-z h225,counter[,filter]
شمارش پیامهای ITU-T H.225 و دلایل آنها. در ستون اول، فهرستی از پیامهای H.225 و دلایل پیامهای H.225 که در فایل ضبط جاری رخ دادهاند نمایش مییابد. تعداد رخدادهای هر پیام یا دلیل در ستون دوم نمایش داده میشود.
مثال: -z h225,counter.
مثال: استفاده از -z "h225,counter,ip.addr==1.2.3.4" تنها برای جمعآوری آمار بستههای H.225 مبادلهشده توسط میزبان با آدرس IP 1.2.3.4 .
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
-z h225_ras,rtd[,filter]
جمعآوری دادههای تاخیر زمان پاسخ (RTD) برای ITU-T H.225 RAS. دادههای جمعآوریشده عبارتند از تعداد فراخوانیهای هر نوع پیام ITU-T H.225 RAS، حداقل RTD، حداکثر RTD، میانگین RTD، حداقل در فریم، و حداکثر در فریم. همچنین تعداد درخواستهای باز (بدون پاسخ)، پاسخهای دور ریختهشده (پاسخهای بدون درخواست منطبق) و پیامهای تکراری را دریافت خواهید کرد.
مثال: tshark -z h225_ras,rtd
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "h225_ras,rtd,ip.addr==1.2.3.4" تنها برای جمعآوری آمار بستههای ITU-T H.225 RAS مبادلهشده توسط میزبان در آدرس IP 1.2.3.4 .
-z hart_ip,tree[,filter]
-z hosts[,ip][,ipv4][,ipv6]
تخلیه هرگونه آدرس تحلیلشده IPv4 و/یا IPv6 در قالب "hosts". بهطور پیشفرض هم آدرسهای IPv4 و هم IPv6 تخلیه میشوند. آرگومان "ip" تنها آدرسهای IPv4 را تخلیه میکند.
آدرسها از چندین منبع جمعآوری میشوند، از جمله فایلهای استاندارد "hosts" و ترافیک ضبطشده. تحلیل نامها باید فعال باشد، برای مثال از طریق گزینه -n.
-z hpfeeds,tree[,filter]
-z http,stat[,filter]
-z http,tree[,filter]
-z http_req,tree[,filter]
-z http_seq,tree[,filter]
-z http_srv,tree[,filter]
-z http2,tree[,filter]
-z icmp,srt[,filter]
محاسبه کل درخواستهای echo، پاسخها، اتلاف و درصد اتلاف ICMP، و همچنین حداقل، حداکثر، میانگین، میانه و انحراف استاندارد آماری SRT که معمولاً توسط دستور ping ارائه میشود.
مثال: -z icmp,srt,ip.src==1.2.3.4 آمارهای ICMP SRT را برای بستههای درخواست echo با مبدأ یک میزبان خاص جمعآوری میکند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
-z icmpv6,srt[,filter]
محاسبه کل درخواستهای echo، پاسخها، اتلاف و درصد اتلاف ICMPv6، و همچنین حداقل، حداکثر، میانگین، میانه و انحراف استاندارد آماری SRT که معمولاً توسط دستور ping ارائه میشود.
مثال: -z icmpv6,srt,ipv6.src==fe80::1 آمارهای ICMPv6 SRT را برای بستههای درخواست echo با مبدأ یک میزبان خاص جمعآوری میکند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
-z io,phs[,filter]
ایجاد آمار سلسلهمراتب پروتکل (Protocol Hierarchy Statistics) با نمایش تعداد بستهها و بایتها.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
-z io,stat,interval[,filter][,filter][,filter]...
جمعآوری آمار بستهها/بایتها برای ضبط در بازههای زمانی interval ثانیهای. Interval میتواند به صورت یک عدد کامل یا کسری از ثانیه مشخص شود و با دقت میکروثانیه (us) قابل تعیین است. اگر interval برابر ۰ باشد، آمار روی تمام بستهها محاسبه خواهد شد.
اگر یک یا چند filter مشخص شوند، آمارها برای تمام فیلترها محاسبه شده و با یک ستون آماری برای هر فیلتر نمایش داده میشوند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z io,stat,1,ip.addr==1.2.3.4 آمارهای ۱ ثانیهای را برای تمام ترافیک ورودی/خروجی میزبان 1.2.3.4 تولید میکند.
مثال: -z "io,stat,0.001,smb&&ip.addr==1.2.3.4" آمارهای ۱ میلیثانیهای را برای تمام بستههای SMB به/از میزبان 1.2.3.4 تولید میکند.
مثالهای بالا همگی از ساختار دستوری استاندارد برای تولید آمار استفاده میکنند که تنها تعداد بستهها و بایتها را در هر بازه زمانی محاسبه میکند.
دستور io,stat همچنین میتواند با استفاده از یک ساختار دستوری کمی متفاوت برای فیلتر، آمارهای بسیار بیشتری را تولید کرده و توابع COUNT()، SUM()، MIN()، MAX()، AVG() و LOAD() را محاسبه کند:
-z io,stat,interval,"COUNT|SUM|MIN|MAX|AVG|LOAD(field)filter"
نکته
یک نکته
مهم در
اینجا این
است که
فیلتر
اختیاری
نیست و
فیلدی که
محاسبه بر
اساس آن
انجام
میشود
حتماً باید
بخشی از
رشته فیلتر
باشد، در
غیر این
صورت
محاسبه
ناموفق
خواهد بود.
بنابراین: -z io,stat,0.010,AVG(smb.time) کار نمیکند. به جای آن از -z io,stat,0.010,AVG(smb.time)smb.time استفاده کنید. همچنین توجه داشته باشید که یک فیلد میتواند چندین بار درون یک بسته وجود داشته باشد و در این صورت چندین بار در آن بستهها شمرده خواهد شد.
نکته
دومین
نکته مهم
این است که
تنظیم
سیستم برای
جداکننده
اعشار باید
روی "."
تنظیم شده
باشد!
اگر روی ","
تنظیم شده
باشد،
آمارها به
تفکیک
فیلتر
نمایش داده
نخواهند
شد.
COUNT - تعداد دفعاتی را محاسبه میکند که فیلد name (نه مقدار آن) در هر بازه در فهرست بستههای فیلترشده ظاهر میشود. ''field'' میتواند هر نام فیلتر نمایشی باشد.
مثال: -z io,stat,0.010,"COUNT(smb.sid)smb.sid"
این دستور تعداد کل SIDهای مشاهدهشده را در هر بازه ۱۰ میلیثانیهای شمارش میکند.
SUM - برخلاف COUNT، مقادیر فیلد مشخصشده در هر بازه زمانی جمع میشوند. ''field'' تنها میتواند یک فیلد نامگذاریشده از نوع عدد صحیح، ممیز شناور، دوبل یا زمان نسبی باشد.
مثال: tshark -z io,stat,0.010,"SUM(frame.len)frame.len"
تعداد کل بایتهایی را که بهطور دوطرفه در تمام بستهها درون یک بازه ۱۰ میلیثانیهای منتقل شدهاند گزارش میکند.
MIN/MAX/AVG - حداقل، حداکثر یا میانگین مقدار فیلد در هر بازه زمانی محاسبه میشود. فیلد مشخصشده باید یک فیلد نامگذاریشده از نوع عدد صحیح، ممیز شناور، دوبل یا زمان نسبی باشد. برای فیلدهای زمان نسبی، خروجی بر حسب ثانیه با دقت شش رقم اعشار و گردشده به نزدیکترین میکروثانیه نمایش داده میشود.
در مثال زیر، زمان اولین فراخوانی Read_AndX، مقادیر آخرین پاسخ Read_AndX نمایش داده میشوند و حداقل، حداکثر و میانگین زمانهای پاسخ خواندن (SRT) محاسبه میشوند. نکته: اگر از نویسه ادامهدهنده سطر در پوسته DOS یعنی ''^'' استفاده شود، انتهای هر سطر نمیتواند به کاما ختم شود بنابراین باید در ابتدای هر سطر ادامه قرار گیرد:
tshark -o tcp.desegment_tcp_streams:FALSE -n -q -r smb_reads.cap -z io,stat,0, "MIN(frame.time_relative)frame.time_relative and smb.cmd==0x2e and smb.flags.response==0", "MAX(frame.time_relative)frame.time_relative and smb.cmd==0x2e and smb.flags.response==1", "MIN(smb.time)smb.time and smb.cmd==0x2e", "MAX(smb.time)smb.time and smb.cmd==0x2e", "AVG(smb.time)smb.time and smb.cmd==0x2e"
======================================================================================================
IO Statistics
Column #0: MIN(frame.time_relative)frame.time_relative and smb.cmd==0x2e and smb.flags.response==0
Column #1: MAX(frame.time_relative)frame.time_relative and smb.cmd==0x2e and smb.flags.response==1
Column #2: MIN(smb.time)smb.time and smb.cmd==0x2e
Column #3: MAX(smb.time)smb.time and smb.cmd==0x2e
Column #4: AVG(smb.time)smb.time and smb.cmd==0x2e
| Column #0 | Column #1 | Column #2 | Column #3 | Column #4 |
Time | MIN | MAX | MIN | MAX | AVG |
000.000- 0.000000 7.704054 0.000072 0.005539 0.000295
======================================================================================================
دستور زیر میانگین اندازه PDU پاسخ خواندن SMB، تعداد کل بایتهای PDU خواندن، میانگین اندازه PDU درخواست نوشتن SMB، و تعداد کل بایتهای منتقلشده در PDUهای نوشتن SMB را نمایش میدهد:
tshark -n -q -r smb_reads_writes.cap -z io,stat,0, "AVG(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2e and smb.response_to", "SUM(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2e and smb.response_to", "AVG(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2f and not smb.response_to", "SUM(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2f and not smb.response_to"
=====================================================================================
IO Statistics
Column #0: AVG(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2e and smb.response_to
Column #1: SUM(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2e and smb.response_to
Column #2: AVG(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2f and not smb.response_to
Column #3: SUM(smb.file.rw.length)smb.file.rw.length and smb.cmd==0x2f and not smb.response_to
| Column #0 | Column #1 | Column #2 | Column #3 |
Time | AVG | SUM | AVG | SUM |
000.000- 30018 28067522 72 3240
=====================================================================================
LOAD - بار یا عمق صف (LOAD/Queue-Depth) در هر بازه زمانی محاسبه میشود. فیلد مشخصشده باید یک فیلد زمان نسبی باشد که بیانگر زمان پاسخ است؛ مانند smb.time. برای هر بازه زمانی، عمق صف برای پروتکل مشخصشده محاسبه میشود.
دستور زیر میانگین بار (LOAD) پروتکل SMB را نمایش میدهد. مقدار 1.0 نشاندهنده یک عملیات ورودی/خروجی فعال در حال اجراست.
tshark -n -q -r smb_reads_writes.cap -z "io,stat,0.001,LOAD(smb.time)smb.time"
============================================================================
IO Statistics
Interval: 0.001000 secs
Column #0: LOAD(smb.time)smb.time
| Column #0 |
Time | LOAD |
0000.000000-0000.001000 1.000000
0000.001000-0000.002000 0.741000
0000.002000-0000.003000 0.000000
0000.003000-0000.004000 1.000000
FRAMES | BYTES[()filter] - تعداد کل فریمها یا بایتها را نمایش میدهد. فیلد فیلتر اختیاری است اما در صورت گنجانده شدن باید با ''()'' پیشوندگذاری شود.
دستور زیر پنج ستون را نمایش میدهد: تعداد کل فریمها و بایتها (منتقلشده بهطور دوطرفه) با استفاده از یک کامای تکی، همان دو آمار با استفاده از زیردستورهای FRAMES و BYTES، تعداد کل فریمهای حاوی حداقل یک پاسخ خواندن SMB، و تعداد کل بایتهای ارسالشده به کارخواه (بهطور یکطرفه) در آدرس IP 10.1.0.64.
tshark -o tcp.desegment_tcp_streams:FALSE -n -q -r smb_reads.cap -z io,stat,0,,FRAMES,BYTES, "FRAMES()smb.cmd==0x2e and smb.response_to","BYTES()ip.dst==10.1.0.64"
=======================================================================================================================
IO Statistics
Column #0:
Column #1: FRAMES
Column #2: BYTES
Column #3: FRAMES()smb.cmd==0x2e and smb.response_to
Column #4: BYTES()ip.dst==10.1.0.64
| Column #0 | Column #1 | Column #2 | Column #3 | Column #4 |
Time | Frames | Bytes | FRAMES | BYTES | FRAMES | BYTES |
000.000- 33576 29721685 33576 29721685 870 29004801
=======================================================================================================================
-z ip_hosts,tree[,filter]
-z ip_srcdst,tree[,filter]
-z ip_ttl,tree[,filter]
-z ip6_dests,tree[,filter]
-z ip6_hosts,tree[,filter]
-z ip6_ptype,tree[,filter]
-z ip6_srcdst,tree[,filter]
-z ip6_hop,tree[,filter]
-z isup_msg,tree[,filter]
-z lbmr_queue_ads_queue,tree[,filter]
-z lbmr_queue_ads_source,tree[,filter]
-z lbmr_queue_queries_queue,tree[,filter]
-z lbmr_queue_queries_receiver,tree[,filter]
-z lbmr_topic_ads_source,tree[,filter]
-z lbmr_topic_ads_topic,tree[,filter]
-z lbmr_topic_ads_transport,tree[,filter]
-z lbmr_topic_queries_pattern,tree[,filter]
-z lbmr_topic_queries_pattern_receiver,tree[,filter]
-z lbmr_topic_queries_receiver,tree[,filter]
-z lbmr_topic_queries_topic,tree[,filter]
-z mac-3gpp,stat[,filter]
این گزینه شمارندهای را برای پیامهای MAC مربوط به LTE یا NR فعال میکند. اطلاعاتی درباره حداکثر تعداد UEها/TTI، پیامهای عمومی و شمارندههای مختلف برای هر UE که در گزارش ظاهر میشود دریافت خواهید کرد.
مثال: tshark -z mac-3gpp,stat.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "mac-3gpp,stat,mac-lte.rnti>3000" تنها آمار مربوط به UEهای LTE دارای یک RNTI تخصیصیافته با مقدار بیشتر از ۳۰۰۰ را جمعآوری میکند.
-z megaco,rtd[,filter]
جمعآوری دادههای تاخیر زمان پاسخ (RTD) برای درخواستها/پاسخهای MEGACO. (مشابه گزینه -z smb,srt است). دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر نوع شناختهشده MEGACO، حداقل RTD، حداکثر RTD و میانگین RTD. علاوه بر این، تعداد درخواستها/پاسخهای تکراری، درخواستهای بدون پاسخ، و پاسخهایی که با هیچ درخواستی مطابقت ندارند را دریافت میکنید. مثال: -z megaco,rtd.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "megaco,rtd,ip.addr==1.2.3.4" تنها آمار بستههای MEGACO مبادلهشده توسط میزبان در آدرس IP 1.2.3.4 را جمعآوری خواهد کرد.
-z mgcp,rtd[,filter]
جمعآوری دادههای تاخیر زمان پاسخ (RTD) برای درخواستها/پاسخهای MGCP. (مشابه گزینه -z smb,srt است). دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر نوع شناختهشده MGCP، حداقل RTD، حداکثر RTD و میانگین RTD. علاوه بر این، تعداد درخواستها/پاسخهای تکراری، درخواستهای بدون پاسخ، و پاسخهایی که با هیچ درخواستی تطابق ندارند را دریافت خواهید کرد. مثال: -z mgcp,rtd.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "mgcp,rtd,ip.addr==1.2.3.4" تنها آمار بستههای MGCP مبادلهشده توسط میزبان در آدرس IP 1.2.3.4 را جمعآوری میکند.
-z mtp3,msus[,filter]
-z ncp,srt[,filter]
-z oran-fh-cus,stat[,filter]
-z osmux,tree[,filter]
-z pfcp,srt[,filter]
-z pingpongprotocol,stat[,filter]
-z plen,tree[,filter]
-z proto,colinfo,filter,field
افزودن تمام مقادیر field مربوط به بسته به ستون Info در خروجی خلاصه تکخطی. از این ویژگی میتوان برای افزودن فیلدهای دلخواه به ستون Info علاوه بر محتوای عادی آن ستون استفاده کرد. field نام فیلتر نمایشی یک فیلد است که مقدار آن باید در ستون Info قرار گیرد. filter یک رشته فیلتر است که کنترل میکند مقدار فیلد برای کدام بستهها در ستون Info نشان داده شود. field تنها برای بستههایی در ستون Info نمایش مییابد که با filter تطابق داشته باشند.
نکته
برای
اینکه TShark
بتواند
مقدار field را
از بسته
استخراج
کند،
field حتماً
باید بخشی
از رشته filter
باشد. در غیر
این صورت،
TShark قادر به
استخراج
مقدار آن
نخواهد
بود.
برای یک مثال ساده جهت افزودن فیلد "nfs.fh.hash" به ستون Info برای تمام بستههای حاوی فیلد "nfs.fh.hash"، از این دستور استفاده کنید:
-z proto,colinfo,nfs.fh.hash,nfs.fh.hash
برای قرار دادن "nfs.fh.hash" در ستون Info اما تنها برای بستههایی که از مبدأ میزبان 1.2.3.4 میآیند، از این دستور استفاده کنید:
-z "proto,colinfo,nfs.fh.hash && ip.src==1.2.3.4,nfs.fh.hash"
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
-z ptype,tree[,filter]
-z radius,rtd[,filter]
-z rlc-3gpp,stat[,filter]
این گزینه شمارندهای را برای پیامهای RLC مربوط به LTE یا NR فعال میکند. اطلاعاتی درباره پیامهای عمومی و شمارندههای مختلف برای هر UE که در گزارش ظاهر میشود دریافت خواهید کرد.
مثال: tshark -z rlc-3gpp,stat.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "rlc-3gpp,stat,rlc-nr.ueid>3000" تنها آمار را برای UEهای NR با مقدار UEId بیشتر از ۳۰۰۰ جمعآوری میکند.
-z rpc,programs
جمعآوری دادههای SRT فراخوانی/پاسخ برای تمام برنامهها/نسخههای شناختهشده ONC-RPC. دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر پروتکل/نسخه، MinSRT، MaxSRT و AvgSRT. این گزینه تنها یک بار میتواند در خط فرمان استفاده شود.
-z rpc,srt,program,version[,filter]
جمعآوری دادههای زمان پاسخ سرویس (SRT) فراخوانی/پاسخ برای program/version. دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر رویه، MinSRT، MaxSRT، AvgSRT، و کل زمان صرفشده برای هر رویه.
مثال: tshark -z rpc,srt,100003,3 دادهها را برای NFS v3 جمعآوری میکند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z rpc,srt,100003,3,nfs.fh.hash==0x12345678 آمارهای SRT برای NFS v3 را برای یک فایل خاص جمعآوری خواهد کرد.
-z rtp,streams
-z rtsp,stat[,filter]
-z rtsp,tree[,filter]
-z sametime,tree[,filter]
-z scsi,srt,cmdset[,filter]
جمعآوری دادههای زمان پاسخ سرویس (SRT) فراخوانی/پاسخ برای مجموعه دستورات SCSI با شناسه cmdset.
مجموعه دستورات عبارتند از 0:SBC و 1:SSC و 5:MMC.
دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر رویه، MinSRT، MaxSRT و AvgSRT.
مثال: -z scsi,srt,0 دادهها را برای دستورات بلوکی SCSI یا (SBC) جمعآوری میکند.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z scsi,srt,0,ip.addr==1.2.3.4 آمارهای SCSI SBC SRT را برای یک میزبان خاص iscsi/ifcp/fcip جمعآوری خواهد کرد.
-z sctp,stat
-z sip,stat[,filter]
این گزینه شمارندهای را برای پیامهای SIP فعال میکند. تعداد رخدادهای هر متد SIP و هر کد وضعیت SIP را دریافت خواهید کرد. علاوه بر این، تعداد پیامهای ارسال مجدد شده SIP (تنها برای SIP روی UDP) را نیز دریافت میکنید.
مثال: -z sip,stat.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "sip,stat,ip.addr==1.2.3.4" تنها آمار بستههای SIP مبادلهشده توسط میزبان در آدرس IP 1.2.3.4 را جمعآوری خواهد کرد.
-z smb,sids
هنگام استفاده از این ویژگی، TShark گزارشی از تمام نگاشتهای کشفشده بین SID و نام حساب چاپ خواهد کرد. تنها آن دسته از SIDهایی که نام حساب آنها شناخته شده است در جدول ارائه میشوند.
برای کارکرد این ویژگی باید گزینه "Edit/Preferences/Protocols/SMB/Snoop SID to name mappings" را در ترجیحات فعال کنید یا میتوانید با مشخص کردن -o "smb.sid_name_snooping:TRUE" در خط فرمان TShark، ترجیحات را لغو کنید.
روش فعلی استفادهشده توسط TShark برای یافتن نگاشت SID→name نسبتاً محدود است و امید میرود در آینده گسترش یابد.
-z smb,srt[,filter]
جمعآوری دادههای زمان پاسخ سرویس (SRT) فراخوانی/پاسخ برای SMB. دادههای جمعآوریشده عبارتند از تعداد فراخوانیها برای هر دستور SMB، و مقادیر MinSRT، MaxSRT و AvgSRT.
مثال: -z smb,srt
دادهها در قالب جدولهای جداگانه برای تمام دستورات عادی SMB، تمام دستورات Transaction2 و تمام دستورات NT Transaction ارائه خواهند شد. تنها دستوراتی که در ضبط مشاهده شوند آمارشان نمایش داده خواهد شد. تنها اولین دستور در یک زنجیره دستورات xAndX در محاسبات استفاده خواهد شد؛ بنابراین برای زنجیرههای متداول SessionSetupAndX + TreeConnectAndX، تنها فراخوانی SessionSetupAndX در آمار استفاده میشود. این یک نقص است که ممکن است در آینده برطرف شود.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "smb,srt,ip.addr==1.2.3.4" تنها آمار بستههای SMB مبادلهشده توسط میزبان در آدرس IP 1.2.3.4 را جمعآوری میکند.
-z smb2,srt[,filter]
-z smpp_commands,tree[,filter]
-z snmp,srt[,filter]
-z someip_messages,tree[,filter]
-z someipsd_entries,tree[,filter]
-z sv
-z ucp_messages,tree[,filter]
-z wsp,stat[,filter]
--capture-comment <comment>
افزودن یک توضیح ضبط به فایل خروجی، در صورتی که توسط قالب فایل خروجی پشتیبانی شود.
این گزینه میتواند چندین بار مشخص شود. توجه داشته باشید که در حال حاضر Wireshark تنها اولین توضیح موجود در یک فایل ضبط را نمایش میدهد.
--list-time-stamp-types
--no-optimize
این گزینه میتواند چندین بار تکرار شود. اگر قبل از اولین وقوع گزینه -i استفاده شود، فیلترهای ضبط برای هیچیک از رابطها بهینهسازی نمیشوند. اگر بعد از یک گزینه -i استفاده شود، فیلتر ضبط برای رابطی که توسط آخرین گزینه -i پیش از این گزینه مشخص شده است بهینهسازی نمیشود.
--time-stamp-type <type>
--update-interval <interval>
--color
--no-duplicate-keys
--json-compact
--elastic-mapping-filter <protocol>,<protocol>,...
هنگام تولید فایل نگاشت ElasticSearch، تنها پروتکلهای مشخصشده در آن قرار داده شوند، تا از ایجاد یک فایل نگاشت حجیم که ممکن است باعث اختلال در برخی نرمافزارها (مانند Kibana) شود جلوگیری به عمل آید. این گزینه فهرستی از نامهای اختصاری پروتکلهای مورد نظر را که با کاما جدا شدهاند دریافت میکند.
مثال: ip,udp,dns تنها این سه پروتکل را در فایل نگاشت قرار میدهد.
--export-objects <protocol>,<destdir>
صادر کردن تمام اشیاء درون یک پروتکل به دایرکتوری destdir. مقادیر موجود برای protocol را میتوان با --export-objects help فهرست کرد.
اشیاء مستقیماً در دایرکتوری دادهشده ذخیره میشوند. نام فایلها به تشریحکننده بستگی دارد، اما معمولاً از روی نام پایه (basename) یک فایل نامگذاری میشود. فایلهای تکراری بازنویسی نمیشوند، بلکه یک عدد افزایشی قبل از پسوند فایل اضافه میشود.
این واسط ممکن است در آینده دستخوش تغییر شود، و امکان فیلتر کردن روی فایلها به آن اضافه گردد.
--print-timers
--compress <type>
فشردهسازی فایل خروجی با استفاده از قالب فشردهسازی type. گزینه --compress بدون هیچ آرگومانی فهرستی از قالبهای فشردهسازی پشتیبانیشده برای نوشتن را ارائه میدهد. نوع ارائهشده بر پسوند فایل outfile اولویت خواهد داشت.
-d <layer type>==<selector>,<decode-as protocol>
همانند قابلیت Decode As... در Wireshark، این گزینه به شما امکان میدهد نحوهٔ کالبدشکافی یک نوع لایه را مشخص کنید. اگر نوع لایهٔ مورد نظر (برای مثال، tcp.port یا udp.port برای شماره درگاه TCP یا UDP) دارای مقدار انتخابگر مشخصشده باشد، بستهها باید به عنوان پروتکل مشخصشده کالبدشکافی شوند.
مثال ۱. Decode As
بر اساس
درگاه
دستور -d tcp.port==8888,http هر ترافیکی را که روی درگاه TCP شمارهٔ 8888 در جریان است به عنوان HTTP رمزگشایی میکند.
مثال ۲. Decode As
بر اساس
بازهای از
درگاهها
دستور -d tcp.port==8888-8890,http هر ترافیکی را که روی درگاههای TCP شمارهٔ 8888، 8889 یا 8890 در جریان است به عنوان HTTP رمزگشایی میکند.
مثال ۳. Decode As
بر اساس
بازهای از
درگاهها
از طریق طول
بازه
دستور -d tcp.port==8888:3,http هر ترافیکی را که روی سه درگاه TCP شمارهٔ 8888، 8889 یا 8890 در جریان است به عنوان HTTP رمزگشایی میکند.
استفاده از یک انتخابگر یا پروتکل نامعتبر، بهترتیب فهرستی از انتخابگرها و نامهای پروتکل معتبر را چاپ خواهد کرد.
مثال ۴. Decode As
برای
دریافت
فهرست
انتخابگرها
دستور -d . روشی سریع برای دریافت فهرستی از انتخابگرهای معتبر است.
مثال ۵. Decode As
برای
دریافت
فهرست
مقادیر یک
انتخابگر
دستور -d ethertype==0x0800,. روشی سریع برای دریافت فهرستی از پروتکلهایی است که میتوان با یک ethertype انتخاب کرد.
--disable-all-protocols
--disable-protocol <proto_name>[,<proto_name>,...]
--disable-heuristic <short_name>
--enable-protocol <proto_name>[,<proto_name>,...]
فعالسازی کالبدشکافی proto_name. برای لغو فهرست پروتکلهای غیرفعال پیشفرض در نمایهٔ انتخابی خود و فعالسازی موقت تمام پروتکلهایی که بهطور پیشفرض فعال هستند، از مقدار ALL به عنوان proto_name استفاده کنید.
اگر یک پروتکل هم در --disable-protocol و هم در --enable-protocol آورده شود، آن پروتکل فعال خواهد شد. این قابلیت به شما امکان میدهد تا تمام پروتکلها را موقتاً غیرفعال کرده و تنها فهرستی از استثناها را فعال بگذارید. مثال: --disable-protocol ALL --enable-protocol eth,ip
--enable-heuristic <short_name>
-K <keytab>
بارگذاری کلیدهای رمزنگاری kerberos از فایل keytab مشخصشده. از این گزینه میتوان چندین بار برای بارگذاری کلیدها از چند فایل استفاده کرد.
مثال: -K krb5.keytab
-n
-N <name resolving flags>
فعال کردن تفکیک نام تنها برای انواع خاصی از آدرسها و شماره درگاهها، و خاموش گذاشتن تفکیک نام برای سایر انواع آدرسها و شماره درگاهها. این گزینه (همراه با -n) میتواند چندین بار مشخص شود؛ آخرین مقدار دادهشده مقادیر پیشین را لغو میکند. این گزینه و -n تنظیمات ترجیحات (preferences)، از جمله ترجیحات تعیینشده از طریق گزینهٔ -o را لغو میکنند. اگر هیچیک از گزینههای -N و -n مشخص نشده باشند، مقادیر موجود در ترجیحات اعمال میشوند که مقدار پیشفرض آن -N dmN است.
آرگومان یک رشته است که میتواند شامل حروف زیر باشد:
d برای فعالسازی تفکیک نام از بستههای DNS ضبطشده
g برای فعالسازی جستجوی اطلاعات موقعیت مکانی (geolocation) آدرس IP از پایگاههای دادهٔ MaxMind پیکربندیشده
m برای فعالسازی تفکیک آدرس MAC
n برای فعالسازی تفکیک آدرس شبکه
N برای فعالسازی استفاده از تفکیککنندههای خارجی (مانند DNS) جهت تفکیک آدرس شبکه؛ بدون فعال بودن n هیچ اثری ندارد.
s برای فعالسازی تفکیک آدرس با استفاده از اطلاعات SNI موجود در بستههای دستتکانی (handshake) ضبطشده
t برای فعالسازی تفکیک شماره درگاه لایهٔ انتقال
v برای فعالسازی تفکیک شناسهٔ VLAN به نام
هشدار
در حالت تکگذره (single-pass mode) در tshark، تفکیک نام خارجی و جستجوی موقعیت مکانی بهصورت همگام (synchronous) انجام میشود. برای ضبطهای زنده که همواره در حالت تکگذره هستند، این مسئله همگام ماندن کالبدشکافی با ترافیک یک شبکهٔ شلوغ را دشوارتر کرده و احتمالاً به دور انداخته شدن بستهها (dropped packets) میانجامد.
--only-protocols <protocols>
-t (a|ad|adoy|d|dd|e|r|rc|u|ud|udoy)[.[N]]|.[N]
قالب برچسب زمانی بسته را که در ستون پیشفرض زمان نشان داده میشود، تنظیم میکند. این قالب میتواند یکی از موارد زیر باشد:
a مطلق (absolute): زمان مطلق، بهصورت زمان محلی در منطقهٔ زمانی شما، زمان واقعی ضبط بسته بدون نمایش تاریخ است
ad مطلق همراه با تاریخ: تاریخ مطلق بهصورت YYYY-MM-DD و زمان، بهصورت زمان محلی در منطقهٔ زمانی شما، تاریخ و زمان واقعی ضبط بسته است
adoy مطلق همراه با تاریخ بر اساس روز در سال: تاریخ مطلق بهصورت YYYY/DOY و زمان، بهصورت زمان محلی در منطقهٔ زمانی شما، تاریخ و زمان واقعی ضبط بسته است
d تفاضلی (delta): زمان دلتا عبارت است از مدتزمان سپریشده از زمان ضبط بستهٔ قبلی
dd تفاضلیِ نمایشدادهشده (delta_displayed): زمان delta_displayed عبارت است از مدتزمان سپریشده از زمان ضبط بستهٔ نمایشدادهشدهٔ قبلی
e مبدأ زمانی (epoch): زمان بر حسب ثانیه از مبدأ زمانی یونیکس (۱ ژانویه ۱۹۷۰، ساعت 00:00:00)
r نسبی (relative): زمان نسبی عبارت است از زمان سپریشده میان اولین بسته و بستهٔ فعلی
rc نسبی نسبت به شروع ضبط: عبارت است از زمان سپریشده میان آغاز عملیات ضبط و بستهٔ فعلی
u زمان UTC: زمان مطلق بهصورت UTC با پسوند "Z"، زمان واقعی ضبط بسته بدون نمایش تاریخ است
ud زمان UTC همراه با تاریخ: تاریخ مطلق بهصورت YYYY-MM-DD و زمان بهصورت UTC با پسوند "Z"، تاریخ و زمان واقعی ضبط بسته است
udoy زمان UTC همراه با تاریخ بر اساس روز در سال: تاریخ مطلق بهصورت YYYY/DOY و زمان بهصورت UTC با پسوند "Z"، تاریخ و زمان واقعی ضبط بسته است
.[N] تعیین دقت: N تعداد ارقام اعشار است (۰ تا ۹). در صورت استفاده از "." بدون N، دقت بهطور خودکار از پروندهٔ ضبط تعیین میشود.
قالب پیشفرض بهصورت نسبی (relative) و با دقتی بر پایهٔ قالب پروندهٔ ضبط است.
-u <s|hms>
نحوهٔ نمایش قالبهای برچسب زمانی بسته در -t را که از نوع زمانهای نسبی هستند (یعنی relative، delta و delta_displayed) تعیین میکند. گزینههای معتبر عبارتند از:
s برای ثانیه
hms برای ساعت، دقیقه و ثانیه
قالب پیشفرض ثانیه است.
--log-level <level>
--log-fatal <level>
--log-fatal-count <count>
--log-domains <list>
--log-debug <list>
--log-noisy <list>
--log-fatal-domains <list>
--log-file <path>
نحو فیلتر ضبط (CAPTURE FILTER SYNTAX)
مراجعه کنید به صفحهٔ راهنمای pcap-filter(7) یا در صورت عدم وجود آن، tcpdump(8)، یا در صورت وجود نداشتن آن، به https://wiki.wireshark.org/CaptureFilters.
نحو فیلتر خواندن (READ FILTER SYNTAX)
برای مشاهدهٔ جدول کاملی از پروتکلها و فیلدهای پروتکلی که در TShark قابل فیلتر شدن هستند، صفحهٔ راهنمای wireshark-filter(4) را ببینید.
فایلها (FILES)
این فایلها حاوی تنظیمات پیکربندی گوناگون Wireshark هستند.
ترجیحات (Preferences)
فایلهای preferences شامل تنظیمات ترجیحی سراسری (در سطح سیستم) و شخصی هستند. اگر فایل ترجیحات سراسری سیستم وجود داشته باشد، ابتدا خوانده شده و تنظیمات پیشفرض را بازنویسی میکند. اگر فایل ترجیحات شخصی وجود داشته باشد، در مرحلهٔ بعد خوانده شده و هرگونه مقدار پیشین را بازنویسی خواهد کرد. نکته: اگر پرچم خط فرمان -o استفاده شود (احتمالاً بیش از یک بار)، به نوبهٔ خود مقادیر فایلهای ترجیحات را بازنویسی خواهد کرد.
تنظیمات ترجیحات به شکل prefname:value در هر خط نوشته میشوند، که در آن prefname نام ترجیح و value مقداری است که باید روی آن تنظیم شود؛ فاصلهٔ خالی (whitespace) بین : و value مجاز است. یک تنظیم ترجیح را میتوان با دندانهدار کردن خطوط بعدی با فاصلهٔ خالی، در خطوط بعد ادامه داد. نویسهٔ # آغازگر توضیحی است که تا انتهای خط ادامه مییابد:
# Vertical scrollbars should be on right side? # TRUE or FALSE (case-insensitive). gui.scrollbar_on_right: TRUE
فایل سراسری ترجیحات، در دایرکتوری wireshark زیر شاخهٔ share از دایرکتوری اصلی نصب جستجو میشود. در macOS، این مسیر معمولاً /Application/Wireshark.app/Contents/Resources/share است؛ در سایر سیستمهای سازگار با UNIX مانند Linux، \*BSD، Solaris و AIX، معمولاً برای بستههای نصبشده توسط سیستم /usr/share/wireshark/preferences و برای بستههای نصبشده به صورت محلی /usr/local/share/wireshark/preferences است؛ در ویندوز، این مسیر معمولاً C:\Program Files\Wireshark\preferences خواهد بود.
در سیستمهای سازگار با UNIX، فایل ترجیحات شخصی در $XDG_CONFIG_HOME/wireshark/preferences (یا اگر $XDG_CONFIG_HOME/wireshark وجود نداشته باشد در حالی که $HOME/.wireshark وجود دارد، در $HOME/.wireshark/preferences) جستجو میشود؛ این مسیر معمولاً $HOME/.config/wireshark/preferences است. در ویندوز، فایل ترجیحات شخصی در %APPDATA%\Wireshark\preferences (یا اگر %APPDATA% تعریف نشده باشد، در %USERPROFILE%\Application Data\Wireshark\preferences) جستجو میشود.
پروتکلهای غیرفعال (فعال) (Disabled (Enabled) Protocols)
فایلهای disabled_protos شامل فهرستهای سراسری سیستم و شخصی از پروتکلهایی هستند که غیرفعال شدهاند، تا تحلیلکنندههای (dissectors) آنها هرگز فراخوانی نشوند. این فایلها شامل نامهای پروتکل در هر خط هستند، به طوری که نام پروتکل همان نامی است که در فیلتر نمایش برای آن پروتکل استفاده میشود:
http tcp # a comment
اگر پروتکلی در فایل سراسری disabled_protos فهرست شده باشد، توسط کاربر قابل فعالسازی نخواهد بود.
فایل سراسری disabled_protos از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی disabled_protos از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند.
فایلهای disabled_protos تنها پروتکلهایی را فهرست میکنند که به طور پیشفرض فعال بوده اما غیرفعال شدهاند؛ پروتکلهایی که به طور پیشفرض غیرفعال هستند (مانند برخی postdissectorها) در آن فهرست نمیشوند. فایلهای مشابه enabled_protos برای پروتکلهایی وجود دارند که به طور پیشفرض غیرفعال بوده اما فعال شدهاند.
تحلیلکنندههای اکتشافی (Heuristic Dissectors)
فایلهای heuristic_protos شامل فهرستهای سراسری و شخصی از تحلیلکنندههای اکتشافی هستند و فعال یا غیرفعال بودن آنها را مشخص میکنند. این فایلها حاوی نامهای کوتاه یکتای تحلیلکنندههای اکتشافی در هر خط هستند که به دنبال آن یک کاما و سپس 0 برای غیرفعال و 1 برای فعال قرار میگیرد:
quic,1 rtcp_stun,1 rtcp_udp,1 rtp_stun,0 rtp_udp,0 tls_tcp,1
فایل سراسری heuristic_protos از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی heuristic_protos از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند.
تفکیک نام (hosts)
مدخلهای موجود در فایلهای hosts در دایرکتوری ترجیحات سراسری و شخصی، پیش از هر اقدام دیگری برای تفکیک نشانیهای IPv4 و IPv6، برای تفکیک آنها استفاده میشوند. این فایل از نحو استاندارد فایل hosts پیروی میکند؛ هر خط شامل یک نشانی IP و نام است که با فاصلهٔ خالی (whitespace) از یکدیگر جدا شدهاند. در صورت وجود، فایل شخصی hosts فایل موجود در دایرکتوری سراسری را بازنویسی میکند.
تفکیک نام در فیلتر ضبط، در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX توسط libpcap، و در ویندوز توسط Npcap انجام میشود. از این رو، برای تفکیک نام در فیلتر ضبط، به فایل شخصی hosts در Wireshark مراجعه نخواهد شد.
تفکیک نام (subnets)
اگر یک نشانی IPv4 نتواند از طریق تفکیک نام ترجمه شود (هیچ تطابق دقیقی یافت نشود)، یک تطابق جزئی از طریق فایل subnets امتحان میشود. در صورت وجود، هر دو فایل سراسری subnets و فایل شخصی subnets استفاده میشوند.
هر خط از این فایل متشکل از یک نشانی IPv4، طول ماسک زیرشبکه که تنها با یک / جدا شده، و یک نام که با فاصلهٔ خالی جدا شده است، میباشد. در حالی که نشانی باید یک نشانی کامل IPv4 باشد، هر مقداری فراتر از طول ماسک در ادامه نادیده گرفته خواهد شد.
یک نمونه:
# Comments must be prepended by the # sign! 192.168.0.0/24 ws_test_network
نامی که به طور جزئی تطابق یافته باشد، به شکل "subnet-name.remaining-address" چاپ خواهد شد. برای نمونه، "192.168.0.1" ذیل زیرشبکهٔ بالا به صورت "ws_test_network.1" چاپ میشود؛ اگر طول ماسک بالا به جای 24 برابر با 16 بود، نشانی چاپشده "ws_test_network.0.1" میبود.
تفکیک نام (ethers)
برای مطابقت دادن نشانیهای سختافزاری ۶ بایتی EUI-48 و ۸ بایتی EUI-64 با نامها، به فایلهای ethers مراجعه میشود. ابتدا فایل شخصی ethers بررسی میشود و در صورت نیافتن نشانی در آنجا، فایل سراسری ethers بررسی خواهد شد.
این فایل قالبی شبیه به فایل تعریفشده توسط ethers(5) در برخی سیستمهای شبهیونیکس دارد. هر خط شامل یک نشانی سختافزاری و نام است که با فاصلهٔ خالی (تبها یا فاصلهها) جدا شدهاند. ارقام هگزادسیمال نشانی سختافزاری با دونقطه (:)، خط تیره (-) یا نقطه (.) از هم جدا میشوند. باید در سراسر یک نشانی از نویسهٔ جداکنندهٔ یکسانی استفاده شود. نویسهٔ # نشاندهندهٔ توضیحی است که تا پایان خط ادامه دارد. هر دو نشانیهای ۶ بایتی MAC و ۸ بایتی EUI-64 پشتیبانی میشوند. چهار خط زیر خطوط معتبری از یک فایل ethers هستند:
ff:ff:ff:ff:ff:ff Broadcast c0-00-ff-ff-ff-ff TR_broadcast 00.00.00.00.00.00 Zero_broadcast 00:00:00:00:00:00:00:00 EUI64_zero_broadcast
توجه داشته باشید که این قالب، تنوع بیشتری نسبت به فایل تعریفشده در ethers(5) در بیشتر سیستمهای UN*X میپذیرد.
فایل سراسری ethers در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX در دایرکتوری /etc، و در سیستمهای ویندوز در دایرکتوری اصلی نصب (برای نمونه، C:\Program Files\Wireshark) جستجو میشود.
فایل شخصی ethers در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
تفکیک نام در فیلتر ضبط در سیستمهای سازگار با UNIX توسط libpcap و در ویندوز توسط Npcap انجام میشود. از این رو، برای تفکیک نام در فیلتر ضبط، به فایل شخصی ethers در Wireshark مراجعه نخواهد شد.
تفکیک نام (manuf)
فایل manuf برای تطبیق بخش ۳ بایتی سازنده در یک نشانی سختافزاری ۶ بایتی با نام سازنده به کار میرود؛ همچنین میتواند شامل نشانیهای شناختهشدهٔ MAC و محدودههای نشانی مشخصشده با ماسک شبکه (netmask) باشد. قالب این فایل شبیه به فایلهای ethers است، با این تفاوت که مدخلهایی مانند:
00:00:0C Cisco Cisco Systems, Inc
میتواند با OUI ۳ بایتی و هر دو نام کوتاه و بلند سازنده ارائه شود، و مدخلهایی نظیر:
00-00-0C-07-AC/40 All-HSRP-routers
را میتوان با یک نشانی MAC و ماسکی که مشخص میکند چند بیت از نشانی باید تطابق داشته باشد، مشخص کرد. برای نمونه، مدخل بالا دارای ۴۰ بیت بااهمیت یا ۵ بایت است و با نشانیهای 00-00-0C-07-AC-00 تا 00-00-0C-07-AC-FF مطابقت دارد. نیازی نیست که ماسک مضربی از ۸ باشد.
فایل سراسری manuf در همان دایرکتوری فایل ترجیحات سراسری، و فایل شخصی manuf در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
در نسخههای پیشین Wireshark، اطلاعات رسمی از مرجع ثبت IEEE در این قالب به عنوان فایل سراسری manuf توزیع میشد. این اطلاعات اکنون برای افزایش سرعت راهاندازی برنامه به صورت کامپایلشده در برنامه گنجانده شده است، اما اطلاعات داخلی را میتوان با دستور tshark -G manuf در این قالب استخراج کرد.
علاوه بر فایل manuf، فایل دیگری با همین قالب به نام wka نیز در دایرکتوری سراسری جستجو میشود. این فایل همراه با Wireshark توزیع میشود و شامل اطلاعاتی دربارهٔ نشانیهای شناختهشدهٔ MAC و محدودههای نشانی گردآوریشده از منابع معتبر غیر از IEEE است.
تفکیک نام (services)
فایل services برای ترجمهٔ شماره درگاهها به نامها استفاده میشود. در صورت وجود، هم فایل سراسری services و هم فایل شخصی services استفاده میشوند.
این فایل دارای نحو استاندارد فایل services است؛ هر خط شامل یک نام (سرویس) و یک شناسهٔ انتقال است که با فاصلهٔ خالی جدا شدهاند. شناسهٔ انتقال شامل یک شماره درگاه و یک نام پروتکل انتقال (معمولاً tcp، udp یا sctp) است که با یک / جدا شدهاند.
یک نمونه:
mydns 5045/udp # My own Domain Name Server mydns 5045/tcp # My own Domain Name Server
در نسخههای پیشین Wireshark، اطلاعات رسمی از رجیستری IANA در این قالب به عنوان فایل سراسری services توزیع میشد. اکنون این اطلاعات برای بالا بردن سرعت راهاندازی برنامه به صورت داخلی کامپایل شده است، اما اطلاعات داخلی را میتوان با دستور tshark -G services در این قالب استخراج کرد.
تفکیک نام (ipxnets)
فایلهای ipxnets برای مرتبط ساختن شمارههای شبکهٔ ۴ بایتی IPX با نامها استفاده میشوند. ابتدا فایل سراسری ipxnets بررسی میشود و اگر آن نشانی در آنجا پیدا نشد، فایل شخصی بررسی خواهد شد.
قالب آن همانند فایل ethers است، جز این که هر نشانی به جای شش بایت، چهار بایت است. علاوه بر این، نشانی میتواند به جای چهار هشتتایی (اکتت) هگزادسیمال، به صورت یک عدد هگزادسیمال واحد نمایش یابد، همانطور که در دنیای IPX متداولتر است. برای نمونه، این چهار خط، خطوط معتبری از یک فایل ipxnets هستند:
C0.A8.2C.00 HR c0-a8-1c-00 CEO 00:00:BE:EF IT_Server1 110f FileServer3
فایل سراسری ipxnets در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX در دایرکتوری /etc، و در سیستمهای ویندوز در دایرکتوری اصلی نصب (برای نمونه، C:\Program Files\Wireshark) جستجو میشود.
فایل شخصی ipxnets در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
تفکیک نام (ss7pcs)
فایل ss7pcs برای ترجمهٔ کدهای نقطهٔ SS7 (point codes) به نامها به کار میرود. این فایل از دایرکتوری پیکربندی شخصی خوانده میشود.
هر خط در این فایل از یک شناسهٔ شبکه و به دنبال آن یک خط تیره، یک کد نقطه به صورت دهدهی (دسیمال) و یک نام گره تشکیل شده است که با فاصلهٔ خالی جدا میشوند. یک نمونه:
2-1234 MyPointCode1
تفکیک نام (vlans)
فایل vlans برای ترجمهٔ شناسههای برچسب VLAN به نامها استفاده میشود. این فایل از دایرکتوری پیکربندی شخصی خوانده میشود.
هر خط در این فایل شامل یک شناسهٔ برچسب VLAN است که با فاصلهٔ خالی از یک نام جدا شده است. یک نمونه:
123 Server-Lan 2049 HR-Client-LAN
فیلترهای رنگی (قوانین رنگآمیزی) (Color Filters (Coloring Rules))
فایلهای colorfilters شامل فیلترهای رنگی سراسری و شخصی هستند. هر خط شامل یک فیلتر است که با رشتهٔ نمایشیافته در کادر محاوره آغاز میشود و به دنبال آن فیلتر نمایش مربوطه میآید. سپس رنگهای پسزمینه و پیشزمینه پیوست میشوند:
# a comment @tcp@tcp@[59345,58980,65534][0,0,0] @udp@udp@[28834,57427,65533][0,0,0]
فایل سراسری colorfilters از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی colorfilters از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند. این فایل از طریق کادر محاورهای View:Coloring Rules نوشته میشود.
در صورت وجود فایل سراسری colorfilters، تنها زمانی از آن استفاده میشود که فایل شخصی colorfilters وجود نداشته باشد؛ فیلترهای رنگی سراسری و شخصی با یکدیگر ادغام نمیشوند.
افزایهها (Plugins)
برنامهٔ Wireshark افزایهها را در هر دو پوشهٔ افزایههای شخصی و پوشهٔ افزایههای سراسری جستجو میکند.
در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، دایرکتوری سراسری افزایهها lib/wireshark/plugins/ (در برخی سیستمها به جای lib از lib64 استفاده میشود) در دایرکتوری اصلی نصب است (برای نمونه، /usr/local/lib/wireshark/plugins/). دایرکتوری شخصی افزایهها $HOME/.local/lib/wireshark/plugins است.
در macOS، اگر Wireshark به عنوان یک بستهٔ برنامک (application bundle) نصب شده باشد، پوشهٔ سراسری افزایهها در عوض %APPDIR%/Contents/PlugIns/wireshark خواهد بود.
در ویندوز، پوشهٔ سراسری افزایهها plugins/ زیر دایرکتوری اصلی نصب (برای نمونه، C:\Program Files\Wireshark\plugins\) است. پوشهٔ شخصی افزایهها %APPDATA%\Wireshark\plugins (یا در صورت عدم تعریف %APPDATA%، %USERPROFILE%\Application Data\Wireshark\plugins) است.
افزایههای Lua در پوشههای افزایهها ذخیره میشوند؛ افزایههای کامپایلشده در زیرپوشههای پوشههای افزایه نگهداری میشوند، به طوری که نام زیرپوشه، شمارهٔ نگارش فرعی Wireshark (یعنی X.Y) است. سطح سلسلهمراتبی دیگری برای هر نوع از افزایههای Wireshark وجود دارد (شامل libwireshark، libwiretap و codecs). برای نمونه، محل قرارگیری یک افزایهٔ libwireshark به نام foo.so (foo.dll در ویندوز) به صورت PLUGINDIR/X.Y/epan خواهد بود (کتابخانهٔ libwireshark پیشتر libepan نامیده میشد؛ نامهای دیگر پوشهها codecs و wiretap هستند).
نکته
در
سیستمهای
سازگار با
UNIX،
افزایههای
Lua (اما نه
افزایههای
باینری) را
میتوان در
$XDG_CONFIG_HOME/wireshark/plugins نیز
قرار داد،
(یا اگر $XDG_CONFIG_HOME/wireshark
وجود
نداشته
باشد در
حالی که $HOME/.wireshark
وجود دارد،
در $HOME/.wireshark/plugins).
توجه داشته باشید که یک پیمانهٔ افزایهٔ تحلیلکننده ممکن است از بیش از یک پروتکل پشتیبانی کند؛ لزوماً تناظر یکبهیک میان پیمانههای افزایهٔ تحلیلکننده و پروتکلها وجود ندارد. پروتکلهای پشتیبانیشده توسط یک پیمانهٔ افزایهٔ تحلیلکننده به همان شیوهای که پروتکلهای داخلی Wireshark فعال یا غیرفعال میشوند، قابل فعالسازی و غیرفعالسازی هستند.
دستور TShark به صورت داخلی از UTF-8 برای نمایش رشتهها استفاده میکند. در برخی موارد ممکن است خروجی معتبر نباشد. برای نمونه، ممکن است یک dissector توالیهای نویسهای نامعتبر UTF-8 تولید کند. برنامههایی که خروجی TShark را میخوانند باید انتظار UTF-8 را داشته باشند و برای خروجی نامعتبر آماده باشند.
اگر TShark تشخیص دهد که در حال نوشتن روی یک TTY در یک سیستم سازگار با UNIX (مانند Linux، macOS، \*BSD، Solaris و AIX) است و locale جاری از UTF-8 پشتیبانی نمیکند، خروجی برای مطابقت با locale فعلی بازکدگذاری خواهد شد.
اگر TShark تشخیص دهد که در حال نوشتن روی کنسول در Windows است، خروجی تحلیل و کالبدشکافی (dissection) با کدگذاری UTF-16LE خواهد بود. سایر خروجیها UTF-8 خواهند بود. اگر نویسههای گسترشیافته به درستی در ترمینال شما نمایش داده نمیشوند، میتوانید صفحه کد کنسول خود را روی UTF-8 تنظیم کرده (chcp 65001) و در صورت امکان از یک برنامه ترمینال مدرن استفاده کنید.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
WIRESHARK_CONFIG_DIR
WIRESHARK_DEBUG_WMEM_OVERRIDE
WIRESHARK_RUN_FROM_BUILD_DIRECTORY
WIRESHARK_DATA_DIR
WIRESHARK_EXTCAP_DIR
WIRESHARK_PLUGIN_DIR
ERF_RECORDS_TO_CHECK
IPFIX_RECORDS_TO_CHECK
WIRESHARK_ABORT_ON_DISSECTOR_BUG
WIRESHARK_ABORT_ON_TOO_MANY_ITEMS
WIRESHARK_LOG_LEVEL
WIRESHARK_LOG_FATAL
WIRESHARK_LOG_DOMAINS
WIRESHARK_LOG_DEBUG
WIRESHARK_LOG_NOISY
wireshark-filter(4), wireshark(1), editcap(1), pcap(3), dumpcap(1), text2pcap(1), mergecap(1), pcap-filter(7) یا tcpdump(8)
نکات (NOTES)
این صفحهٔ راهنما برای TShark نسخهٔ 4.7.3 است. TShark بخشی از توزیع Wireshark است. آخرین نسخهٔ Wireshark در این نشانی در دسترس است: https://www.wireshark.org.
نسخههای HTML صفحات راهنمای پروژهٔ Wireshark در این نشانی در دسترس هستند: https://www.wireshark.org/docs/man-pages.
نویسندگان (AUTHORS)
TShark از همان کد کالبدشکافی بستهها که در Wireshark به کار رفته استفاده میکند و همچنین از بسیاری از ماژولهای دیگر Wireshark بهره میبرد؛ برای مشاهدهٔ فهرست نویسندگان آن کدها، به فهرست نویسندگان در صفحهٔ راهنمای Wireshark مراجعه کنید.
| 2026-09-03 |