Глоссарий
HTTP proxy, обычный прокси
HTTP proxy это сервер, который делает запросы в сеть за вас, а для закрытых сайтов открывает простой туннель.
Два способа нести запрос
HTTP proxy говорит на языке самой сети, поэтому понимает, чего у него просят, и может на это повлиять.
Понимание кончается на первом же закрытом сайте: дальше он несёт байты, прочесть которые не может. Об этом и договариваются туннелем.
- 1
Открытый запрос
Весь адрес уходит в строку запроса, и страницу забирает для вас сам прокси.
- 2
Туннель для остального
Для закрытого сайта прокси просят открыть трубу, и после этого он перестаёт читать то, что через неё идёт.
- 3
Логин отдельным заголовком
Имя и пароль едут своим отдельным заголовком: закодированы для передачи и не защищены при этом ничем.
Один адрес на все схемы
Браузеру отдаётся один адрес прокси одной строкой, и эта строка применяется ко всему, что он открывает.
Правило, отправляющее в прокси один открытый http, пускает закрытый трафик напрямую, а сегодня это весь трафик целиком. Когда годного правила не складывается, запуск отклоняют и называют причину.
Приставка говорит, как мы идём до прокси
Закрытая связь до прокси
Запись может быть написана как https, и это значит, что участок между вами и прокси сам по себе закрыт.
Именно этот участок защищает заголовок с логином: обычный http-прокси несёт его читаемым для любого, кто стоит по дороге.
Строка от продавца часто приходит вообще без схемы, и такую строку читают как обычный http. Если вы купили прокси с закрытым участком до него, в строке это должно быть сказано прямо.
Где живёт пароль
Строку запуска читает любой процесс, идущий под вашей учётной записью, а домашний трафик продают гигабайтами.
Поэтому пароль держит маленький местный прокси, а в строке запуска стоит адрес на петле. Поднимают его только для записи, у которой логин вообще есть.
Пароль хранится один раз, в записи библиотеки, а на эту запись ссылается сколько угодно профилей. Смена пароля трогает одно место, а не полсотни.
Часто путают с этим
SOCKS5
Передаёт связь, не читая её. HTTP proxy читает запрос и может на него ответить, отказать или поправить его по дороге.
VPN
Несёт всё, что делает машина, и все окна разом. Запись прокси принадлежит одному профилю.
Прокси в настройках системы
Одна настройка на все браузеры и на все программы этой машины. Отдельные профили заводят как раз от этого.
Чего это не делает
- Это не шифрует ваш трафик. Туннель это всего лишь труба, а закрытость внутри неё принадлежит сайту, а не прокси.
- Это не прячет от хозяина прокси, какой сайт вы открываете. Узел называют ещё до того, как труба построена.
- Вставленную строку без схемы читают как обычный http, а не отвергают. Незнакомую схему как раз отвергают: тихое понижение оставило бы вас открытым при полной уверенности в обратном.
- Это не делает адрес почтенным. Серверный адрес соцсети узнают как серверный, каким бы протоколом его ни несли.
Проверить
За каждым утверждением выше стоит место в коде и стенд.
- Один адрес накрывает все схемы, и правило не читают, а исполняют
- apps/desktop/test/proxy-covers-https.js
- Туннель и открытый запрос идут против настоящего прокси, который требует логин
- apps/desktop/test/proxy-auth-bridge.js
- Прокси с логином работает на отгружаемом движке, а пароль в строку запуска не попадает
- apps/desktop/test/прокси-с-паролем-живьём.js
- Вставленную строку разбирает один и тот же код для программы и для кабинета
- packages/shared/src/proxy-line.js
Вопросы
- Хватит ли HTTP proxy для закрытых сайтов?
- Да, через туннель. Важно другое: чтобы правило накрывало все схемы, а не один только открытый http.
- Почему пароля нет в строке запуска?
- Потому что эту строку читает любая программа, идущая под вами, и потому что движок вписанный туда пароль отвергает вовсе.
- Что значит https перед адресом прокси?
- Что участок до прокси закрыт, и заголовок с логином на нём прочесть нельзя. Адрес выхода и всё, что идёт после него, остаются прежними.
- HTTP proxy медленнее, чем SOCKS5?
- На деле это решает сеть, а не протокол. Гораздо важнее то, где физически стоит сам адрес и сколько людей сидит за ним.
- Может ли прокси прочесть то, что я отправляю?
- Для закрытого сайта не больше, чем имя узла. Для открытого http всё целиком, вместе с тем, что вы туда вписали.
Заведите его в профиле
Бесплатный тариф даёт два профиля, без срока и без карты.