Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp
На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.
В этой статье я описал универсальное решение, которое обеспечивает прозрачный доступ к международному интернету в обход цензуры, использует передовые технологии маскировки трафика, не зависит от одной корпорации и главное — имеет избыточный «запас прочности» от воздействия цензоров.
Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).
Если у вас ещё нет личного прокси для обхода цензуры — это знак.
TL;DR; Универсальное решение:
VPS в Европе, панель 3X-UI для управление Xray, прокси VLESS-Reality для прямого соединения, прокси VLESS-tls-grpc для запасного соединения через CDN CloudFlare, российский трафик напрямую - либо через цепочку VPS->WARP, доступ к заблокированным в Европе сервисам - через цепочку VPS->WARP
Предисловие
Пару месяцев назад, в телеграмм‑чате «амнезии» с обсуждением обхода цензуры, нонейм привёл пример «стоматолога из Чертаново», которому интересно‑бы поднять свой сервер, но он «ниасилил» технарские статьи, не готов гуглить ошибки и ему бы понятный мануал: сделай так и всё заработает.
Я и сам своего рода «стоматолог из Чертаново»: уже более 15 лет не работаю в IT.
Помню, как пару лет назад купил виртуальный сервер «на поиграться» и боялся вводить там команды, так что весь оплаченный период он бездействовал. Но, в итоге, обход цензуры стал моим хобби, я разобрался в теме и теперь пишу статью, ориентируясь на себя: в прошлом я был бы рад встретить подобную инструкцию.
Я считаю предлагаемое решение — универсальным. Это моё субъективное мнение, подкреплённое собственным опытом, а также опытом единомышленников (не всех:) из тг‑чата , где мы обсуждаем настройку и эксплуатацию разных прокси и ви‑пи‑энов. (обращаю внимание что это именно чат, не канал, я не являюсь его владельцем/модератором и он не монетизируется в данный момент. Просто место где можно задать вопрос и поделиться опытом по теме.)
Наверняка найдутся читатели, которые посчитают решение из этой статьи избыточным — либо наоборот, недостаточным (если так — приглашаю вас в комментарии). Однако я смею утверждать, что — настроив прокси по этой инструкции — вы надолго забудете о проблеме цензуры.
Выполнение данной инструкции занимает у меня занимает полчаса, у тех кто вообще не в теме — пару вечеров.
Предлагаю технарям сразу простить меня за то, что описываю некоторые вопросы чересчур подробно: она из целей этой статьи — повышение IT‑образования среди неайтишников.
Саму инструкцию вы найдёте во второй части статьи. Сперва же я сориентирую желающих разобраться в текущем положении дел и аргументирую используемые решения.
Теория (1/3) Цензура в интернете
Цензура в РФ
В РФ сейчас имеют место судебные и внесудебные блокировки. Явно заблокированные ресурсы можно поискать на сайте РосКомНадзора (РКН). К таким ресурсам относятся, например, известные: нельзяграм, мордокнига, рутрекер.
С внесудебными блокировками всё интереснее. «По периметру» РФ уже стоят «чёрные ящики» — оборудование от РКН — «ТСПУ», которое цензурирует весь пересекающий (по проводам) границу трафик. ТСПУ переводится как Технологические Средства Предотвращения Угроз: всё, что РКН посчитает «угрозой», может быть втихую заблокировано. Так, например, сейчас внесудебно блокируют сервис «HideMy.name», летом 2023 блокировали популярные протоколы OpenVPN и WireGuard, а осенью — в южных регионах — блокировали вообще весь непонятный tcp‑трафик.То есть блокировкам подвержены не только ресурсы, но и протоколы передачи данных.
Многие из внесудебных блокировок возобновляются и прекращаются случайным образом.
Более того, к внесудебным блокировкам подключатся провайдеры: есть свидетельства внесудебной цензуры трафика внутри страны. Делают ли они это по своей воле или на внутренних интернет‑магистралях также установлены ТСПУ (управляемые РКН) — мне неизвестно.
Наконец, помимо блокировок, РКН умеет «замедлять» некоторые ресурсы, например — twitter. Возможно в скором времени та же учесть постигнет youtube (считаю, что его однажды не заблокируют, а замедлят... хотя с этим уже успешно справляется сам гугл). Хотел бы ошибаться, но если такое произойдёт, то личный прокси станет хорошим помощником в комфортном доступе к глобальной видео‑библиотеке.
И последнее: использование средств обхода цензуры не запрещено (не является незаконным) в РФ на данный момент.
Ну и для полноты картины стоит упомянуть силовые методы цензуры: публикация мнений на некоторые темы уголовно наказуема в РФ, и прокси в этом, конечно, не помощник. Прокси помогает получить доступ к уже опубликованной информации.
Лирическое отступление
Я понимаю, что традиционно упоминание цензуры может вызвать возмущение, праведный гнев и осуждение чиновников. Я смотрю на это немного иначе.
На данном этапе истории, цензура «де факто» является неотъемлемой функцией любого государства и ожидать что её не будет уже сегодня — значит бороться с ветряными мельницами. Человечество должно очень сильно измениться, чтобы цензура перестала быть нужна для поддержания целостности государств.
Я же — в текущих реалиях — предпочитаю спокойно реализовывать своё право на свободный доступ к информации (конституция, статья 29) доступными законными методами, и — помимо этого права — создавать то, что считаю ценным. т. е. инвестирую внимание туда, где готов создать на практике, вместо того, чтобы искать, что осудить и уничтожить.
Поэтому, возмущение я рассматриваю как сигнал нереализованности: если мне хочется повозмущаться — значит я недостаточно реализовал свой созидательный потенциал. И лучше пустить энергию на создание чего‑то ценного, чем на возмущение и осуждение. Это моё личное мнение, я его не навязываю, но возможно оно поможет вам сохранить эмоциональный комфорт при упоминании цензуры и при настройке прокси для её обхода.
Цензура за границей
На Востоке — В Китае, Иране и Туркменистане — дела с цензурой обстоят примерно как в РФ — только ещё жёстче. Кстати, именно китайский опыт мы будем использовать для своего прокси.
А вот на Западе с цензурой всё интереснее:
Насколько мне известно, технический запрет на доступ к неугодной информации на западе минимален и не сравним с российским. Формально свобода соблюдается
Блокировка неугодной информации здесь происходит немного иначе. Я вижу три главных тренда:
Манипуляция результатами поисковой выдачи в соцсетях через контроль над СМИ для пропаганды желаемой повестки;
Воспитание «культуры отмены» против инакомыслящих для устранения нежелаемой повестки.
Пожалуй, основной тренд: «самоцензура»: самостоятельное ограничение доступа к себе извне. И для этого есть две причины:
выпиливают себя ради соблюдения локальных законов (Порнхаб уходит из Монтаны, Godaddy уходит из РФ и пр )
выпиливают себя из‑за той же «культуры отмены»: ради управления репутационными рисками (из опасения стать изгоями среди своих), либо из‑за личной неприязни к группе людей (из желания отменить кого‑либо самостоятельно)
Против первых двух трендов помогает здравый смысл, а против третьего — прокси:).
Хорошая новость: практически все технически‑созданные преграды к информации можно обойти с помощью прокси‑сервера.
Теория (2/3) - покупка сервера (vps) и домена
Для реализации этой инструкции вам понадобится купить:
виртуальный сервер за границей (оплачивается помесячно или ежегодно)
доменное имя второго уровня (с одной точкой), вроде mypersonalsite.xyz (оплачивается ежегодно)
Хотел бы я дать ссылку на надёжного провайдера VPS (чтобы упростить работу «чайникам», не желающих разбираться в вопросе) — но нет.... универсального хостера я не встречал. Я лишь опишу критерии, а выбирать VPS придётся самому.
Критерии выбора VPS
Итак, вам нужен VPS, который удовлетворяет следующим критериям:
Технические характеристики: 1 процессор, минимум 1 GB оперативной памяти, минимум 5 GB диск. Обычно это самый дешёвый тарифный план.
Трафик — безлимитный или очень большой (например 32 Терабайта в месяц). Многим хватает 3 ТБ в месяц, но не всем. Безлимитных вариантов на рынке много.
Ширина канала: 100Мбит. Если у вас быстрый домашний/рабочий интернет, то можно смотреть в сторону 1Гбит, такие предложения на рынке есть.
Статичный IPv4 адрес (сервер с IPv6 но без IPv4 не подходит)
Локация (физическое расположение сервера): Европа. Можно выбрать любую страну, отличную от РФ, но Европа, как правило, даёт самый быстрый трафик.
Возможность установки операционной системы "Debian 12". Дальнейшая инструкция гарантированно работает с Debian 12. При выполнении всей цепочки шагов с другой ОС (например, Ubuntu) могут всплыть неожиданные вопросы.
Бекап (это платная опция у хостера) не нужен.
Рыночная стоимость такого VPS — $5 / 500 ₽ в месяц. Встречаются дешевле ($0.99/130р.). Дешёвая цена может быть признаком ненадёжности... или не быть.
А теперь холиварный вопрос: покупать ли VPS у зарубежного провайдера с помощью зарубежной карты (либо за крипту), или можно купить VPS у хостера, который принимает российские карты?
Однозначного ответа на этот вопрос у меня нет. Если не лень заморочиться — я бы посоветовал зарубежного хостера. Дело в том, что любой платёж российской картой вас деанонимизирует, и товарищ майор при желании узнает, кто оплатил прокси.
С другой стороны, прокси — это средство обхода цензуры (что вполне законно на данный момент), а не средство анонимности. Ни один прокси не гарантирует абсолютную анонимность в интернете, даже если вы будете платить криптой.
Для себя я решил этот вопрос так: лично у меня нет задачи «оставаться анонимным» и скрывать факт оплаты сервера за рубежом, поскольку моя деятельность не нарушает российских законов (опять же: на текущий момент).
Поэтому я оплачиваю зарубежный VPS с помощью российской карты. Меня такое решение устраивает, но я его не навязываю, и — вероятно — поменяю его однажды.
То же самое с доменными именами: можно купить домен.ru за российскую карту, либо любой домен (кроме .ru и .рф) за рубежом.
У кого покупать VPS?
Зарубежные хостеры:
погуглить "buy vps"
посмотреть список рекомендованных хостеров от амнезии.
Спросить в комментариях или чате (ссылка в начале статьи).
Напомню, что у многих зарубежных хостеров есть тенденция ограничивать свои услуги в РФ, поэтому при регистрации не стоит указывать что вы из РФ.
Российские хостеры:
Погуглить «купить vps в европе»
Поискать на сайте poiskvps. Там большой выбор, но там есть не все.
Спросить в комментариях или чате (ссылка в начале статьи)
Лично я сейчас арендую VPS у двух провайдеров: nuxt и vdsina. Оба — со своими тараканами, но они пока не так плохи, чтобы переходить на других.
У кого покупать домен?
.ru можно купить за 119 рублей (дешевле не видел) — гугл в помощь: «зарегистрировать домен.ru».
зарубежный можно купить за 99 центов (google: “99 cent domain”)
это цена за первый год, продление всегда дороже, но если будет желание сэкономить — можно каждый год покупать новый.
бесплатные домены второго уровня были доступны всем ещё летом 2023, но сейчас эта халява закончилась, приходится покупать.
Теория (3/3) - универсальное решение
Итак, задача — создать и настроить прокси: быстрый и чтобы не заблокировали.
Уже известно, что:
VPN‑протоколы OpenVPN, WireGuard, IPsec и многие другие легко детектируются и периодически блокируются.
Зашифрованные прокси‑протоколы без маскировки (shadowsocks, vmess, mtproto для телеграмма) тоже периодически блокируются. Если работает сегодня, но были прецеденты блокировок — не факт что будет работать завтра. Стоит ли использовать решение, которое может перестать работать в любой момент по воле РКН? Конечно нет.
Поэтому я использую решение, которое:
Маскируется. Причём под самый популярный протокол в интернете - https (так умеют vless, trojan, cloak, gost-tls, openconnect-tls).
Не шифрует зашифрованный трафик повторно: так называемый tls-in-tls при желании детектируется (пример), хотя и требует инвестиций в более дорогое оборудование ТСПУ. В Китае так уже делают, вероятно скоро научатся и у нас. Я знаю два решения для этого: vless-xtls просто не шифрует трафик дважды, cloak - обходит (вроде бы) этот фильтр за счёт огромной избыточности, но ценой низкой скорости.
Притворяется реальным сайтом: Проходит тест на active-probing. Это когда цензор вместо вас подключается к серверу и убеждается, что вы посещаете какой-то сайт, а не используете его как прокси (так умеют vless-xtls-reality и всё тот же медленный cloak).
Существует классный продукт — Amnezia. Она также позиционирует себя как «универсальное решение» и поддерживает подходящий протокол (cloak), но я её не рекомендую из‑за «детских болезней»:
Очень сырой клиент, особенно после обновления на 4 версию: баги и вводящий в заблуждение интерфейс.
Единственный протокол с маскировкой (OpenVPN+Cloak) слишком медленный для комфортного использования,
Протоколы без маскировки могут скомпрометировать сервер.
Я желаю «Амнезии» успехов — она действительно может стать универсальным решением в будущем, но на сегодня я вижу только одного кандидата: протокол VLESS‑XTLS‑Reality.
На текущий момент vless‑xtls‑reality не может быть обнаружен с помощью DPI (deep packet inspection — прослушивание трафика) даже в Китае. Но у цензора есть иные способы помешать ему. Поэтому смотрим следующий список:
Что не стоит делать ни в коем случае
Не компрометировать VPS протоколами, которые могут быть обнаружены (не ставить туда WireGuard, OpenVPN, Shadowsocks, ...). Некоторые провайдеры уже блокируют VPS, на которых в прошлом были замечены подобные протоколы.
Не ходить в рунет через VPS, вместо этого посещать рунет напрямую, мимо прокси (легко настроить). В крайнем случае, пускать российский трафик по цепочке Я->VPS->Warp->Рунет (это тоже легко настроить). Дело в том, что если трафик пересекает границу РФ дважды в условную секунду (сначала туда, потом сразу обратно), то цензор может заподозрить прокси и заблокировать его. В Китае так делают, у нас - нет, но могут научиться в любой момент.
Не раздавать доступ к прокси большому количеству людей. 5-10 близких максимум. В Китае уже вычисляют аномальный трафик к серверу от большого числа юзеров (и блокируют сервер), у нас - опять же - могут перенять их опыт в любой момент.
При выполнении этих условий (в текущих реалиях) сервер невозможно вычислить и заблокировать. Однако, я люблю избыточную надёжность, поэтому... на случай неожиданной блокировки VPS‑сервера по IP — есть «План Б»: проксирование трафика через CDN (Content Delivery Network).
CDN CloudFlare
CDN созданы для балансировки трафика крупных сайтов, состоят из сотен IP‑адресов, поэтому шанс их блокировки в РФ минимальный. Я использую одну из самых крупных CDN в мире — CloudFlare с бесплатным тарифом. Именно к CloudFlare вы привяжете купленный домен, чтобы пускать трафик через него.
Проксирование через CDN чуть медленнее прямого коннекта к серверу. Зато, при использовании CDN, Роскомнадзор вообще не узнает IP вашего сервера.
CloudFlare Warp
Warp - это сеть публичных прокси от той же корпорации CloudFlare, доступ туда происходит по VPN-протоколу WireGuard. Из РФ к Warp-у, конечно же не подключишься, но из зарубежного VPS - запросто.
В этой схеме Warp исполняет две функции:
Дополнительный инструмент для обхода западной цензуры (если некоторые западные сайты не приветствуют запросы с вашего VPS - вы сможете зайти на них через Warp)
Доп. защита от блокировок: проксирование запросов от VPS в Рунет, чтобы не компрометировать VPS в глазах РКН. Это на случай, если вы не настроили клиентское приложение для прямого доступа в ru-ресурсам. Конечно, не все ru-сайты готовы обслуживать запросы из-за границы, например: сайт Почты России почти наверняка не откроется через Warp, но большинство ru-сайтов откроется.
Независимость от корпораций
Если CloudFlare вдруг исчезнет, вся схема продолжит работать напрямую, при этом останется возможность подключиться к любой другой CDN (из десятки), а вместо Warp использовать любой другой зарубежный прокси. Но пока всё работает - можно использовать CloudFlare.
На этом теория окончена, перехожу к инструкции.
Инструкция (1/6) - настройка VPS
Как только вы приобрели VPS‑сервер с уже установленной туда чистой Debian 12 (см «Теорию ч.2» выше) — как правило в течении нескольких минут провайдер выдаст вам доступ к серверу. Чаще всего приходит e‑mail, иногда данные можно найти в панели.
Шаг 1: Подключитесь к серверу по SSH:
Наберите
ssh root@111.111.111.111
в консоли (IP поменяйте на свой).
Пароль можно вставить из буфера с помощью ПКМ, он не отображается для безопасности. Иногда пароль вставляется корректно только при включённой английской раскладке клавиатуры.Либо используйте веб-интерфейс "VNC" в панели VPS
Либо используйте какое-либо SSH-приложение
Шаг 2: Обновите систему на сервере apt update && apt full-upgrade -y
(займёт несколько минут)
Шаг 3: Перезагрузитесь reboot
и через минуту подключитесь по ssh заново.
Шаг 4: Установите необходимые пакеты: apt install docker.io docker-compose git curl bash openssl nano -y
Шаг 5: Установите панель 3X-UI версии v2.0.2:
git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui
nano docker-compose.yml
# откроется текстовой редактор.
# в 6 строке замените "latest" на "v2.0.2"
# было: image: ghcr.io/mhsanaei/3x-ui:latest
# стало: image: ghcr.io/mhsanaei/3x-ui:v2.0.2
# чтобы сохранится, нажмите: CTRL+X, Y, ENTER
docker-compose up -d
UPD 18.01: Автор панели уже выпустил новую версию, но там поменялся интерфейс и логика работы с WARP, я же создавал инструкцию и делал скриншоты именно с версии v2.0.2, она стабильная и самодостаточная. Если вы ставите прокси первый раз и хотите следовать инструкции - устанавливайте именно эту версию.
В первоначальной инструкции была ошибка - она устанавливала последнюю версию, сейчас всё верно.
Шаг 6: Установите Warp: первой командой - удалите (если он был установлен хостером), второй - установите его в режиме совместимости с 3x-ui
warp u
bash <(curl -sSL https://raw.githubusercontent.com/hamid-gh98/x-ui-scripts/main/install_warp_proxy.sh)
Во время установки скрипт спросит у вас цифру, нужно ответить 40000
Шаг 7: Сгенерируйте самоподписанный TLS-сертификат и скопируйте его в панель 3X-UI
openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout private.key -out public.key -days 3650 -subj "/CN=APP"
docker cp private.key 3x-ui:private.key
docker cp public.key 3x-ui:public.key
На этом настройка сервера завершена.
Можно шаманить дальше, чтобы повышать уровень безопасности сервера и качество его маскировки, но «для старта» я считаю это излишним. Минимально необходимые настройки для стабильной работы сервера вы выполнили.
Инструкция (2/6) - первичная настройка панели 3X-UI
Шаг 1: Откройте браузер и зайдите по адресу вида http://111.111.111.111:2053/
Обратите внимание на http (не https) в начале адреса (но это только на старте, далее будет https). IP, конечно, нужно поменять на свой.
Шаг 2: Поменяйте язык на английский (в русском кривой перевод), тёмную тему, логин: admin
, пароль: admin
, и войти (кнопка Login).
Шаг 3: В разделе "Panel Settings" заполните 4 поля как на скриншоте:
- Panel Port (любое случайное число от 1000 до 65535, кроме 40000 - оно уже занято варпом, в инструкции я буду использовать 54321 - но вы придумайте своё). Далее везде вместо порта 54321 вставляйте своё число.
- Panel Certificate Public Key Path : /public.key
- Panel Certificate Private Key Path : /private.key
- Panel URL Root Path: секретная строка для доступа к панели, которая начинается и заканчивается "/". Я использую /mysecreturl/
, но вы придумайте свою. Далее везде вместо строки /mysecreturl/
используйте свою.
Наконец, сохранитесь (кнопка Save вверху страницы) и обязательно перезагрузите панель (кнопка Restart Panel, Sure).
Браузер выдаст ошибку. Поменяйте в адресной строке порт 2053 на 54321, обновите страницу.
Браузер выдаст вторую ошибку «Подключение не защищено» (это потому что мы используем самоподписанный сертификат, но это временно). Нажмите на Дополнительно→Перейти на сайт, и вы опять окажетесь в панели.
Шаг 4: В разделе Panel Settings -Security Settings укажите старые(admin/admin) и придумайте новые логин и пароль, жмите Confirm.
Шаг 5: Войдите в панель ещё раз с новым логином и паролем.
Теперь панель будет всегда доступна по HTTPS адресу вида: https://111.111.111.111:54321/mysecreturl/
(где IP, Порт и Путь будут вашими собственными).
Сохраните где-нибудь URL доступа к панели, логин и пароль.
Инструкция (3/6) - настройка Xray
Xray - прокси-сервер, которым управляет панель 3X-UI. Именно Xray поддерживает протокол VLESS с маскировкой.
Шаг 1: В панели перейдите в раздел "Xray Settings" и включите две опции:
- IPv4 Configs -> Use IPv4 for Google
- WARP Configs -> Route OpenAI (ChatGPT) througw WARP.
Затем в верху страницы сохранитесь (Save Settings) и перезагрузитесь (Restart Xray)
Шаг 2: Пустите весь российский трафик на сервере через WARP.
Для этого перейдите в раздел "Xray Settings"->"Routing Rules", найдите строку где написано "geosite:openai
" и отредактируйте её, чтобы получилось: geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai
Наконец, добавьте новое правило через кнопку Add Rule (IP: geoip:ru
, Outbound tag: WARP
) как на скриншоте.
Опять сохранитесь вверху страницы (Save Settings), затем перезагрузитесь (Restart Xray)
Шаг 3: Найдите сайт‑донор для маскировки.
Уже на 4-м шаге панель предложит вам маскироваться под сайт yahoo.com
. В принципе он подходит. Но если у вас сервер в Европе — это даст задержки при открытии новых сайтов, поскольку сервера yahoo находятся в Америке.
Оптимальным будет найти сайт в подсети хостера (вот инструкция), но может случиться так, что в подсети сайта не обнаружится (у меня такое было).
Поэтому есть более простой вариант: найти небольшой сайт из той‑же страны, где вы арендовали VPS, затем зайти на сервер по SSH и с сервера попинговать его. Если время отклика будет минимальное (например, 15мс) — он подходит.
Update 21.02: Появились сообщения, что сайт nltimes.nl больше не подходит для маскировки - он начал как-то защищаться и маскировка под него довольно скоро перестаёт работать. Для маскировки выбирайте другие сайты.
Шаг 4: Настройте VLESS
В разделе (Inbound) - (Add inbound) надо заполнить указанные на скриншоте поля.
Самое важное:
- Remark и Email - любые строки (не обязательно адрес эл.почты), ни на что не влияют.
- Listening IP - укажите ваш IP
- Port - строго 443, чтобы маскироваться под обычный https-сайт.
- Только после выбора Security: Reality появится возможность выбора Flow: xtls-rprx-vision
- uTLS - именно Chrome, чтобы маскироваться под самый популярный браузер
- Dest, Server Names - указать сайт-донор (хотя можно оставить yahoo.com)
- Кнопка (Get new cert) генерирует ключи.
- (Create) завершает создание.
Шаг 5: Получите ключ VLESS
Осталось в разделе Inbounds нажать на (три точки) -> Export Links ... и система даст скопировать строку-ключ вида:
vless://e034d537-b028-41f0-9e53-5f0838ea8b3b@111.111.111.111:443?type=tcp&security=reality&pbk=D0Bfsax3Ble2KiqDrOu3_qMJw7qVKyrnWgpvDTVkb3M&fp=chrome&sni=nltimes.nl&sid=64edf3b5&spx=%2F&flow=xtls-rprx-vision#My%20VLESS-Reality
Сохраните её в удобном месте.
Инструкция (4/6) - настройка клиента (на компьютерах и телефонах)
Здесь всего три шага:
Установить приложение
Вставить туда строку-ключ с сервера
Настроить прямое соединение с Рунетом
Приложений много, они есть практически под все платформы, и они проверены временем.
Windows:
Hiddify-Next (Новые версии) (Рабочая версия 0.11.1)
Android:
Hiddify-Next (Play Market), (GitHub) (Рабочая версия 0.11.1)
iOS:
Shadowrocket (платный)
macOS:
Настройка Hiddify-Next
UPD 22.03: С сегодняшнего дня установленные новые версии приложения называются просто Hiddify, без Next. Ссылки не изменились.
Лидером среди приложений является Hiddify‑Next от наших иранских коллег.
Основные его плюсы:
Крайне простой и понятный интерфейс «одна кнопка», минимум настроек.
Русский язык
Доступен под все платформы кроме iOS (но разработчики скоро сделают и его)
Интерфейс настолько простой, что я решил не делать скриншотов.
После установки приложения надо сделать всего две вещи:
В настройках установить Регион: RU
Скопировать в буфер и вставить в приложение строку‑ключ vless через кнопку (+)
Всё! Можно нажимать на огромную круглую кнопку — и прокси заработает!
Особенности Hiddify-Next на Windows:
Приложение может работать в двух режимах:
Системный прокси (по умолчанию)
TUN-режим
Большинство приложений (в том числе браузеры) понимает первый режим. Но не все. Если какое‑то приложение на Windows не видит ваш прокси — переключитесь в TUN‑режим (в настройках Hiddify‑Next). Чтобы TUN‑режим заработал, Hiddify‑Next необходимо запустить в «режиме администратора» (программа сама вам об этом скажет).
Особенности Hiddify‑Next на Android:
На андроиде есть супер‑удобная опция «Раздельное проксирование» (в настройках Hiddify‑Next). На iOS такого нет.
Раздельное проксирование позволяет выбрать, какие приложения будут использовать прокси. Например, я могу выбрать опцию «Проксировать только выбранные приложения» и поставить галочки на: «Нельзяграм, Канву и Хром». После включения прокси, только эти три приложения будут использовать прокси, а остальные (банковские приложения, яндекс‑карты и все остальные) продолжат соединяться со своими серверами напрямую.
Если настроить раздельное проксирование для выбранных приложений — прокси на телефоне можно держать включённым постоянно.
Настройка Streisand (iOS)
Streisand — бесплатное приложение, но в декабре оно на несколько дней становилось платным. Если оно опять станет платным в будущем (~200р) — считаю что оно стоит своих денег.
Итак, всё те же два шага:
Скопировать в буфер и вставить в приложение строку-ключ vless через кнопку (+)
Настроить прямое соединение с Рунетом. Тут несколько шагов.
Сначала - скопировать эту длинную строку с настройками в буфер.
streisand://aW1wb3J0L3JvdXRlOi8vWW5Cc2FYTjBNRERWQVFJREJBVUdEaGdaR2xWeWRXeGxjMTFrYjIxaGFXNU5ZWFJqYUdWeVZHNWhiV1ZlWkc5dFlXbHVVM1J5WVhSbFozbFVkWFZwWktJSEU5VUlDUW9MREEwT0R4QVNXMjkxZEdKdmRXNWtWR0ZuWFdSdmJXRnBiazFoZEdOb1pYSldaRzl0WVdsdVVtbHdWMjVsZEhkdmNtdFdaR2x5WldOMFZtaDVZbkpwWktDaEVWaG5aVzlwY0RweWRWZDBZM0FzZFdSdzFCUVZDZ3dORGhZU1cyOTFkR0p2ZFc1a1ZHRm5YV1J2YldGcGJrMWhkR05vWlhLaEYxbGtiMjFoYVc0NmNuVlpVbFV0WkdseVpXTjBYRWxRU1daT2IyNU5ZWFJqYUY4UUpFUkROVGxETXpsRExVUXdSRVl0TkRsR015MDVRVEl3TFVFMlJUVkVSakkwUkRaRE9RQUlBQk1BR1FBbkFDd0FPd0JBQUVNQVRnQmFBR2dBYndCeUFIb0FnUUNJQUlrQWl3Q1VBSndBcFFDeEFMOEF3UURMQU5VQTRnQUFBQUFBQUFJQkFBQUFBQUFBQUJzQUFBQUFBQUFBQUFBQUFBQUFBQUVK
Затем — вставить её в приложение через «+» справа‑вверху.
Наконец, зайди в «Роутинг», и там (поставить галочку), (нажать на «включить») и вернуться назад (стрелка слева)
Можно подключаться! (при первом подключении телефон попросит пароль).
Я ограничил инструкцию двумя приложениями, но если вы захотите поэкспериментировать с другими - в конце статьи будут три ссылки где искать доп. информацию.
upd: у меня нет macOS чтобы проверить, но @Spoofi подсказал, что MacOS Hiddify Next на данный момент «не умеет» tun-режим (о tun я писал выше), но это умеет FoxRay.
upd 25.01. Streisand начал показывать рекламу. Чтобы она не мешала - после завершения всех настроек - вы сможете включать/выключать VPN через настройки системы, а не через интерфейс приложения. Другой вариант - пользоваться платным ShadowRocket. В конце статьи будут ссылки - там можно найти инструкции по настройке ShadowRocket. Если же вы настраиваете прокси впервые - рекомендую начать именно со Streisand.
Инструкция (5/6) -- проверка прокси
Если вы всё сделали по инструкции — у вас на устройствах уже должен быть работающий прокси. Но выполняет ли он свою функцию? Не обманул ли продавец VPS? Сейчас проверим.
Убедитесь, что прокси включён.
В браузере зайдите на https://ipinfo.io/ . Вы видите IP вашего VPS? Значит прокси работает и и вы всё настроили верно.
Откройте браузер и зайдите на https://rutracker.org. Открывает? значит РФ‑цензуру обошли.
Откройте браузер в режиме инкогнито и зайдите на https://maps.google.com. Вы видите карту той страны где покупали VPS? Вероятно ip «чистый».
Ещё раз посмотрите на https://ipinfo.io/ . Справа в разделе
country
вы видите ту страну в которой находится VPS? Значит ip «чистый».Зайдите на https://canva.com Вы видите нормальный сайт и вас не посылают за то что вы из РФ? Значит западную цензуру обошли.
Зайдите на https://google.com Нет ошибки 403 и поиск доступен? Значит гугл не забанил ранее ваш IP.
Если что‑то пошло не так:
п2 и п3: скорее всего где‑то ошиблись в выполнении инструкции, перепроверьте.
п4,5,6 — вероятно хостер предоставил вам «грязный» IP, который числится в базах как российский. Есть шанс, что в течение двух недель базы обновятся... либо не обновятся. Имеет смысл написать в техподдержку хостеру, описать ситуацию и попросить поменять IP. Большинство идут на сотрудничество.
п7 — просите хостера поменять IP.
Запасной план:
Если какой‑либо западный сайт не пускает вас к себе через VPS, то в качестве костыля можно пустить трафик до этого сайта через WARP.
Для этого в панели 3x-ui->Xray Settings->Routing Rules нужно найти и отредактировать строку geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai
- дописать сайты через запятую, пример geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai,intel.com,canva.com
(обязательно сохраните изменения и перезагрузите Xray)
После этого западные сайты вместо IP вашего VPS будут видеть IP сети WARP, что почти наверняка позволит обойти их цензуру.
Да, покупка IP‑адреса — это всегда лотерея и есть небольшой шанс проблем, но чаще всего всё работает с первого раза.
Инструкция (6/6) -- настройка CDN CloudFlare
Переходим к последнему, самому интересному разделу.
Любое управление рисками сводится к трём шагам:
Определить риск (в данном случае, это риск, что рф-цензура заблокирует ваш сервер)
Минимизировать риск (вы это уже сделали, воплотив знания из "Теории ч3")
Определить План Б на тот редкий случай, если риск всё-же реализуется.
Хотя я не верю, что - с принятой предосторожностью - сервер вообще может быть когда-либо заблокирован, но обычно реальность не интересуется нашими верованиями.
Проксирование через CDN - это и есть "План Б". Сейчас вы настроите ещё одно, запасное соединение, которое будет работать, даже если ваш VPS станет недоступен изнутри РФ.
Шаг 1: Выберите продавца доменного имени и убедитесь что доменное имя свободно (см. Теория ч2), но НЕ ПОКУПАЙТЕ его пока. CloudFlare работает только с доменными именами второго уровня (есть исключения, но они нам не помогут). Доменное имя второго уровня — это имя с одной точкой, вроде mypersonalsite.com
или myhabraproxy.ru
.
Для этой инструкции я выбрал доменное имя habraproxy.store
у продавца Dreamhost. Прямо сейчас dreamhost бесплатно раздаёт доменные имена.store на 1 год — но эта халява только для клиентов, которые в прошлом что‑то уже покупали.
Кстати, если у вас уже есть свой сайт с доменом...
...то вы точно не «чайник», и вы точно разберётесь, как поменять name‑сервера у регистратора, настроить нормальную работу своего сайта через CloudFlare, а для целей проксирования VPS использовать поддомен.
Итак, продавец выбран, доменное имя выбрано но не куплено, идём дальше.
Шаг 2: Зарегистрируйтесь на CloudFlare.com (Sign Up — Тариф Free — Add Website — e‑mail+пароль). Сохраните пароль, подтвердите аккаунт по ссылке из письма.
Шаг 3: Зайдите в CloudFlare, в верхнем разделе "Websites" добавьте ещё не купленное доменное имя. Далее - Тариф Free - Continue... пока наконец вы не попадёте на страницу "Change your nameservers" с двумя оранжевыми облаками.
Эти две строки нам понадобятся. Ваши строки могут отличаться от моих.
Шаг 4: Теперь смело покупайте ваше доменное имя, а во время покупки укажите, что будете использовать name-сервера свои, а не те что предлагает продавец. Впишите эти две строки и завершите покупку.
На скриншоте - сайт моего продавца.
Итак, вы купили домен и указали нужные неймсервера. Активация свежекупленного домена займёт несколько минут, самое время донастроить CloudFlare.
Шаг 6: В разделе (DNS) создайте A‑запись для вашего домена и IP вашего сервера. У меня это выглядит вот так:
Шаг 7: (обойдусь без скриншотов)
В разделе (Network) включите "gRPC"
В разделе (SSL/TLS)--(Edge Certificates)--(Minimum TLS Version) установите "TLS 1.3"
Шаг 8: В разделе (Rules)--(Origin Rules) создайте два правила:
(1) Все запросы на сервер направляйте на порт 54321 (укажите порт, на котором работает ваша панель 3xui)
(2) Все запросы по секретному адресу /my-gRPC-3049382
(придумайте что-то своё) направляйте на порт 2053
Последовательность этих двух правил важна.
Шаг 9: Вернитесь на (Overview), и если под оранжевыми облаками найдёте кнопку "Check nameservers now" - нажмите её, чтобы поторопить систему.
(если прошло много времени и там нет ни облаков, ни кнопки - вообще отлично, переходите к следующему шагу)
Шаг 9¾: Создайте второе VLESS-подключение для CDN.
Вернитесь в панель 3X-UI. Inbound -Add Inbound
Самое важное:
- Порт - тот же, что и во "втором правиле". 2053 или любой другой на ваш выбор (но смысла менять его на другой не вижу).
- Transmission - gRPC, именно такой тип соединения безлимитен на CloudFlare.
- Service name - секретная строка из "второго правила" my-gRPC-3049382
, но строго без "/" в начале.
- uTLS - именно Chrome, чтобы маскироваться под самый популярный браузер
- ALPN сделайте пустым.
- Кнопка (Get Сert from Panel) вписывает ключи.
- Allow Insecure - включайте на время тестирования, когда начнёте пользоваться CDN - можно будет выключить.
Наконец, проверяйте что получилось. Экспортируйте строку-ключ этого нового соединения и скопируйте её в приложение - прокси должен работать. (пока это не CDN, вы лишь подключились к своему VPS через порт 2053 по протоколу VLESS-gRPC, но скоро вместо вас это будет делать CloudFlare)
Update. В новых версиях многих приложений появился либо баг, либо "фича", которая делает их несовместимыми с этим шагом инструкции. Вероятно особенность в новой версии ядра sing-box, которое лежит в основе всех клиентских приложений.
Что делать? Использовать проверенную версию приложения Hiddify-Next версии 0.11.1
Либо так: в большинстве случаев заполнение поля SNI именем домена (напримерhabraproxy.store
-- на скриншоте не заполнено) решает вопрос совместимости с новыми версиями.
Что делать если у вас iOS, где доступны только свежие версии приложений?
a) выполните этот шаг по инструкции. Есть шанс, что прямое соединение не заработает, но оно пригодится на шаге 13
b) выполните шаг 13 по обновлённой инструкции, CDN заработает.
Шаг 10: Финальная настройка CloudFlare.
Обновите раздел Overview.
CloudFlare должен вас обрадовать сообщением: "Great news! Cludflare is now protecting your site"
Если этого сообщения нет, а вместо него - страница, на которой остались два оранжевых облака - значит одно из двух:
Нужно ещё немного подождать
Вы что-то сделали не так.
Если всё так, тогда: в разделе SSL/TLS включите режим Full
Теперь вы точно завершили настройку CloudFlare.
Шаг 11: Проверка.
Откройте браузер и перейдите по адресу https://habraproxy.store/mysecreturl/
(меняйте имя сайта на своё, и адрес страницы на свой - тот что установили для панели 3x-ui).
Откроется панель 3x-ui. Теперь управлять панелью вы будете с этого адреса!
Сохраните этот адрес где-нибудь.
Шаг 12: Ещё одна проверка.
Откройте браузер по адресу https://habraproxy.store
и убедитесь, что там пустая страница 404.
Это значит любой цензор, зайдя на ваш сайт, убедится: там есть настоящий веб-сервер. В качестве веб-сервера выступает сама панель 3x-ui, которая отдаёт 404 ошибку на любой неизвестный ей адрес. Никакой внешний наблюдатель не узнает адрес панели (
/secreturl/
). А если цензор послушает трафик, то увидит зашифрованный поток gRPC, который используется для обслуживания веб-приложений по всему интернету.
Шаг 13: Настало время МАГИИ:
Отредактируйте строку-ключ второго подключения:
Замените IP на доменное имя,
Замените порт на :443,
Удалите
&alpn=&allowInsecure=1
Добавьте (перед
#
)&sni=habraproxy.store
впишите свой домен, не мой:)Отредактируйте имя (после
#
) по своему желанию
Было: vless://03684ba0-1994-4106-86da-e91fdd9007e0@111.111.111.111:2053?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&alpn=&allowInsecure=1#My%20CDN-tjo1gifl
Стало: vless://03684ba0-1994-4106-86da-e91fdd9007e0@habraproxy.store:443?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&sni=habraproxy.store#My%20CDN
Наконец, копируйте эту строку в приложение, проверяйте работоспособность и наслаждайтесь запасным каналом для своего прокси.
Самое время процитировать @MiraclePtr:
Fair use
Понятное дело, что то, что CDN разрешают на своих бесплатных тарифах проксировать Websockets и gRPC — это такой жест доброй воли от них. Давайте не наглеть и использовать эти возможности только в совсем безвыходных случаях, которые, надеюсь, все‑таки не наступят.
</КОНЕЦ ИНСТРУКЦИИ>
Недостатки этого решения
«Сложность» настройки:
Безусловно, купить VPN за 100 рублей в месяц намного проще, чем впервые в жизни настроить «вот это всё». Я не строю иллюзий, что «все домохозяйки в стране сделают прокси частью своего хозяйства». Это решение — для небольшого числа людей, которые очень ценят свободу информации, очень ценят надёжность и готовы инвестировать своё внимание во всякое «технарское колдунство».Периодическая недоступность VPS:
Uptime бюджетного VPS — примерно 99.9% (бывает и выше, и ниже). Это значит, что примерно 42 минуты в месяц VPS может быть недоступен (иногда эти минуты растягиваются до часов и даже дней). То есть вы гарантированно однажды встретитесь с ситуацией, когда VPS временно не отвечает ни по IP, ни через CDN. Причин множество, я встречался как минимум с этими тремя: факап хостера, DDOS‑атака на хостера, проблемы в дата‑центре где физически находится VPS (на которые сам хостер повлиять не может).Я решаю этот вопрос просто — у меня два сервера от разных хостеров в разных странах (основной и запасной), этого хватает.
Другое решение — на случай форс‑мажора иметь под рукой запасную строку‑ключ (shadowsocks, vless, trojan) от какого‑нибудь бесплатного сервиса, благо в телеграмме их полно. Конечно, передавать свой трафик через бесплатный сервис — это стрёмно, но если VPS недоступен, а доступ нужен срочно, то временное использование бесплатного сервиса может оказаться приемлемым, решайте сами.
Доверие китайским программистам:
Хотя и сервер, и клиенты — это opensource приложения (основанные на Xray и SingBox), они не проходили независимый аудит, и теоретически там могут быть ошибки, а разработчики — тоже теоретически — могут добавить зловредный код в новые версии (впрочем, такое можно сказать про любое opensource‑решение, но это не мешает существованию опенсорса в мире). Один из вариантов управления этим риском — использовать проверенные версии клиентских и серверных приложений. Пользуясь компьютером и телефоном вы уже доверяете сотням людей и корпораций. Если эти opensource‑решения не вызывают у вас доверия — стоит поискать другие. Я же не вижу здесь никакой проблемы, лишь озвучиваю существующее мнение.Отсутствие XTLS в CDN‑проксировании:
Да, моё решение использует XTLS только для соединения с сервером напрямую, и простой TLS для проксирования через CDN. Я не нашёл способа простой настройки XTLS через CDN, но всё же это возможно. В конце статьи будут ссылки с решением. В РФ пока не умеют детектировать шифрование уже зашифрованного трафика (tls‑in‑tls), но если научатся — это может быть потенциальной проблемой, хотя я оцениваю этот шанс как стремящийся к нулю.Обход цензуры, не анонимность:
Да, использование прокси заметно повышает уровень анонимности в интернете, но ни один прокси не гарантирует абсолютной анонимности. Данное решение не заточено на анонимность, оно для обхода цензуры — свободного доступа к информации. Пожалуйста, не путайте обход цензуры и анонимность, это очень разные задачи.
Я постарался сделать эту статью исчерпывающей и самодостаточной, чтобы своими руками настроить личный прокси‑сервер для обхода цензуры, с избыточной защитой от блокировок.
Но на тот случай, если вы захотите разобраться в вопросе глубже — рекомендую эти три статьи, в которых я черпал вдохновение, и которые содержат дополнительные технические детали и нюансы: