WEBSOCAT(1) User Commands WEBSOCAT(1)

websocat - ابزار خط فرمان وب‌سوکت، مشابه netcat و curl و socat برای پروتکل ws://

websocat 1.14.1 Vitaly "_Vi" Shukela <vi0oss@gmail.com> ابزار خط فرمان برای وب‌سوکت‌ها، مشابه netcat/curl/socat برای ws://.

(کلاینت ساده)
(سرور ساده)
(حالت پیشرفته)

(برخی فلگ‌ها مخفی هستند، --help=long را ببینید)

-e, --set-environment

تنظیم متغیرهای محیطی WEBSOCAT_* هنگام اجرای مشخصه‌های exec:/cmd:/sh-c: در حال حاضر این متغیرها WEBSOCAT_URI و WEBSOCAT_CLIENT برای نشانی URI درخواست و نشانی کلاینت (در صورت اتصال TCP) هستند. مراقب باگ شل‌شاک (ShellShock) یا مشکلات امنیتی مشابه باشید.
بستن یک جهت انتقال داده در صورت رسیدن جهت دیگر به EOF

--jsonrpc

قالب‌بندی پیام‌های تایپ‌شده به عنوان فراخوانی‌های متد JSON RPC 2.0. کلمه اول به عنوان نام متد و بقیه به عنوان پارامترها در نظر گرفته می‌شوند (در صورت امکان به صورت خودکار درون [] قرار می‌گیرند).
-0, --null-terminated
استفاده از \0 به جای \n برای حالت سطری (linemode)
گزینه --no-fixups برای مشاهده مواردی که به صورت خودکار درج می‌شوند و خواندن راهنمای کامل سازوکار درونی Websocat.
-1, --one-message
ارسال و/یا دریافت فقط یک پیام. همراه با --no-close و/یا -u/-U استفاده شود.
سرویس‌دهی فقط برای یک بار. با -1 (--one-message) اشتباه گرفته نشود

--print-ping-rtts

چاپ زمان رفت و برگشت (RTT) اندازه‌گیری‌شده در stderr پس از دریافت هر پیام پونگ (pong) وب‌سوکت.
بی‌صدا کردن تمام پیام‌های تشخیصی به جز خطاهای زمان راه‌اندازی
حالت سرور ساده: تعیین پورت TCP یا addr:port به عنوان تک‌آرگومان

-S, --strict

حالت سطری/پیامی سخت‌گیرانه: انداختن پیام‌های بیش از حد طولانی به جای تقسیم آن‌ها، انداختن خطوط ناقص.
پذیرش گواهی‌ها و نام‌های میزبان نامعتبر هنگام اتصال به TLS
جلوگیری از کپی داده‌ها در یک جهت

-U, --unidirectional-reverse

جلوگیری از کپی داده‌ها در جهت معکوس (یا در هر دو جهت در صورت ترکیب با -u)
افزایش سطح گزارش‌دهی جزئیات به info یا بیشتر
ارسال پیام به وب‌سوکت به عنوان پیام‌های باینری
عدم ارسال پیام Close به وب‌سوکت هنگام رسیدن به EOF
ارسال پیام به وب‌سوکت به عنوان پیام‌های متنی

--base64

کدگذاری پیام‌های باینری دریافتی وب‌سوکت در یک خط Base64. اگر `--binary-prefix` (به `--help=full` مراجعه کنید) تنظیم شده باشد، پیام‌های ارسالی وب‌سوکت که با این پیشوند آغاز شوند پیش از ارسال از base64 رمزگشایی می‌شوند.

(برخی گزینه‌ها مخفی هستند، --help=long را ببینید)

--socks5 <auto_socks5>

استفاده از address:port مشخص‌شده به عنوان پروکسی SOCKS5. مثال: --socks5 127.0.0.1:9050

--basic-auth <basic_auth>

افزودن هدر درخواست HTTP با عنوان `Authorization: Basic` با این پارامتر کدگذاری‌شده به صورت base64. همچنین از طریق متغیر محیطی `WEBSOCAT_BASIC_AUTH` در دسترس است

--basic-auth-file <basic_auth_file>

