'\" t .\" Title: sharkd .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-03 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "SHARKD" "1" "2026-09-03" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" sharkd \- تحلیل و تخلیه تعاملی ترافیک شبکه با استفاده از JSON\-RPC .SH "خلاصه دستور (SYNOPSIS)" .sp \fBsharkd\fP [\~\fB\-a\fP|\fB\-\-api\fP\~\~] [\~\fB\-\-foreground\fP\~] [\~\fB\-C\fP|\fB\-\-config\-profile\fP\~\~] .sp \fBsharkd\fP \fB\-\fP .sp \fBsharkd\fP \fB\-h|\-\-help\fP .sp \fBsharkd\fP \fB\-v|\-\-version\fP .SH "توضیحات (DESCRIPTION)" .sp \fBSharkd\fP گونه‌ای دیمن (daemon) از \fBWireshark\fP است که یک API مبتنی بر JSON را جهت انجام تحلیل پروتکل‌های شبکه فراهم می‌کند. این ابزار از همان موتور تشریح (dissection) موجود در \fBWireshark\fP و \fBTShark\fP بهره می‌برد و دسترسی برنامه‌نویسی‌شده به قابلیت‌های تشریح بسته‌ها، فیلترسازی و تحلیل را میسر می‌سازد. .sp \fBSharkd\fP می‌تواند در دو حالت فعالیت کند: \fBحالت کنسول (console mode)\fP و \fBحالت دیمن (daemon mode)\fP. .sp در حالت کنسول، \fBsharkd\fP درخواست‌های JSON\-RPC را از ورودی استاندارد خوانده و پاسخ‌ها را در خروجی استاندارد می‌نویسد. این حالت با ارسال \fB\-\fP به عنوان آرگومان یا با اجرای \fBsharkd\fP بدون گزینه \fB\-a\fP فعال می‌شود. .sp در حالت دیمن، \fBsharkd\fP روی یک Unix domain socket یا TCP socket به اتصالات ورودی گوش فرا می‌دهد و برای هر کلاینت یک فرایند نشست (session process) جدید ایجاد (fork) می‌کند. این حالت با مشخص کردن گزینه \fB\-a\fP به همراه مشخصات سوکت فعال می‌شود. .sp درخواست‌ها و پاسخ‌ها به صورت اشیاء JSON کدگذاری می‌شوند، هر کدام در یک سطر. برای دیدن فهرست کامل فراخوانی‌های متد، بخش JSON\-RPC METHODS را در ادامه ملاحظه کنید. .sp برای جزئیات کامل پیرامون JSON\-RPC API، ببینید: .URL "https://wiki.wireshark.org/Development/sharkd" "" "." .if n .sp .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 .B هشدار .ps -1 .br .sp \fBSharkd\fP نباید در معرض دسترسی کاربران غیرقابل‌اعتماد قرار گیرد. دسترسی فیلترنشده به \fBsharkd\fP می‌تواند بالقوه منجر به افشای اطلاعات یا اجرای دستورات دلخواه شود. .sp .5v .RE.SH "گزینه‌ها (OPTIONS)" .sp \-a , \-\-api .RS 4 .sp گوش دادن روی سوکت مشخص‌شده برای اتصالات ورودی کلاینت به جای خواندن از کنسول. هنگام استفاده از این گزینه، \fBsharkd\fP به عنوان یک دیمن (daemon) اجرا می‌شود و برای هر اتصال کلاینت، یک فرایند نشست (session) جدید فورک (fork) می‌کند. .sp انواع سوکت‌های پشتیبانی‌شده: .sp \fBunix:\fIpath\fP\fP .RS 4 گوش دادن روی یک سوکت دامنه یونیکس (Unix domain socket) در \fIpath\fP. برای مثال، \fBunix:/tmp/sharkd.sock\fP. در لینوکس، سوکت‌های انتزاعی (abstract sockets) با قرار دادن پیشوند \fB@\fP در ابتدای نام پشتیبانی می‌شوند، مانند \fBunix:@sharkd\fP؛ سوکت‌های انتزاعی تنها از اتصال‌های همتایانی با UID مؤثر یکسان پشتیبانی می‌کنند. سوکت‌های دامنه یونیکس در ویندوز ۱۰ نسخه ۱۸۰۳ و بالاتر، از جمله Windows Server 2019 در دسترس هستند. .RE .sp \fBtcp:\fIaddress\fP:\fIport\fP\fP .RS 4 گوش دادن روی یک سوکت TCP متصل به \fIaddress\fP در \fIport\fP. برای مثال، \fBtcp:127.0.0.1:4446\fP. برای آدرس‌های IPv6، آدرس را داخل براکت قرار دهید، مانند \fBtcp:[[::1]:5678\fP. بنا بر دلایل امنیتی، سوکت‌های TCP به‌طور پیش‌فرض تنها در ساخت‌های ویندوز در دسترس هستند و فقط از آدرس‌های لوپ‌بک (loopback) پشتیبانی می‌شود، یعنی یک آدرس IPv4 در فضای آدرس \fB127.0.0.0/8\fP یا آدرس لوپ‌بک IPv6 به صورت \fB::1\fP. .RE .sp اگر هیچ گزینهٔ \fB\-a\fP ارائه نشود، یا اگر \fBsharkd \-\fP استفاده شود، \fBsharkd\fP دستورها را از طریق کنسول (ورودی استاندارد) می‌پذیرد. .RE .sp \-\-foreground .RS 4 هنگام اجرا در حالت دیمن، از ترمینال کنترل‌کننده جدا نشود. به‌طور پیش‌فرض، زمانی که سوکتی با گزینهٔ \fB\-a\fP مشخص شده باشد، \fBsharkd\fP به پس‌زمینه فورک می‌شود. .RE .sp \-C , \-\-config\-profile .RS 4 شروع با نمایهٔ پیکربندی (configuration profile) مشخص‌شده. .RE .sp \-h, \-\-help .RS 4 چاپ شماره نسخه و گزینه‌ها و سپس خروج. .RE .sp \-v, \-\-version .RS 4 چاپ اطلاعات کامل نسخه و سپس خروج. .RE .SH "گزینه‌های عیب‌یابی (DIAGNOSTIC OPTIONS)" .sp \-\-log\-level .RS 4 تنظیم سطح فعال ثبت گزارش (log level). سطوح پشتیبانی‌شده از کمترین به بیشترین عبارتند از "noisy"، "debug"، "info"، "message"، "warning"، "critical" و "error". پیام‌های مربوط به هر سطح و سطوح بالاتر از آن چاپ خواهند شد؛ برای مثال "warning" پیام‌های "warning"، "critical" و "error" را چاپ می‌کند و "noisy" همهٔ پیام‌ها را چاپ خواهد کرد. سطوح نسبت به بزرگی و کوچکی حروف حساس نیستند. .RE .sp \-\-log\-fatal .RS 4 متوقف کردن برنامه در صورتی که هر پیامی در سطح مشخص‌شده یا بالاتر ثبت شود. برای مثال، "warning" با بروز هر یک از پیام‌های "warning"، "critical" یا "error" برنامه را متوقف می‌کند. .RE .sp \-\-log\-fatal\-count .RS 4 تعداد پیام‌های گزارش مرگبار (fatal) که می‌توانند پیش از متوقف شدن برنامه ثبت شوند. .RE .sp \-\-log\-domains .RS 4 تنها چاپ پیام‌ها برای دامنه‌های گزارش مشخص‌شده، مانند "GUI,Epan,sshdump". فهرست دامنه‌ها باید با کاما (,) جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نویسه اول نفی شود (تطابق معکوس می‌شود). .RE .sp \-\-log\-debug .RS 4 وادار کردن دامنه‌های مشخص‌شده به ثبت گزارش در سطح "debug". فهرست دامنه‌ها باید با کاما (,) جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نویسه اول نفی شود (تطابق معکوس می‌شود). .RE .sp \-\-log\-noisy .RS 4 وادار کردن دامنه‌های مشخص‌شده به ثبت گزارش در سطح "noisy". فهرست دامنه‌ها باید با کاما (,) جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نویسه اول نفی شود (تطابق معکوس می‌شود). .RE .sp \-\-log\-fatal\-domains .RS 4 متوقف کردن برنامه در صورتی که هر پیامی برای دامنه‌های گزارش مشخص‌شده ثبت شود. فهرست دامنه‌ها باید با کاما (,) جدا شود. .RE .sp \-\-log\-file .RS 4 نوشتن پیام‌های گزارش و خروجی stderr در فایل مشخص‌شده. .RE.SH "متدهای JSON\-RPC (JSON\-RPC METHODS)" .sp \fBSharkd\fP درخواست‌های JSON\-RPC جداشده با خط جدید را می‌پذیرد. هر درخواست باید شامل فیلد \fBjsonrpc\fP با مقدار \fB"2.0"\fP، فیلد \fBmethod\fP و فیلد \fBid\fP باشد. متدهای زیر پشتیبانی می‌شوند: .sp \fBanalyse\fP .RS 4 تحلیل فایل ضبط بارگذاری‌شده و بازگرداندن اطلاعات خلاصه. .RE .sp \fBbye\fP .RS 4 پایان دادن به نشست. .RE .sp \fBcheck\fP .RS 4 بررسی یا کامپایل یک فیلتر نمایش (display filter). .RE .sp \fBcomplete\fP .RS 4 ارائه پیشنهادهای تکمیل نام فیلد. .RE .sp \fBdownload\fP .RS 4 دانلود داده‌های ضبط‌شده یا اشیاء بازسازی‌شده (reassembled). .RE .sp \fBdumpconf\fP .RS 4 تخلیه مقادیر فعلی ترجیحات (preferences). .RE .sp \fBfield\fP .RS 4 دریافت اطلاعات درباره یک فیلد مشخص از فیلتر نمایش. .RE .sp \fBfields\fP .RS 4 فهرست کردن تمام فیلدهای موجود فیلتر نمایش. .RE .sp \fBfollow\fP .RS 4 دنبال کردن یک جریان (TCP، UDP، HTTP و غیره). .RE .sp \fBframe\fP .RS 4 دریافت اطلاعات دقیق درباره یک فریم مشخص. .RE .sp \fBframes\fP .RS 4 دریافت فهرستی از فریم‌ها (بسته‌ها) از فایل ضبط بارگذاری‌شده. .RE .sp \fBinfo\fP .RS 4 دریافت اطلاعات درباره dissectorها، tapها و آمارهای موجود. .RE .sp \fBintervals\fP .RS 4 دریافت داده‌های بازه زمانی فریم برای فایل ضبط بارگذاری‌شده. .RE .sp \fBiograph\fP .RS 4 دریافت داده‌های نمودار I/O برای فایل ضبط بارگذاری‌شده. .RE .sp \fBload\fP .RS 4 بارگذاری یک فایل ضبط برای تحلیل. .RE .sp \fBsetcomment\fP .RS 4 تنظیم یادداشت روی یک فریم مشخص. .RE .sp \fBsetconf\fP .RS 4 تنظیم مقدار ترجیحات Wireshark. .RE .sp \fBstatus\fP .RS 4 دریافت وضعیت فایل ضبط بارگذاری‌شده فعلی. .RE .sp \fBtap\fP .RS 4 اجرای یک tap روی فایل ضبط بارگذاری‌شده. .RE.SH "مثال‌ها (EXAMPLES)" .sp برای اجرای \fBsharkd\fP در حالت کنسول: .sp .if n .RS 4 .nf .fam C sharkd \- .fam .fi .if n .RE .sp برای اجرای \fBsharkd\fP به صورت یک دیمن که روی یک Unix domain socket گوش می‌دهد: .sp .if n .RS 4 .nf .fam C sharkd \-a unix:/tmp/sharkd.sock .fam .fi .if n .RE .sp برای اجرای \fBsharkd\fP به صورت یک دیمن با یک نمایهٔ پیکربندی (profile) مشخص: .sp .if n .RS 4 .nf .fam C sharkd \-a unix:/tmp/sharkd.sock \-C myprofile .fam .fi .if n .RE .sp برای نگه داشتن دیمن در پیش‌زمینه جهت اشکال‌زدایی: .sp .if n .RS 4 .nf .fam C sharkd \-a unix:/tmp/sharkd.sock \-\-foreground .fam .fi .if n .RE .sp یک نمونه از نشست کنسول برای بارگذاری یک فایل و دریافت وضعیت آن: .sp .if n .RS 4 .nf .fam C $ echo \*(Aq{"jsonrpc":"2.0","id":1,"method":"load","params":{"file":"/path/to/capture.pcapng"}}\*(Aq | sharkd \- $ echo \*(Aq{"jsonrpc":"2.0","id":2,"method":"status"}\*(Aq | sharkd \- .fam .fi .if n .RE .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .sp WIRESHARK_CONFIG_DIR .RS 4 این متغیر محیطی مکان فایل‌های پیکربندی شخصی را بازنویسی می‌کند. در سیستم‌های سازگار با UNIX، مانند Linux، macOS، \(rs*BSD، Solaris و AIX، مقدار پیش‌فرض آن \fI$XDG_CONFIG_HOME/wireshark\fP است (یا در صورتی که آن دایرکتوری وجود نداشته باشد اما \fI$HOME/.wireshark\fP موجود باشد، \fI$HOME/.wireshark\fP)؛ این مسیر معمولاً \fI$HOME/.config/wireshark\fP است. در Windows، مقدار پیش‌فرض آن \fI%APPDATA%\(rsWireshark\fP است (یا اگر %APPDATA% تعریف نشده باشد، \fI%USERPROFILE%\(rsApplication Data\(rsWireshark\fP). از Wireshark 3.0 به بعد در دسترس است. .RE .sp WIRESHARK_DEBUG_WMEM_OVERRIDE .RS 4 تنظیم این متغیر محیطی، چارچوب wmem را وادار می‌کند تا برای \fBتمامی\fP تخصیص‌ها، بدون در نظر گرفتن اینکه معمولاً چه بک‌اندی توسط کد مشخص شده است، از بک‌اند تخصیص‌دهندهٔ (allocator backend) تعیین‌شده استفاده کند. این متغیر عمدتاً هنگام آزمایش یا اشکال‌زدایی برای توسعه‌دهندگان مفید است. برای جزئیات به \fIREADME.wmem\fP در توزیع کد منبع مراجعه کنید. .RE .sp WIRESHARK_RUN_FROM_BUILD_DIRECTORY .RS 4 این متغیر محیطی باعث می‌شود پلاگین‌ها و سایر فایل‌های داده به جای مکان‌های استاندارد، از دایرکتوری ساخت (محل کامپایل برنامه) بارگذاری شوند. این متغیر در سیستم‌های سازگار با UNIX، مانند Linux، macOS، \(rs*BSD، Solaris و AIX، هنگامی که برنامه با مجوزهای root (یا setuid) اجرا می‌شود، هیچ اثری ندارد. .RE .sp WIRESHARK_DATA_DIR .RS 4 این متغیر محیطی باعث می‌شود فایل‌های مختلف داده از دایرکتوری دیگری غیر از مکان‌های استاندارد بارگذاری شوند. این متغیر در سیستم‌های سازگار با UNIX، هنگامی که برنامه با مجوزهای root (یا setuid) اجرا می‌شود، هیچ اثری ندارد. .RE .sp WIRESHARK_EXTCAP_DIR .RS 4 این متغیر محیطی باعث می‌شود برنامه‌ها و اسکریپت‌های مختلف extcap از دایرکتوری دیگری غیر از مکان‌های استاندارد اجرا شوند. این متغیر در سیستم‌های سازگار با UNIX، هنگامی که برنامه با مجوزهای root (یا setuid) اجرا می‌شود، هیچ اثری ندارد. .RE .sp WIRESHARK_PLUGIN_DIR .RS 4 این متغیر محیطی باعث می‌شود پلاگین‌های مختلف از دایرکتوری دیگری غیر از مکان‌های استاندارد بارگذاری شوند. این متغیر در سیستم‌های سازگار با UNIX، هنگامی که برنامه با مجوزهای root (یا setuid) اجرا می‌شود، هیچ اثری ندارد. .RE .sp ERF_RECORDS_TO_CHECK .RS 4 این متغیر محیطی تعداد رکوردهای ERF بررسی‌شده را هنگام تصمیم‌گیری دربارهٔ اینکه آیا یک فایل واقعاً در قالب ERF است یا خیر، کنترل می‌کند. تنظیم این متغیر محیطی روی عددی بزرگ‌تر از مقدار پیش‌فرض (20)، احتمال نتایج مثبت کاذب (false positive) را کاهش می‌دهد. .RE .sp IPFIX_RECORDS_TO_CHECK .RS 4 این متغیر محیطی تعداد رکوردهای IPFIX بررسی‌شده را هنگام تصمیم‌گیری دربارهٔ اینکه آیا یک فایل واقعاً در قالب IPFIX است یا خیر، کنترل می‌کند. تنظیم این متغیر محیطی روی عددی بزرگ‌تر از مقدار پیش‌فرض (20)، احتمال نتایج مثبت کاذب (false positive) را کاهش می‌دهد. .RE .sp WIRESHARK_ABORT_ON_DISSECTOR_BUG .RS 4 در صورت تنظیم این متغیر محیطی، \fBTShark\fP هنگام مواجهه با باگ در dissector تابع abort(3) را فراخوانی می‌کند. تابع abort(3) موجب خروج غیرعادی برنامه خواهد شد؛ اگر در حال اجرای \fBTShark\fP درون یک اشکال‌زدا (debugger) باشید، اجرای برنامه در اشکال‌زدا متوقف شده و امکان بازرسی فرایند را فراهم می‌آورد، و اگر آن را در اشکال‌زدا اجرا نمی‌کنید، در برخی سیستم‌عامل‌ها (به فرض پیکربندی درست محیط شما) یک فایل core dump ایجاد می‌کند. این قابلیت می‌تواند برای توسعه‌دهندگانی که سعی در رفع مشکل یک dissector پروتکل دارند، مفید باشد. .RE .sp WIRESHARK_ABORT_ON_TOO_MANY_ITEMS .RS 4 در صورت تنظیم این متغیر محیطی، اگر یک dissector تلاش کند آیتم‌های بیش از حدی به یک درخت (tree) اضافه کند (که عموماً نشان‌دهندهٔ آن است که dissector به اندازهٔ کافی زود از حلقه خارج نشده است)، \fBTShark\fP تابع abort(3) را فراخوانی می‌کند. فراخوانی abort(3) باعث خروج غیرعادی برنامه خواهد شد؛ اگر در حال اجرای \fBTShark\fP درون یک اشکال‌زدا (debugger) باشید، برنامه در اشکال‌زدا متوقف شده و امکان بازرسی فرایند را می‌دهد، و اگر آن را در اشکال‌زدا اجرا نمی‌کنید، در برخی سیستم‌عامل‌ها (با فرض پیکربندی صحیح محیط شما) یک فایل core dump ایجاد خواهد کرد. این قابلیت می‌تواند برای توسعه‌دهندگانی که سعی در رفع مشکل یک dissector پروتکل دارند مفید باشد. .RE .sp WIRESHARK_LOG_LEVEL .RS 4 این متغیر محیطی میزان پرگویی (verbosity) پیام‌های تشخیصی به کنسول را کنترل می‌کند. سطوح مختلف از کم‌گوترین تا پرگوترین عبارتند از: \f(CRcritical\fP، \f(CRwarning\fP، \f(CRmessage\fP، \f(CRinfo\fP، \f(CRdebug\fP یا \f(CRnoisy\fP. سطوح بالاتر از سطح کنونی نیز فعال هستند. سطوح \f(CRcritical\fP و \f(CRerror\fP همیشه فعال هستند. .RE .sp WIRESHARK_LOG_FATAL .RS 4 سطح لاگ مهلک (fatal) را تنظیم می‌کند. سطوح لاگ مهلک باعث خاتمهٔ غیرعادی و لغو (abort) برنامه می‌شوند. این سطح می‌تواند بر روی \f(CRError\fP، \f(CRcritical\fP یا \f(CRwarning\fP تنظیم شود. سطح \f(CRError\fP همیشه مهلک است و مقدار پیش‌فرض می‌باشد. .RE .sp WIRESHARK_LOG_DOMAINS .RS 4 این متغیر محیطی مشخص می‌کند کدام دامنه‌های ثبت گزارش (log domains) فعال باشند. این فیلتر به صورت فهرستی از موارد جداشده با کاما و بدون حساسیت به حروف بزرگ و کوچک ارائه می‌شود. در صورت تنظیم، تنها دامنه‌های گنجانده‌شده فعال خواهند شد. دامنهٔ پیش‌فرض همواره فعال تلقی می‌شود. برای معکوس کردن مفهوم تطبیق، می‌توان در ابتدای فهرست فیلتر دامنه از \*(Aq!\*(Aq استفاده کرد. .RE .sp WIRESHARK_LOG_DEBUG .RS 4 فهرستی از دامنه‌ها با سطح لاگ \f(CRdebug\fP. این متغیر سطح دامنه‌های لاگ ارائه‌شده را تنظیم می‌کند و اولویت بالاتری نسبت به فیلتر دامنه‌های فعال دارد. در صورتی که پیش از آن \*(Aq!\*(Aq بیاید، به جای آن سطح \f(CRdebug\fP غیرفعال می‌شود. .RE.sp WIRESHARK_LOG_NOISY .RS 4 مشابه بالا، اما در عوض برای سطح لاگ \f(CRnoisy\fP. .RE .SH "همچنین ببینید (SEE ALSO)" .sp wireshark\-filter(4), wireshark(1), editcap(1), pcap(3), dumpcap(1), text2pcap(1), mergecap(1), pcap\-filter(7) یا tcpdump(8) .SH "نکات (NOTES)" .sp این صفحهٔ راهنما برای \fBSharkd\fP نسخهٔ 4.7.3 است. \fBSharkd\fP بخشی از توزیع \fBWireshark\fP است. آخرین نسخهٔ \fBWireshark\fP در این نشانی در دسترس است:\c .URL "https://www.wireshark.org" "" "." .sp نسخه‌های HTML صفحه‌های راهنمای پروژهٔ Wireshark در این نشانی موجود است:\c .URL "https://www.wireshark.org/docs/man\-pages" "" "." .SH "نویسندگان (AUTHORS)" .sp \fBSharkd\fP توسط Jakub Zawadzki نوشته شده است. \fBSharkd\fP از همان کد کالبدشکافی بسته‌ای که \fBWireshark\fP استفاده می‌کند، به همراه بسیاری از ماژول‌های دیگر \fBWireshark\fP بهره می‌برد؛ برای مشاهدهٔ فهرست نویسندگان آن کد، به فهرست نویسندگان در صفحهٔ راهنمای \fBWireshark\fP مراجعه کنید.