.\" Text automatically generated by txt2man .TH TURN 1 "17 May 2026" "" "" .SH "اطلاعات عمومی (GENERAL INFORMATION)" مجموعه‌ای از برنامه‌های turnutils_* قابلیت‌های کاربردی متنوعی را برای آزمایش و راه‌اندازی سرور TURN فراهم می‌کنند. .TP .B 1. turnutils_uclient: چندین کلاینت UDP، TCP، TLS یا DTLS را شبیه‌سازی می‌کند. (این برنامه صرفاً برای اهداف آزمایشی ارائه شده است!) تصویر باینری کامپایل‌شدهٔ این برنامه در زیرشاخهٔ bin/ قرار دارد. .TP .B 2. turnutils_peer: یک سرور سادهٔ بدون‌وضعیت (stateless) و فقط\-UDP از نوع «echo»، برای استفاده به عنوان سرور نهایی در الگوی بازپخش (relay موسوم به «peer»). این سرور برای هر بستهٔ ورودی UDP، صرفاً آن را بازمی‌فرستد (echo می‌کند). (این برنامه صرفاً برای اهداف آزمایشی ارائه شده است!) هنگامی که کلاینت‌های آزمایشی به صورت کلاینت\-به\-کلاینت (client\-to\-client) ارتباط برقرار می‌کنند (زمانی که برنامهٔ «turnutils_uclient» با گزینهٔ «\-y» استفاده می‌شود)، نیازی به turnutils_peer نخواهد بود. .PP تصویر باینری کامپایل‌شدهٔ این برنامه در زیرشاخهٔ bin/ قرار دارد. .TP .B 3. turnutils_stunclient: یک نمونه کلاینت سادهٔ STUN. تصویر باینری کامپایل‌شدهٔ این برنامه در زیرشاخهٔ bin/ قرار دارد. .TP .B 4. turnutils_rfc5769check: ابزاری که صحت پیاده‌سازی پروتکل STUN/TURN را بررسی می‌کند. این ابزار فقط برای فرایند بررسی زمان کامپایل استفاده می‌شود و در مقصد نصب کپی نمی‌شود. .PP در زیرشاخهٔ «examples/scripts»، نمونه‌هایی از خطوط فرمان برای اجرای برنامه‌ها را خواهید یافت. این اسکریپت‌ها برای اجرا از زیرشاخهٔ examples/ در نظر گرفته شده‌اند، برای مثال: .PP $ cd examples .PP $ ./scripts/secure_relay.sh .TP .B 5. turnutils_natdiscovery: ابزاری که رفتارهای NAT را بر اساس RFC5780 کشف و شناسایی می‌کند. این ابزار رفتار واقعی نگاشت (Mapping) و فیلترسازی (Filtering) در NAT و موارد دیگر را شناسایی می‌کند. توجه داشته باشید که در سمت سرور TURN باید دو نشانی IP شنود مختلف پیکربندی شده باشد تا بتواند به درستی کار کند! .TP .B 6. turnutils_oauth: ابزاری که \fBتولید\fP (رمزنگاری AEAD)، اعتبارسنجی و رمزگشایی access_token در OAuth را ارائه می‌دهد. این ابزار تمام کلیدها، طول‌عمرها و هرگونه اطلاعات مرتبطِ مورد نیاز برای ایجاد و اعتبارسنجی یک access_token را به عنوان ورودی دریافت می‌کند. خروجی آن یک JSON شامل تمام پارامترهای OAuth PoP است که باید به کلاینت منتقل شوند. خروجی بر اساس RFC7635 پیوست B، شکل 8 تولید می‌شود. .PP برای جزئیات بیشتر و ساختار access_token، سند rfc7635 را بخوانید و اسکریپت موجود در examples/scripts/oauth.sh را بررسی کنید. .RE .PP .SH ===================================== .SS "نام (NAME)" \fB \fBturnutils_uclient \- این برنامهٔ شبیه‌سازی کلاینت صرفاً برای اهداف آزمایشی ارائه شده است. \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_uclient [\-tTSvsyhcxg] [options] .fam T .fi .fam T .fi.SS توضیحات (DESCRIPTION) این ابزار برای شبیه‌سازی چندین کلاینت طراحی شده است. از API ورودی/خروجی ناهمگام در libevent برای مدیریت چندین کلاینت استفاده می‌کند. کلاینت به رله متصل می‌شود، نشست را مذاکره می‌کند، و چندین پیام (به تعداد پیکربندی‌شده) به سرور (رله) می‌فرستد، و در انتظار دریافت همان تعداد پاسخ می‌ماند. طول پیام‌ها قابل پیکربندی است. پیام یک جریان دلخواه از بایت‌ها (octet stream) است. تعداد پیام‌های ارسالی قابل پیکربندی است. .PP پرچم‌ها: .TP .B \fB\-t\fP استفاده از TCP برای ارتباطات میان کلاینت و سرور TURN (پیش‌فرض UDP است). .TP .B \fB\-b\fP استفاده از SCTP برای ارتباطات میان کلاینت و سرور TURN (پیش‌فرض UDP است). .TP .B \fB\-T\fP استفاده از TCP برای انتقال رله (پیش‌فرض \- UDP). مستلزم گزینه‌های \-t، \-y و \-c است، و پرچم‌ها و گزینه‌های \-s، \-e، \-r و \-g را نادیده می‌گیرد. می‌تواند همراه .RE با \-b استفاده شود. .RS .TP .B \fB\-P\fP حالت Passive TCP (استاندارد RFC6062 با پییرِ فعال). مستلزم \-T است. .TP .B \fB\-S\fP اتصال امن SSL: پروتکل SSL/TLS برای TCP، پروتکل DTLS برای UDP، و TLS/SCTP برای SCTP. .TP .B \fB\-U\fP اتصال امنِ رمزنگاری‌نشده (مجموعه eNULL): پروتکل SSL/TLS برای TCP، پروتکل DTLS برای UDP. .TP .B \fB\-v\fP حالت پرگو (اطلاعات تفصیلی). .TP .B \fB\-s\fP استفاده از روش "Send" در TURN؛ به‌طور پیش‌فرض از TURN Channels استفاده می‌کند. .TP .B \fB\-y\fP استفاده از اتصالات کلاینت به کلاینت (client\-to\-client): جفت کانال RTP/RTCP به جفت کانال RTP/RTCP دیگر. .RE با این گزینه، برنامه turnutils_peer استفاده نمی‌شود، چرا که نقاط پایانی رله‌ی تخصیص‌یافته با یکدیگر تبادل داده می‌کنند. .RS .TP .B \fB\-h\fP انتظار نامحدود پس از ارسال آخرین بسته. .TP .B \fB\-c\fP اتصالات rtcp ایجاد نشود. .TP .B \fB\-x\fP درخواست آدرس رله‌ی IPv6 (استاندارد RFC6156). .TP .B \fB\-X\fP درخواست صریح آدرس رله‌ی IPv4. .TP .B \fB\-g\fP تنظیم پارامتر DONT_FRAGMENT در درخواست‌های TURN. .TP .B \fB\-D\fP انجام پدینگ (padding) اجباری کانال حتی برای UDP (مانند pjnath). .TP .B \fB\-N\fP انجام آزمون‌های منفی (تنها در موارد محدود). .TP .B \fB\-R\fP انجام آزمون‌های منفی پروتکل. .TP .B \fB\-O\fP حالت حمله منع خدمت (DOS). .TP .B \fB\-M\fP استفاده از TURN ICE Mobility. .TP .B \fB\-I\fP عدم تنظیم مجوزها بر روی نقاط پایانی رله‌ی TURN (جهت آزمایش کارکرد غیر استاندارد رله‌ی سرور). .RE .RS .TP .B \fB\-G\fP ایجاد درخواست‌های اضافه (create permissions،‏ channel bind). .TP .B \fB\-B\fP قطع اتصال تصادفی پس از ارسال چند بسته‌ی اولیه. .TP .B \fB\-Z\fP تخصیص دوگانه (SSODA). مستلزم گزینه \-c است. .TP .B \fB\-J\fP استفاده از oAuth با کلیدهای آزمایشی پیش‌فرض kid='north'،‏ 'union' یا 'oldempire'. .TP .B \fB\-Y\fP حالت مولد بار (Load\-generator): زیرحالت packet داده‌ها را از طریق یک تخصیص منفرد TURN با حداکثر سرعت ممکن سرازیر می‌کند (flood)، .RE زیرحالت alloc تخصیص‌ها را با حداکثر سرعت ممکن ایجاد می‌کند، و زیرحالت invalid بسته‌های کوچک نامعتبر را با بیشترین سرعت به شنونده‌ی TURN می‌فرستد. حالت‌های تولید بار مستلزم \-c بوده و از \-y پشتیبانی نمی‌کنند. .RS .TP .B \fB\-\-no\-even\-port\fP هرگز صفت EVEN\-PORT به درخواست‌های ALLOCATE ضمیمه نشود. مسیر پیش‌فرض clnet_allocate حتی تحت \-c نیز به‌صورت تصادفی 0 یا \-1 را انتخاب می‌کند، .RE که حالت \-\-multiplex\-peer در turnserver آن را اکیداً با خطای 400 رد می‌کند. از \-\-no\-even\-port برای اجرای بی‌نقص alloc\-flood و هرگونه آزمون دیگر در برابر \-\-multiplex\-peer استفاده کنید. .RS .TP .B \fB\-\-listener\-threads\fP تعداد ریسمان‌های دریافت (شنونده) در loadgen (همچنین به‌صورت \-K N در دسترس است). مقدار پیش‌فرض auto: مقدار 0 برای \-m < 4، که ارتقا می‌یابد به 1 .RE زمانی که \-m >= 4 باشد. مقدار 0 رفتار سنتی مبتنی بر پایه‌ی رویداد تکی (single\-event\-base) را حفظ می‌کند. هر شنونده پایه‌ی libevent اختصاصی خود را دارد؛ نشست‌ها به‌صورت نوبت‌گردشی (round\-robin) تسهیم (shard) می‌شوند. حداکثر 4. .RS .TP .B \fB\-\-sender\-threads\fP تعداد ریسمان‌های ارسال (مبتنی بر تایمر) در loadgen. مقدار پیش‌فرض auto: مقدار 0 به ازای \-m < 4، که ارتقا می‌یابد به 2 هنگامی که \-m >= 4 باشد. مقدار 0 .RE رفتار سنتی ارسال تک‌ریسمانی را حفظ می‌کند (تابع timer_handler در ریسمان اصلی روی تمام نشست‌ها پیمایش می‌کند). هر ارسال‌کننده پایه‌ی libevent و شارد نشست اختصاصی خود را دارد؛ ارسال‌های در هر تیک در یک sendmsg از نوع UDP\-GSO (یا یک sendmmsg در صورت عدم دسترسی به GSO) ادغام می‌شوند. حداکثر 4. .RS گزینه‌ها با مقادیر الزامی: .TP .B \fB\-l\fP طول پیام (پیش‌فرض: 100 بایت). .TP .B \fB\-i\fP فایل گواهی (تنها برای اتصالات امن، اختیاری). .TP .B \fB\-k\fP فایل کلید خصوصی (تنها برای اتصالات امن). .TP .B \fB\-E\fP فایل CA جهت اعتبارسنجی گواهی سرور، در صورتی که گواهی سرور باید تأیید اعتبار شود. .RE .RS.TP .B \fB\-p\fP پورت کارساز TURN (پیش‌فرض‌ها: 3478 غیرامن، 5349 امن). .TP .B \fB\-n\fP تعداد پیام‌ها برای ارسال (پیش‌فرض: 5). در حالت load\-generator، گزینهٔ \-n بیانگر تعداد عملیات‌ها به ازای هر کلاینت است. .RE اگر در آنجا مشخص نشود، کلاینت تا زمان متوقف شدن اجرا خواهد شد. .RS .TP .B \fB\-d\fP دستگاه رابط محلی (اختیاری، فقط لینوکس). .TP .B \fB\-L\fP نشانی IP محلی (اختیاری). .TP .B \fB\-m\fP تعداد کلاینت‌ها (پیش‌فرض: 1، 2 یا 4، بسته به گزینه‌ها). .TP .B \fB\-e\fP نشانی همتا (peer). .TP .B \fB\-r\fP پورت همتا (پیش‌فرض: 3480). .TP .B \fB\-z\fP فاصلهٔ زمانی ارسال بسته‌ها بر حسب میلی‌ثانیه برای هر نشست (پیش‌فرض: 20). در حالت‌های load\-generator بسته (packet) و نامعتبر (invalid)، مقدار پیش‌فرض 0 میلی‌ثانیه است. .RE .RS .TP .B \fB\-u\fP نام کاربری STUN/TURN. .TP .B \fB\-w\fP گذرواژهٔ کاربر STUN/TURN. .TP .B \fB\-W\fP کلید مخفی (secret) مربوط به TURN REST API. رمز «متن خام» مانند \(lqnorth\(rq که در صورت پویا بودن در ستون value از جدول turn_secret .RE پایگاه‌داده ذخیره می‌شود، یا مقدار static\-auth\-secret تنظیم‌شده در فایل پیکربندی در صورت استفاده از حالت ایستا. .RS .TP .B \fB\-C\fP این نویسه (نماد) جداکنندهٔ برچسب زمان/نام کاربری در TURN REST API است. مقدار پیش‌فرض : است. .RE .RS .TP .B \fB\-F\fP مجموعه الگوریتم‌های رمزنگاری (Cipher suite) برای TLS/DTLS. مقدار پیش‌فرض DEFAULT است. .TP .B \fB\-o\fP مقدار مشخصهٔ (attribute) ORIGIN در STUN. .TP .B \fB\-a\fP پهنای باند برای درخواست پهنای باند در ALLOCATE. مقدار پیش‌فرض صفر است. .PP نکات مربوط به حالت load\-generator: .IP \(bu 3 حالت packet همچنان تخصیص/راه‌اندازی معمول TURN را انجام می‌دهد و سپس بی‌درنگ و بدون تنظیم آهنگ ارسال (no pacing) شروع به ارسال می‌کند. .IP \(bu 3 حالت alloc نیازی به \-e ندارد؛ این حالت به‌طور مکرر تخصیص‌های جدید ایجاد کرده و دوباره آن‌ها را می‌بندد. .IP \(bu 3 حالت alloc نیازی به \-e ندارد؛ این حالت به‌طور مکرر تخصیص‌های جدید ایجاد می‌کند، برای هر کدام از یک پورت محلی کلاینت یکتا استفاده می‌نماید، هر یک را به یک ip:port همتای ساختگی یکتا متصل کرده، و دوباره آن‌ها را می‌بندد. .IP \(bu 3 حالت invalid نیازی به \-e ندارد؛ به‌طور پیش‌فرض از بار دادهٔ (payload) ۱۶ بایتی استفاده می‌کند مگر اینکه \-l مشخص شده باشد. .PP مثال‌های موجود در دایرکتوری \(lqexamples/scripts\(rq را ببینید..SH ====================================== .SS "نام (NAME)" \fB \fBturnutils_peer \- یک کارساز پسانه بازتاب (echo backend) ساده و منحصراً مبتنی بر UDP. \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_peer [\-v] [options] .fam T .fi .fam T .fi .SS "توضیحات (DESCRIPTION)" این برنامه فقط برای اهداف آزمایشی، به عنوان یک همتا (peer) برای برنامه turnutils_uclient استفاده می‌شود. .PP گزینه‌های دارای مقادیر الزامی: .TP .B \fB\-p\fP درگاه UDP شنود (پیش‌فرض: 3480). .TP .B \fB\-d\fP دستگاه رابط شنود (اختیاری). .TP .B \fB\-L\fP نشانی شنود کارساز turnutils_peer. می‌توان از چندین نشانی شنود، اعم از IPv4 و IPv6 استفاده کرد. اگر هیچ نشانی شنودی تعریف نشود، روی تمامی نشانی‌های IPv4 و IPv6 شنود انجام خواهد شد. .TP .B \fB\-v\fP پُرگویی (Verbose). .SH ======================================== .SS "نام (NAME)" \fB \fBturnutils_stunclient \- یک کلاینت پایه برای STUN. \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_stunclient [options] .fam T .fi .fam T .fi .SS "توضیحات (DESCRIPTION)" این برنامه یک درخواست STUN RFC 5389 «جدید» (بر بستر UDP) ارسال کرده و اطلاعات پاسخ را نمایش می‌دهد. .PP گزینه‌های دارای مقادیر الزامی: .TP .B \fB\-p\fP درگاه کارساز STUN (پیش‌فرض: 3478). .TP .B \fB\-L\fP نشانی محلی مورد استفاده (اختیاری). .TP .B \fB\-f\fP اجبار به پردازش RFC 5780. .TP .B \fB\-c\fP ارسال مداوم درخواست‌های انقیاد (binding) پروتکل STUN و گزارش تاخیر رفت و برگشت تا زمان توقف. .TP .B \fB\-i\fP فاصله زمانی بین درخواست‌های متوالی به میلی‌ثانیه (پیش‌فرض: 1000). .TP .B \fB\-t\fP مهلت زمانی پاسخ به میلی‌ثانیه (پیش‌فرض: 3000). .PP برنامه turnutils_stunclient نتایج نخستین درخواست را بررسی می‌کند، و در صورتی که کارساز STUN از RFC 5780 پشتیبانی کند (پاسخ انقیاد این موضوع را مشخص می‌کند)، آنگاه turnutils_stunclient چند درخواست دیگر با پارامترهای متفاوت ارسال می‌کند تا قابلیت‌های کشف NAT را نشان دهد. .PP حالت پیوسته (Continuous) هر پاسخ یا اتمام مهلت زمانی را گزارش کرده و هنگام ایجاد وقفه با استفاده از کلیدهای Ctrl\-C، میزان از دست رفتن بسته‌ها و کمینه/میانگین/بیشینه تاخیر رفت و برگشت را چاپ می‌کند. .PP این ابزار از پروتکل STUN «قدیمی» یا «کلاسیک» (RFC 3489) پشتیبانی نمی‌کند..SH ===================================== .SS "نام (NAME)" \fB \fBturnutils_rfc5769check \- ابزاری که صحت پیاده‌سازی پروتکل STUN را بررسی می‌کند. \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_rfc5769check .fam T .fi .fam T .fi .SS "توضیحات (DESCRIPTION)" ابزار \fIturnutils_rfc5769check\fP صحت پیاده‌سازی پروتکل STUN را در برابر بردارهای آزمون از پیش تعریف‌شده در RFC 5769 می‌آزماید و نتایج آزمون‌ها را روی صفحه چاپ می‌کند. این ابزار تنها برای فرایند بررسی هنگام کامپایل استفاده می‌شود و در مقصد نصب کپی نمی‌گردد. .PP کاربرد: .PP $ turnutils_rfc5769check .SH ===================================== .SS "نام (NAME)" \fB \fBturnutils_natdiscovery \- ابزاری برای کشف رفتار نگاشت و فیلترسازی \fBNAT مطابق با RFC5780. \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_natdiscovery [options] .fam T .fi .fam T .fi .SS "توضیحات (DESCRIPTION)" ابزار \fIturnutils_natdiscovery\fP رفتار نگاشت (Mapping) و فیلترسازی (Filtering) NAT را کشف می‌کند تا مشخص شود که آیا NAT در حال حاضر از نگاشت‌های Endpoint\-Independent، Address\-Dependent یا Address and Port\-Dependent استفاده می‌کند و/یا مشخص کند که آیا NAT از فیلترسازی‌های Endpoint\-Independent، Address\-Dependent یا Address and Port\-Dependent بهره می‌برد یا خیر. .PP برای کشف رفتار NAT از یکی از پرچم‌های \-m، \-f، \-c یا \-H استفاده کنید. .PP پرچم‌ها: .TP .B \fB\-m\fP کشف رفتار نگاشت (mapping) NAT .TP .B \fB\-f\fP کشف رفتار فیلترسازی (filtering) NAT .TP .B \fB\-t\fP کشف رفتار طول عمر نگاشت NAT نیازمند یک زمان‌سنج (\-T) است .RE .RS .TP .B \fB\-c\fP کشف رفتار برخورد (collision) NAT .TP .B \fB\-H\fP کشف رفتار هیرپینینگ (hairpinning) NAT .TP .B \fB\-P\fP افزودن ۱۵۰۰ بایت Padding به عملیات کشف رفتار قابل اعمال در همه موارد به جز کشف طول عمر نگاشت NAT .RE .RS گزینه‌ها با مقادیر الزامی: .TP .B \fB\-p\fP درگاه سرور STUN (پیش‌فرض: 3478) .TP .B \fB\-L\fP نشانی محلی مورد استفاده (اختیاری) .TP .B \fB\-l\fP درگاه محلی مورد استفاده (همراه با \-L استفاده شود) .TP .B \fB\-A\fP نشانی محلی ثانویه (اختیاری) برای کشف برخورد (collision) الزامی است .RE .RS .TP .B \fB\-T\fP زمان‌سنج طول عمر نگاشت (ثانیه) مورد استفاده در کشف رفتار طول عمر نگاشت .RE .RS کاربرد: .PP $ turnutils_natdiscovery \-m \-f stun.example.com.SH ===================================== .SS "نام (NAME)" \fB \fBturnutils_oauth \- ابزاری کمکی برای تولید/رمزنگاری و اعتبارسنجی/رمزگشایی access_token در OAuth \fB .SS "خلاصه دستور (SYNOPSIS)" .nf .fam C $ turnutils_oauth [options] .fam T .fi .fam T .fi .SS "توضیحات (DESCRIPTION)" ابزار \fIturnutils_oauth\fP در رمزنگاری و/یا رمزگشایی access_token در OAuth با استفاده از AEAD (رمزنگاری احرازشده با داده‌های وابسته) کمک می‌کند. این ابزار به سرور احراز هویت (Auth Server) در ایجاد access_token، و همچنین برای مقاصد اشکال‌زدایی در اعتبارسنجی و رمزگشایی access_token یاری می‌رساند. این ابزار تمام کلیدها، طول‌عمرها و هرگونه اطلاعات مرتبطِ لازم برای رمزنگاری یا رمزگشایی یک access_token را به عنوان ورودی دریافت می‌کند. خروجی آن یک JSON شامل تمام پارامترهای OAuth PoP است که باید به کلاینت تحویل داده شوند. خروجی مطابق با RFC7635، پیوست B، شکل ۸ تولید می‌شود. این ابزار می‌تواند به ساخت یک سرویس Auth Server کمک کند، اما توجه داشته باشید که این ابزار «session key» / «mac_key» تولید نمی‌کند و طول‌عمر «session key» / «mac_key» یا «Auth key» را نیز اعتبارسنجی نمی‌نماید. برای جزئیات بیشتر و ساختار access_token، سند rfc7635 را مطالعه کرده و مثال موجود در examples/scripts/oauth.sh را ببینید. .PP از پرچم‌های \-e و/یا \-d برای رمزنگاری یا رمزگشایی access_token استفاده کنید. .PP پرچم‌ها: .TP .B \fB\-h\fP, \-\-help راهنمای استفاده .TP .B \fB\-v\fP, \-\-verbose حالت پرگو (verbose) .TP .B \fB\-e\fP, \-\-encrypt رمزنگاری توکن .TP .B \fB\-d\fP, \-\-decrypt رمزگشایی و اعتبارسنجی توکن .PP گزینه‌ها با مقادیر الزامی: .TP .B \fB\-i\fP, \-\-server\-name نام سرور (حداکثر ۲۵۵ نویسه) .TP .B \fB\-j\fP, \-\-auth\-key\-id شناسهٔ کلید Auth (حداکثر ۳۲ نویسه) .TP .B \fB\-k\fP, \-\-auth\-key کلید Auth کدگذاری‌شده با base64 .TP .B \fB\-l\fP \-\-auth\-key\-timestamp برچسب زمانی کلید Auth (ثانیه از مبدأ زمان epoch) .TP .B \fB\-m\fP, \-\-auth\-key\-lifetime طول‌عمر کلید Auth به ثانیه .TP .B \fB\-n\fP, \-\-auth\-key\-as\-rs\-alg الگوریتم رمزنگاری میان Authorization Server(AS) \- Resource Server(RS) .TP .B \fB\-o\fP, \-\-token\-nonce نانس (nonce) کدگذاری‌شده با base64 به مقدار base64(12 octet) = 16 char .TP .B \fB\-p\fP, \-\-token\-mac\-key کلید MAC کدگذاری‌شده با base64 به مقدار base64(32 octet) = 44 char .TP .B \fB\-q\fP, \-\-token\-timestamp برچسب زمانی در قالب ۶۴ بیتی بدون علامت (قالب بومی \- Unix)، به این صورت که ۴۸ بیت برای ثانیه‌ها از مبدأ زمان UTC به علاوهٔ ۱۶ بیت برای کسرهای ۱/۶۴۰۰۰ ثانیه. .RE برای مثال: unixtimestamp واقعی ۱۶ بیت به چپ شیفت داده شده است. (پیش‌فرض: gmtime واقعی) .RS .TP .B \fB\-r\fP, \-\-token\-lifetime طول‌عمر به ثانیه (پیش‌فرض: 3600) .TP .B \fB\-t\fP, \-\-token توکن رمزنگاری‌شدهٔ کدگذاری‌شده با base64 برای اعتبارسنجی و رمزگشایی .TP .B \fB\-u\fP, \-\-hmac\-alg الگوریتم hmac کلاینت stun .PP نحوه استفاده: .PP $ turnutils_natdiscovery.SH =================================== .SH "مستندات (DOCS)" پس از نصب، این دستور را اجرا کنید: .PP $ man turnutils .PP یا در دایرکتوری ریشه پروژه: .PP $ man \-M man turnutils .PP تا صفحه راهنما را مشاهده کنید. .SH ===================================== .SH "فایل‌ها (FILES)" /etc/turnserver.conf .PP /var/db/turndb .PP /usr/local/var/db/turndb .PP /var/lib/turn/turndb .PP /usr/local/etc/turnserver.conf .SH ================================= .SH "دایرکتوری‌ها (DIRECTORIES)" /usr/local/share/turnserver .PP /usr/local/share/doc/turnserver .PP /usr/local/share/examples/turnserver .SH =================================== .SH "استانداردها (STANDARDS)" استاندارد STUN جدید RFC 5389 .SH TURN RFC 5766 افزونه TURN\-TCP RFC 6062 .PP افزونه TURN IPv6 RFC 6156 .PP بردارهای آزمون STUN/TURN RFC 5769 .PP کشف رفتار NAT در STUN RFC 5780 .SH ==================================== .SH "همچنین ببینید (SEE ALSO)" turnserver, turnadmin .SH ====================================== .SS "منابع وب (WEB RESOURCES)" صفحه پروژه: https://github.com/coturn/coturn صفحه ویکی: https://github.com/coturn/coturn/wiki انجمن گفتگو: https://groups.google.com/forum/?fromgroups=#!forum/turn\-server\-project\-rfc5766\-turn\-server .SH ====================================== .SS "نویسندگان (AUTHORS)" فایل AUTHORS.md را در توزیع کد منبع coturn مشاهده کنید.