افزودن هدر درخواست HTTP با عنوان `Authorization: Basic` از محتوای کدگذاری‌شده به صورت base64 فایل مشخص‌شده
حداکثر اندازه پیام، به بایت [پیش‌فرض: 65536]

--close-reason <close_reason>

بستن اتصال همراه با پیام دلیل. این گزینه تنها در صورتی اثرگذار است که گزینه --close-status-code نیز مشخص شده باشد.
بستن اتصال همراه با کد وضعیت.

-H, --header <custom_headers>...

افزودن هدر سفارشی HTTP به درخواست کلاینت وب‌سوکت. نام هدر و مقدار آن را با یک دو نقطه و به صورت اختیاری با یک فاصله جدا کنید. می‌تواند چند بار استفاده شود. توجه داشته باشید که یک -H منفرد ممکن است چندین آرگومان بعدی را ببلعد و منجر به خطاهای گیج‌کننده شود. هدرها را در انتها یا با علامت مساوی مانند -H='X: y' مشخص کنید.

--server-header <custom_reply_headers>...

افزودن هدر سفارشی HTTP به پاسخ ارتقای (upgrade) وب‌سوکت. نام هدر و مقدار آن را با یک دو نقطه و به صورت اختیاری با یک فاصله جدا کنید. می‌تواند چند بار استفاده شود. توجه داشته باشید که یک -H منفرد ممکن است چندین آرگومان بعدی را ببلعد و منجر به خطاهای گیج‌کننده شود.

--header-to-env <headers_to_env>...

هدایت هدر درخواست ورودی مشخص‌شده به متغیر محیطی H_* برای مشخصه‌های مشابه `exec:`.

-h, --help <help>

مشاهده راهنما. مقدار --help=short فهرست گزینه‌ها و انواع آدرس‌های ساده است مقدار --help=long تمام گزینه‌ها و انواع را فهرست می‌کند (نشانگرهای [A] را ببینید) مقدار --help=doc توضیحات طولانی‌تر و مثال‌ها را نیز نمایش می‌دهد.

--max-messages <max_messages>

حداکثر تعداد پیام‌ها برای کپی در یک جهت.

--max-messages-rev <max_messages_rev>

حداکثر تعداد پیام‌ها برای کپی در جهت دیگر.

--conncap <max_parallel_conns>

حداکثر تعداد اتصالات هم‌زمان برای حالت شنود (listening)
افزودن هدر HTTP با عنوان Origin به درخواست کلاینت وب‌سوکت

--pkcs12-der <pkcs12_der>

آرشیو Pkcs12 مورد نیاز برای پذیرش اتصالات SSL، گواهی و کلید. دستوری برای تولید خروجی آن: openssl pkcs12 -export -out output.pkcs12 -inkey key.pem -in cert.pem همراه با گزینه -s (--server-mode) یا با روکش‌های TLS تعیین‌شده به صورت دستی استفاده شود. برای اطلاعات بیشتر moreexamples.md را ببینید.

--pkcs12-passwd <pkcs12_passwd>

رمز عبور برای آرشیو pkcs12 مربوط به --pkcs12-der. در سیستم‌عامل Mac الزامی است.

-p, --preamble <preamble>...

افزودن رشته مشخص‌شده به ابتدای داده‌های کپی‌شده. می‌تواند چند بار مشخص شود.

-P, --preamble-reverse <preamble_reverse>...

افزودن رشته مشخص‌شده به ابتدای داده‌های کپی‌شده (جهت معکوس). می‌تواند چند بار مشخص شود.

--restrict-uri <restrict_uri>

هنگام میزبانی وب‌سوکت، فقط URI مشخص‌شده را بپذیرد، مانند `/ws` این کار سایر URIها را برای کارهایی مثل ارائه فایل‌های استاتیک یا پروکسی آزاد می‌گذارد.

-F, --static-file <serve_static_files>...

ارائه یک فایل استاتیک مشخص برای اتصالات غیر وب‌سوکت. ساختار آرگومان: <URI>:<Content-Type>:<file-path> مثال آرگومان: /index.html:text/html:index.html پوشه‌ها به دلایل امنیتی پشتیبانی نمی‌شوند و نخواهند شد. می‌تواند چند بار مشخص شود. توصیه می‌شود در انتها یا با علامت مساوی مانند `-F=...` مشخص شوند، در غیر این صورت ممکن است این گزینه آرگومان‌های موضعی را ببلعد

