| WEBSOCAT(1) | User Commands | WEBSOCAT(1) |
نام (NAME)
websocat - ابزار خط فرمان وبسوکت، مشابه netcat و curl و socat برای پروتکل ws://
توضیحات (DESCRIPTION)
websocat 1.14.1 Vitaly "_Vi" Shukela <vi0oss@gmail.com> ابزار خط فرمان برای وبسوکتها، مشابه netcat/curl/socat برای ws://.
نحوه استفاده (USAGE):
- websocat ws://URL | wss://URL
- (کلاینت ساده)
- websocat -s port
- (سرور ساده)
- websocat [FLAGS] [OPTIONS] <addr1> <addr2>
- (حالت پیشرفته)
فلگها (FLAGS):
- (برخی فلگها مخفی هستند، --help=long را ببینید)
-e, --set-environment
- تنظیم متغیرهای محیطی WEBSOCAT_* هنگام اجرای مشخصههای exec:/cmd:/sh-c: در حال حاضر این متغیرها WEBSOCAT_URI و WEBSOCAT_CLIENT برای نشانی URI درخواست و نشانی کلاینت (در صورت اتصال TCP) هستند. مراقب باگ شلشاک (ShellShock) یا مشکلات امنیتی مشابه باشید.
- -E, --exit-on-eof
- بستن یک جهت انتقال داده در صورت رسیدن جهت دیگر به EOF
--jsonrpc
- قالببندی پیامهای تایپشده به عنوان فراخوانیهای متد JSON RPC 2.0. کلمه اول به عنوان نام متد و بقیه به عنوان پارامترها در نظر گرفته میشوند (در صورت امکان به صورت خودکار درون [] قرار میگیرند).
- -0, --null-terminated
- استفاده از \0 به جای \n برای حالت سطری (linemode)
- گزینه --no-fixups برای مشاهده مواردی که به صورت خودکار درج میشوند و خواندن راهنمای کامل سازوکار درونی Websocat.
- -1, --one-message
- ارسال و/یا دریافت فقط یک پیام. همراه با --no-close و/یا -u/-U استفاده شود.
- --oneshot
- سرویسدهی فقط برای یک بار. با -1 (--one-message) اشتباه گرفته نشود
--print-ping-rtts
- چاپ زمان رفت و برگشت (RTT) اندازهگیریشده در stderr پس از دریافت هر پیام پونگ (pong) وبسوکت.
- -q
- بیصدا کردن تمام پیامهای تشخیصی به جز خطاهای زمان راهاندازی
- -s, --server-mode
- حالت سرور ساده: تعیین پورت TCP یا addr:port به عنوان تکآرگومان
-S, --strict
- حالت سطری/پیامی سختگیرانه: انداختن پیامهای بیش از حد طولانی به جای تقسیم آنها، انداختن خطوط ناقص.
- -k, --insecure
- پذیرش گواهیها و نامهای میزبان نامعتبر هنگام اتصال به TLS
- -u, --unidirectional
- جلوگیری از کپی دادهها در یک جهت
-U, --unidirectional-reverse
- جلوگیری از کپی دادهها در جهت معکوس (یا در هر دو جهت در صورت ترکیب با -u)
- -v
- افزایش سطح گزارشدهی جزئیات به info یا بیشتر
- -b, --binary
- ارسال پیام به وبسوکت به عنوان پیامهای باینری
- -n, --no-close
- عدم ارسال پیام Close به وبسوکت هنگام رسیدن به EOF
- -t, --text
- ارسال پیام به وبسوکت به عنوان پیامهای متنی
--base64
- کدگذاری پیامهای باینری دریافتی وبسوکت در یک خط Base64. اگر `--binary-prefix` (به `--help=full` مراجعه کنید) تنظیم شده باشد، پیامهای ارسالی وبسوکت که با این پیشوند آغاز شوند پیش از ارسال از base64 رمزگشایی میشوند.
گزینهها (OPTIONS):
- (برخی گزینهها مخفی هستند، --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 فایل مشخصشده
- -B, --buffer-size <buffer_size>
- حداکثر اندازه پیام، به بایت [پیشفرض: 65536]
--close-reason <close_reason>
- بستن اتصال همراه با پیام دلیل. این گزینه تنها در صورتی اثرگذار است که گزینه --close-status-code نیز مشخص شده باشد.
- --close-status-code <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)
- --origin <origin>
- افزودن هدر 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: هنگام پذیرش اتصال
- --websocket-version <websocket_version>
- جایگزینی مقدار Sec-WebSocket-Version
- --ping-interval <ws_ping_interval>
- ارسال پینگهای وبسوکت در فواصل زمانی این تعداد ثانیه
--ping-timeout <ws_ping_timeout>
- قطع اتصال وبسوکت در صورت عدم دریافت پیام Pong پس از این تعداد ثانیه
آرگومانها (ARGS):
- <addr1>
- در حالت ساده، URL وبسوکت برای اتصال است. در حالت پیشرفته، آدرس نخست (انواع زیادی از آدرسها وجود دارد) برای استفاده است. برای اطلاعات درباره انواع آدرسها --help=types را ببینید. اگر این آدرسی برای شنود باشد، تلاش میکند چندین اتصال را مدیریت کند.
- <addr2>
- در حالت پیشرفته، آدرس دوم برای اتصال است. اگر این آدرسی برای شنود باشد، تنها یک اتصال را خواهد پذیرفت.
مثالهای پایه (Basic examples):
- کلاینت خط فرمان وبسوکت:
- 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
فهرست بخشی از انواع آدرسها (Partial list of address types):
- ws://
- کلاینت وبسوکت ناامن (ws://). آرگومان شامل میزبان و URL است.
- wss://
- کلاینت وبسوکت امن (wss://). آرگومان شامل میزبان و URL است.
- ws-listen:
- سرور وبسوکت. آرگومان شامل میزبان و پورت برای شنود است.
- wss-listen:
- شنود برای اتصالات وبسوکت امن روی یک پورت TCP
- tcp:
- اتصال به میزبان و پورت TCP مشخصشده. آرگومان یک آدرس سوکت است.
- tcp-listen:
- شنود پورت TCP روی آدرس مشخصشده.
- ssl-listen:
- شنود اتصالات SSL روی یک پورت TCP
- sh-c:
- اجرای خط فرمان مشخصشده با استفاده از `sh -c` (حتی در ویندوز)
- cmd:
- اجرای خط فرمان مشخصشده با استفاده از `sh -c` یا `cmd /C` (بسته به پلتفرم)
- readfile:
- خواندن همگام یک فایل. آرگومان مسیر فایل است.
- writefile:
- کوتاه کردن و نوشتن همگام در یک فایل.
- appendfile:
- افزودن همگام به انتهای یک فایل.
- udp:
- ارسال و دریافت بستهها به سوکت UDP مشخصشده از یک پورت تصادفی UDP
- udp-listen:
- متصل کردن یک سوکت UDP به host:port مشخص و دریافت بسته
- -
- خواندن ورودی از کنسول و چاپ در کنسول. حتی در یونیکس از پیادهسازی مبتنی بر ریسه (thread) استفاده میکند مگر اینکه با گزینه خط فرمان `--async-stdio` درخواست شده باشد.
- mirror:
- کپی کردن ساده خروجی به ورودی. نیازی به آرگومان ندارد.
- literalreply:
- پاسخ با یک رشته مشخص به ازای هر بسته ورودی.
- literal:
- چاپ یک رشته و نادیده گرفتن ورودی.
- random:
- تولید بایتهای تصادفی هنگام خواندن و دور ریختن بایتهای نوشتهشده.
فهرست بخشی از روکشها (Partial list of overlays):
- broadcast:
- استفاده مجدد از این اتصال برای پاسخ به چند کلاینت و ارسال پاسخها به تمام کلاینتها.
- autoreconnect:
- برقراری مجدد اتصال زیرین در صورت بروز هرگونه خطا یا EOF
- foreachmsg:
- اجرای یک دستور به ازای هر پیام دریافتی.
- log:
- ثبت گزارش (لاگ) از هر بافر هنگام عبور از کانکتور زیرین.
برای مشاهده انواع آدرس بیشتر از گزینه --help=long استفاده کنید. برای مشاهده مثالهای کوتاه و نامهای --dump-spec برای اکثر انواع آدرسها و روکشها از گزینه --help=doc استفاده کنید
| July 2026 | websocat 1.14.1 |