پیشوند اتصال مخفی می‌شود

از «کارخواه Outline» نسخه ۱.۹.۰، کلیدهای دسترسی از گزینه «prefix» (پیشوند) پشتیبانی می‌کنند. «پیشوند» فهرست بایت‌هایی است که به‌عنوان اولین بایت‌ها در سالت مربوط به اتصال TCP در Shadowsocks استفاده می‌شود. این امر، اتصال را به‌صورت پروتکلی که در شبکه مجاز است نشان می‌دهد و دیوارهای آتشی را که پروتکل‌های شناسایی‌نشده را رد می‌کنند دور می‌زند.

چه زمانی باید این را امتحان کنم؟

اگر فکر می‌کنید کاربرانِ به‌کاراندازی Outline شما هنوز مسدود می‌شوند، می‌توانید چند پیشوند دیگر را امتحان کنید.

دستورالعمل‌ها

پیشوند نباید طولانی‌تر از ۱۶ بایت باشد. پیشوندهای طولانی‌تر باعث برخوردهای سالت می‌شود که می‌تواند رمزگذاری امنیتی را به‌خطر بیندازد و اتصال‌ها شناسایی شوند. کوتاه‌ترین پیشوند را انتخاب کنید تا انسدادی را که با آن مواجه شده‌اید دور بزنید.

درگاهی که استفاده می‌کنید باید با پروتکلی که پیشوندتان آن را وانمود می‌کند مطابقت داشته باشد. «مرجع واگذاری اعداد در اینترنت» ثبت شماره درگاه پروتکل انتقال را حفظ می‌کند که پروتکل‌ها و شماره‌های درگاه را تخصیص می‌دهد.

چند نمونه برای پیشوندهای مؤثر که شبیه پروتکل‌های معمول هستند عبارت‌اند از:

درگاه توصیه‌شده JSON-encoded URL-encoded
درخواست HTTP ‎80 (http) "POST " POST%20
پاسخ‌های HTTP ‎80 (http) "HTTP/1.1 " HTTP%2F1.1%20
درخواست DNS-over-TCP (ساناد) 53 "\u0005\u00DC\u005F\u00E0\u0001\u0020" %05%C3%9C_%C3%A0%01%20
امنیت لایه انتقال ClientHello (https) 443،‏ (smtps) 463،‏ (nntps) 563،‏ (ldaps) 636،‏ (ftps-data) 989،‏ (ftps) 990،‏ (imaps) 993،‏ (pop3s) 995،‏ (Apple APN) 5223،‏ (Play Store) 5228،‏ (turns) 5349 "\u0016\u0003\u0001\u0000\u00a8\u0001\u0001" %16%03%01%00%C2%A8%01%01
داده‌های برنامه امنیت لایه انتقال (https) 443،‏ (smtps) 463،‏ (nntps) 563،‏ (ldaps) 636،‏ (ftps-data) 989،‏ (ftps) 990،‏ (imaps) 993،‏ (pop3s) 995،‏ (Apple APN) 5223،‏ (Play Store) 5228،‏ (turns) 5349 "\u0013\u0003\u0003\u003F" %13%03%03%3F
امنیت لایه انتقال ServerHello (https) 443،‏ (smtps) 463،‏ (nntps) 563،‏ (ldaps) 636،‏ (ftps-data) 989،‏ (ftps) 990،‏ (imaps) 993،‏ (pop3s) 995،‏ (Apple APN) 5223،‏ (Play Store) 5228،‏ (turns) 5349 "\u0016\u0003\u0003\u0040\u0000\u0002" %16%03%03%40%00%02
پوسته امن (SSH) (ssh) 22،‏ (netconf-ssh) 830،‏ (netconf-ch-ssh) 4334،‏ (snmpssh-trap) 5162 "SSH-2.0\r\n" SSH-2.0%0D%0A

کلیدهای دسترسی پویا

برای استفاده از ویژگی پیشوند با کلیدهای دسترسی پویا (ssconf://)، کلید «پیشوند» را به شیء JSON به‌همراه مقدار JSON-encoded اضافه کنید که ارائه‌دهنده پیشوندی باشد که می‌خواهید_ (نمونه‌ها را در جدول بالا ببینید)_. می‌توانید از کدهای گریز (مثل ‎\u00FF) استفاده کنید تا کدپوینت‌های «یونی‌کد» چاپ‌نشدنی را در محدوده U+0 تا U+FF نمایندگی کند. برای مثال:

{
    "server": "example.com",
    "server_port": 8388,
    "password": "example",
    "method": "chacha20-ietf-poly1305",
    "prefix": "\u0005\u00DC\u005F\u00E0\u0001\u0020"
}

کلیدهای دسترسی ثابت

برای استفاده پیشوندها با کلیدهای دسترسی ثابت (ss://)، باید کلید کنونی‌تان را پیش‌از توزیع کردن آن تغییر دهید. اگر «کلید دسترسی ثابت» خود را با «مدیر Outline» تولید کرده‌اید، نسخه URL-encoded مربوط به پیشوندتان را بگیرید (نمونه‌های آن را در جدول بالا ببینید) و آن را مثل مورد زیر به انتهای کلید دسترسی اضافه کنید:

ss://Z34nthataITHiTNIHTohithITHbVBqQ1o3bkk@127.0.0.1:33142/?outline=1&prefix=<your url-encoded prefix goes here>

برای کاربران پیشرفته، می‌توانید از تابع encodeURIComponent() مرورگرتان استفاده کنید تا پیشوند JSON-encoded را به URL-encoded تبدیل کنید. برای این کار، کنسول بازرس وب خود را (*«توسعه‌دهنده > کنسول وب جاوا اسکریپت *در Chrome») باز کنید و این را تایپ کنید:

encodeURIComponent("<your json-encoded prefix goes here>")

کلید Enter را فشار دهید. مقدار تولیدشده، *نسخه *URL-encoded خواهد بود. برای مثال:

encodeURIComponent("\u0016\u0003\u0001\u0000\u00a8\u0001\u0001")
'%16%03%01%00%C2%A8%01%01'