--ua <useragent>

تنظیم هدر درخواست `User-Agent` به این مقدار. مشابه تنظیم آن با `-H`.

--protocol <websocket_protocol>

مشخص کردن این هدر Sec-WebSocket-Protocol: هنگام اتصال

--server-protocol <websocket_reply_protocol>

اجبار استفاده از این هدر Sec-WebSocket-Protocol: هنگام پذیرش اتصال
جایگزینی مقدار Sec-WebSocket-Version
ارسال پینگ‌های وب‌سوکت در فواصل زمانی این تعداد ثانیه

--ping-timeout <ws_ping_timeout>

قطع اتصال وب‌سوکت در صورت عدم دریافت پیام Pong پس از این تعداد ثانیه

<addr1>
در حالت ساده، URL وب‌سوکت برای اتصال است. در حالت پیشرفته، آدرس نخست (انواع زیادی از آدرس‌ها وجود دارد) برای استفاده است. برای اطلاعات درباره انواع آدرس‌ها --help=types را ببینید. اگر این آدرسی برای شنود باشد، تلاش می‌کند چندین اتصال را مدیریت کند.
<addr2>
در حالت پیشرفته، آدرس دوم برای اتصال است. اگر این آدرسی برای شنود باشد، تنها یک اتصال را خواهد پذیرفت.

کلاینت خط فرمان وب‌سوکت:
websocat ws://ws.vi-server.org/mirror
سرور وب‌سوکت:
websocat -s 8080
پروکسی وب‌سوکت به TCP:
websocat --binary ws-l:127.0.0.1:8080 tcp:127.0.0.1:5678

کلاینت وب‌سوکت ناامن (ws://). آرگومان شامل میزبان و URL است.
کلاینت وب‌سوکت امن (wss://). آرگومان شامل میزبان و URL است.
سرور وب‌سوکت. آرگومان شامل میزبان و پورت برای شنود است.
شنود برای اتصالات وب‌سوکت امن روی یک پورت TCP
اتصال به میزبان و پورت TCP مشخص‌شده. آرگومان یک آدرس سوکت است.
شنود پورت TCP روی آدرس مشخص‌شده.
شنود اتصالات SSL روی یک پورت TCP
اجرای خط فرمان مشخص‌شده با استفاده از `sh -c` (حتی در ویندوز)
اجرای خط فرمان مشخص‌شده با استفاده از `sh -c` یا `cmd /C` (بسته به پلتفرم)
خواندن همگام یک فایل. آرگومان مسیر فایل است.
کوتاه کردن و نوشتن همگام در یک فایل.
افزودن همگام به انتهای یک فایل.
ارسال و دریافت بسته‌ها به سوکت UDP مشخص‌شده از یک پورت تصادفی UDP
متصل کردن یک سوکت UDP به host:port مشخص و دریافت بسته
-
خواندن ورودی از کنسول و چاپ در کنسول. حتی در یونیکس از پیاده‌سازی مبتنی بر ریسه (thread) استفاده می‌کند مگر اینکه با گزینه خط فرمان `--async-stdio` درخواست شده باشد.
کپی کردن ساده خروجی به ورودی. نیازی به آرگومان ندارد.
پاسخ با یک رشته مشخص به ازای هر بسته ورودی.
چاپ یک رشته و نادیده گرفتن ورودی.
تولید بایت‌های تصادفی هنگام خواندن و دور ریختن بایت‌های نوشته‌شده.

استفاده مجدد از این اتصال برای پاسخ به چند کلاینت و ارسال پاسخ‌ها به تمام کلاینت‌ها.
برقراری مجدد اتصال زیرین در صورت بروز هرگونه خطا یا EOF
اجرای یک دستور به ازای هر پیام دریافتی.
ثبت گزارش (لاگ) از هر بافر هنگام عبور از کانکتور زیرین.

برای مشاهده انواع آدرس بیشتر از گزینه --help=long استفاده کنید. برای مشاهده مثال‌های کوتاه و نام‌های --dump-spec برای اکثر انواع آدرس‌ها و روکش‌ها از گزینه --help=doc استفاده کنید

July 2026 websocat 1.14.1