В клиенте Outline версии 1.9.0 ключи доступа поддерживают префикс. Это список байтов, используемых в качестве первых байтов соли TCP-подключения Shadowsocks. Благодаря этому подключение выглядит как протокол, разрешенный в сети, и обходит брандмауэры, которые блокируют нераспознанные протоколы.
Когда следует применять этот прием
Если вам кажется, что пользователи вашего сервера Outline все ещё заблокированы, вы можете попробовать другие префиксы.
Инструкции
Длина префикса не должна превышать 16 байтов. Более длинный префикс может вызвать коллизии солей. Это повлияет на безопасность шифрования и может привести к обнаружению подключений. Используйте наиболее короткий префикс из возможных, чтобы обойти блокировку.
Используемый порт должен совпадать с протоколом вашего префикса. Найти сопоставленные протоколы и номера портов можно в этом списке.
Ниже перечислены некоторые примеры префиксов, которые выглядят как распространенные протоколы.
Рекомендуемый порт | Кодировка JSON | Кодировка URL | |
---|---|---|---|
HTTP-запрос | 80 (http) | "POST " |
POST%20 |
HTTP-ответ | 80 (http) | "HTTP/1.1 " |
HTTP%2F1.1%20 |
DNS-over-TCP-запрос | 53 (dns) | "\u0005\u00DC\u005F\u00E0\u0001\u0020" |
%05%C3%9C_%C3%A0%01%20 |
TLS ClientHello | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0016\u0003\u0001\u0000\u00a8\u0001\u0001" |
%16%03%01%00%C2%A8%01%01 |
TLS Application Data | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0013\u0003\u0003\u003F" |
%13%03%03%3F |
TLS ServerHello | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0016\u0003\u0003\u0040\u0000\u0002" |
%16%03%03%40%00%02 |
SSH | 22 (ssh), 830 (netconf-ssh), 4334 (netconf-ch-ssh), 5162 (snmpssh-trap) | "SSH-2.0\r\n" |
SSH-2.0%0D%0A |
Динамические ключи доступа
Чтобы использовать префикс с динамическими ключами доступа (ssconf://
), добавьте к объекту JSON ключ префикса со значением в кодировке JSON, представляющим нужный префикс (примеры указаны в таблице выше). Вы можете использовать управляющие символы (например, \u00FF) для непечатных кодовых точек Unicode в диапазоне от 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 (примеры указаны в таблице выше). Вот как это может выглядеть:
ss://Z34nthataITHiTNIHTohithITHbVBqQ1o3bkk@127.0.0.1:33142/?outline=1&prefix=<your url-encoded prefix goes here>
Вы также можете использовать функцию браузера encodeURIComponent()
, чтобы преобразовать кодировку префикса из JSON в URL. Для этого откройте консоль JavaScript в браузере Chrome: в меню выберите "Дополнительные инструменты > Инструменты разработчика" и откройте вкладку Console (Консоль). Затем введите следующее:
encodeURIComponent("<your json-encoded prefix goes here>")
Нажмите "Ввод". Полученное значение будет префиксом в кодировке URL. Например:
encodeURIComponent("\u0016\u0003\u0001\u0000\u00a8\u0001\u0001")
'%16%03%01%00%C2%A8%01%01'