Попалась интересная статья на Хабре про обход блоkировок Рунета с помощью самых передовых наработок китайцев. У китайцев Великий Китайский Файрвол, регулирующий Интернет внутри страны, и они на обходах блоkировок уже «собаку съели». По статье с Хабра я настроила себе сервер, на компьютере — клиент, на смартфоне — мобильный клиент и описала все свои действия со скриншотами в этой статье. Получилось руководство по настройке обхода блоkировок Рунета без углубления в используемые технологии. Ну, чтобы и у домохозяйки был YouTube, если его таки заблокируют.

Обход блоkировок Рунета

Та самая статья с Хабра: «Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто«.

Итак, наш обход блоkировок Рунета будет состоять из следующих компонентов:

  • сервера XRay, который установим и настроим на сервере за пределами России;
  • клиента NekoBox, который установим и настроим на компьютере с Windows/Linux;
  • мобильного клиента NekoBox, который установим и настроим на Android смартфоне.

Сервер будет маскироваться под настоящий популярный сайт (в моем случае это будет amazon.com) и отдавать настоящий TLS сертификат этого сайта. Все это для того, чтобы со стороны систем анализа трафика цензора подключение к серверу выглядело как обычное подключение к популярному, разрешенному Роскомнадзором, сайту вне Рунета. Это будет реализовано с помощью XRay сервера и самой передовой и недетектируемой технологии обхода блоkировок XTLS-Realty.

У нас же, при подключении к серверу, будет меняться IP адрес на IP адрес сервера, и будут сняты все блокировки в Интернете по географическому признаку. Другими словами, если на какой-то сайт запрещен доступ из России, то, подключившись к серверу, вы получите доступ к этому сайту.

О еще одном варианте обхода блоkировок читайте в статье «Блокировка VPN? Маскируем VPN под HTTPS«.

Практическая реализация

Требования

Чтобы следовать этому руководству, понадобится виртуальный сервер VPS/VDS с ОС Linux (Debian), располагающийся не в России.

Лично мне понравилось предложение от хостера RackNerd за 18$ на 1 год VPS сервер в США или во Франции. Оплатить можно и биткоином.

Есть другой вариант: «VDS сервер не в России и с оплатой российской банковской картой в рублях» (читаем только один раздел).

Установка XRay сервера

Нам нужен проект XRay-core (он же XRay сервер), переходим на GitHub проекта по ссылке: https://github.com/XTLS/Xray-core/releases.

Если самая свежая версия — Pre-release, то команда для Установки/Обновления сервера XRay, которую вводим на VPS/VDS сервере, будет следующая:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install --beta

Для Release версии сервера XRay команда для Установки/Обновления будет следующая:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

Будут установлены следующие файлы:

  • /etc/systemd/system/xray.service
  • /etc/systemd/system/xray@.service
  • /usr/local/bin/xray
  • /usr/local/etc/xray/*.json
  • /usr/local/share/xray/geoip.dat
  • /usr/local/share/xray/geosite.dat
  • /var/log/xray/access.log
  • /var/log/xray/error.log

Первые два файла — это unit-файлы для systemd, которые описывают настройки для запуска и управления XRay. Следующие два файла — это исполняемый файл XRay и его конфигурационный файл .json. Следующие два файла с расширением .dat — это базы данных для определения страны или географического региона, к которому принадлежит определенный IP-адрес или ресурс в Интернете. Последние два файла — это файлы логов.

Для Удаления XRay за исключением конфигурационного файла и файлов логов:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ remove

Для Удаления XRay вместе с конфигурационным файлом и файлами логов:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ remove --purge

Настройка XRay сервера

Приводим конфигурационный файл /usr/local/etc/xray/config.json к виду:

{
  "log": {
    "loglevel": "info"
  },
  "routing": {
    "rules": [],
    "domainStrategy": "AsIs"
  },
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "tag": "vless_tls",
      "settings": {
        "clients": [
          {
            "id": "4c3fe585-ac09-41df-b284-70d3fbe18884",
            "email": "user1@myserver",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
		"realitySettings": {
			"show": false,
			"dest": "www.amazon.com:443",
			"xver": 0,
			"serverNames": [
				"www.amazon.com"
			],
			"privateKey": "GOTPj_klK7_j_IvjxiCtyBL80RYotYSOdBBBSfFOMH4",
			"minClientVer": "",
			"maxClientVer": "",
			"maxTimeDiff": 0,
			"shortIds": [
				"aabbccdd"
			]
		}
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

Шаблон конфигурационного файла готов. Осталось внести небольшие изменения в соответствии со своими данными.

Запускаем команду:

/usr/local/bin/xray uuid

На выходе получаем UUID — идентификатор пользователя для протокола аутентификации VLESS. На этот UUID нужно поменять значение параметра «id» в секции «clients» конфигурационного файла /usr/local/etc/xray/config.json.

В секции «clients» конфигурационного файла задаются пользователи-клиенты. В данном шаблоне конфигурационного файла задан только один пользователь-клиент.

Запускаем команду:

/usr/local/bin/xray x25519

На выходе получаем Приватный и Публичный ключи. Публичный ключ нам понадобится, когда будем настраивать клиент NekoBox. На Приватный ключ нужно заменить значение параметра «privateKey» конфигурационного файла.

Запускаем команду:

openssl rand -hex 8

На выходе получаем шестнадцатеричное число длиной 8 байт. На это число нужно поменять первый элемент в массиве «shortIds» конфигурационного файла.

В конфигурационном файле указан домен www.amazon.com — под сайт Amazon-а и будет маскироваться XRay сервер. Можно поменять www.amazon.com на домен самостоятельно подобранного сайта. Таким сайтом может быть любой популярный сайт, территориально располагающийся не в России, незаблокированный Роскомнадзором, и, при обращении к доменному имени которого, не происходит переадресации на другой какой-то домен.

Для увеличения производительности TCP соединений включим BBR (Bottleneck Bandwidth and RTT) — алгоритм контроля перегрузки, разработанный компанией Google. Для этого введем команды:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

Перезапускаем XRay сервер:

systemctl stop xray
systemctl start xray

Проверяем, что все нормально запустилось:

journalctl -u xray
systemctl status xray

Проверка работоспособности маскировки сервера

Чтобы проверить работоспособность маскировки XRay сервера под популярный сайт, на своем локальном компьютере добавляем в файл hosts (в Linux это файл /etc/hosts, а в Windows это файл C:\Windows\System32\drivers\etc\hosts) строку:

12.34.56.79 www.amazon.com

где 12.34.56.79 — это IP адрес XRay сервера;

www.amazon.com — это домен популярного сайта, под который маскируется XRay сервер.

Hosts файл в Windows

Останавливаем XRay сервер командой:

systemctl stop xray

На своем локальном компьютере, в адресной строке браузера набираем домен популярного сайта (www.amazon.com), под который маскируется XRay сервер. И соединение с сайтом не должно быть установлено, т.к. XRay сервер остановлен.

Проверка работоспособности маскировки сервера. XRay сервер остановлен

Запускаем XRay сервер:

systemctl start xray

Обновляем страницу сайта в браузере. XRay сервер отобразит настоящую страницу сайта, под который маскируется.

Проверяем TLS сертификат сайта, нажав на «замочек» в адресной строке браузера.

Проверка работоспособности маскировки сервера. Сервер отдает валидный TLS сертификат

Ура! TLS сертификат валидный, настоящий. Маскировка работает!

Обновление XRay сервера

Проект XRay-core (он же XRay сервер) сейчас довольно активно развивается. Пока писала статью, вышел новый релиз v1.8.4. Чтобы обновить XRay сервер, нужно запустить всего одну команду, ту же самую, что и при первоначальной установке XRay сервера. Смотрите раздел «Установка XRay сервера«.

Клиент NekoBox в Windows/Linux

Переходим на GitHub проекта NekoRay (он же NekoBox) по ссылке: https://github.com/MatsuriDayo/nekoray/releases. Здесь дистрибутивы клиента NekoBox под ОС Windows/Linux.

Скачиваем самую свежую версию дистрибутива.

На компьютере с ОС Windows скачиваю zip-архив nekoray-3.18-2023-08-24-windows64.zip, распаковываю и запускаю исполняемый файл nekoray.exe.

Запуск клиента NekoBox в Windows

Далее, выбираем ядро sing-box.

Клиент NekoBox. Первоначальная настройка. Sing-box

В меню Сервер выбираем подменю Новый профиль.

Клиент NekoBox. Настройка. Новый профиль

Заполняем поля следующими значениями:

  • ТипVLESS;
  • Адрес — это IP адрес XRay сервера;
  • Порт443;
  • UUID — это тот самый UUID, который получили, когда настраивали XRay сервер (см. раздел «Настройка XRay сервера«);
  • Flowxtls-rprx-vision;
  • Транспортtcp;
  • Безопасностьtls;
  • Кодирование пакетовxudp;
  • SNI — это домен популярного сайта, под который маскируется XRay сервер (www.amazon.com);
  • ALPNh2;
  • Fingerprintchrome (это маскировка клиента NekoBox под обычный браузер Chrome);
  • Reality Pbk — это Публичный ключ, который получили, когда настраивали XRay сервер, вот он нам и понадобился;
  • Reality Sid — это первый элемент в массиве «shortIds» конфигурационного файла /usr/local/etc/xray/config.json.

Нажимаем кнопку OK.

Клиент NekoBox. Конфигурация профиля

Настроим правила маршрутизации. Трафик до .ru-дометов и хостов с IP адресами из России будет идти напрямую, а не через прокси (XRay сервер). Остальной трафик — через прокси. Для этого используем базу данных GeoIP.

В меню Настройки выбираем подменю Настройки маршрутов.

Клиент NekoBox. Настройка. Настройки маршрутов

Во вкладке Базовые маршруты, в текстовое поле, на пересечении столбца Напрямую и строки IP, добавляем текст:

geoip:ru
geoip:private
Клиент NekoBox. Настройка. Использование базы GeoIP

Нажимаем кнопку Кастомные маршруты. В поле Редактор JSON добавляем текст:

{
    "rules": [
        {
            "domain_suffix": [
                ".ru"
            ],
            "outbound": "direct"
        }
    ]
}
Клиент NekoBox. Настройка. Правила маршрутизации для .ru-доменов

Нажимаем кнопку OK и снова кнопку OK. Маршруты сохранены.

Кликаем правой кнопкой мыши на созданном профиле и выбираем Запустить.

Клиент NekoBox. Настройка. Запустить

Ставим «галочку» Режим системного прокси. Все готово, и теперь можем проверять работоспособность соединения с XRay сервером и настроенных маршрутов.

Сделав запрос «Мой IP адрес» на сайте с .ru-доменом, получим IP адрес, выданный интернет провайдером. У меня этот IP адрес начинается с цифры 9 (см. рисунок выше).

Сделав аналогичный запрос на сайте с .com-доменом и вне России, получим IP адрес прокси (XRay сервера). У меня этот IP адрес начинается с цифры 4 (см. рисунок ниже).

Маршрутизация работает, соединение с XRay сервером работает. Ура!

Обновление клиента NekoBox в Windows/Linux

Проект NekoRay (он же NekoBox) тоже активно развивается. Чтобы обновить клиент NekoBox в Windows/Linux, кликаем по меню Обновление и в открывшемся окне нажимаем кнопку Обновление.

Клиент NekoBox. Обновление

Обновление скачивается, клиент NekoBox перезапускается, и все готово!

Мобильный клиент NekoBox на Android

На смартфоне с Android переходим на GitHub проекта NekoBoxForAndroid по ссылке: https://github.com/MatsuriDayo/NekoBoxForAndroid/releases.

Скачиваем самую свежую версию файла .apk, устанавливаем, выдав разрешение на установку, и запускаем приложение NekoBox. Я скачивала файл NB4A-1.2.3-arm64-v8a.apk.

Нажимаем на «плюсик» и выбираем Ручные настройки.

Мобильный клиент NekoBox. Ручные настройки

Настройки мобильного клиента NekoBox аналогичные настройкам клиента NekoBox для компьютера с Windows/Linux. Сервер — это IP адрес XRay сервера, Логин пользователя — это UUID. Остальные настройки имеют те же названия, что у клиента NekoBox для компьютеров.

Мобильный клиент NekoBox. Конфигурация профиля

Сохраняем настройки, нажав на «галочку«.

Настройки правил маршрутизации аналогичные.

Мобильный клиент NekoBox. Настройка маршрутов
Мобильный клиент NekoBox. Маршрут для .ru-доменов

Настройки завершены. Нажимаем круглую кнопку с самолетом для соединения с сервером XRay. Проверяем работоспособность соединения с сервером XRay и настроенных маршрутов.

Рабочие настройки можно экспортировать в файл. И на новом устройстве не вводить вручную все настройки, а просто Импортировать из файла.

Мобильный клиент NekoBox. Экспорт конфигурации в файл и импорт из файла

Обновление клиента NekoBox на Android

На смартфоне/планшете с андройд переходим на GitHub проекта NekoBoxForAndroid по ссылке: https://github.com/MatsuriDayo/NekoBoxForAndroid/releases.

Скачиваем самую свежую версию файла .apk. Я скачивала файл NB4A-1.3.4-arm64-v8a.apk.

Когда файл скачался, нажимаем Открыть, а затем Обновить. Приложение обновится, все настроки приложения будут сохранены.

Выводы

Как говорится, надейся на лучшее, а готовься к худшему. Поэтому, обход блоkировок Рунета (а лучше, парочка разных обходов) должен быть у каждого и заранее. Вопросы оставляйте в комментариях под статьей.

Комментарии

  • Ирина К.
    Ответить

    Думаю, нужно поторопиться с настраиванием у себя обходов блокировок.

    Поскольку 1 сентября 2023 года в открытом доступе появился ПРОЕКТ постановления Правительства Российской Федерации о внесении изменений в другое действующее постановление Правительства Российской Федерации ‎от 26 октября 2012 г. № 1101 «О единой автоматизированной информационной системе «Единый реестр доменных имен, указателей страниц сайтов в информационно-телекоммуникационной сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в информационно-телекоммуникационной сети «Интернет», содержащие информацию, распространение которой ‎в Российской Федерации запрещено».

    Не поленитесь, поищите текст ПРОЕКТА в Интернете.

    Так вот, когда постановление, о ПРОЕКТЕ которого мы говорим, вступит в силу, распространение информации о VPN и прокси, позволяющих обходить блокировки Роскомнадзора, станет ЗАПРЕЩЕНО. А сайты, распространяющие такую информацию, возможно, будут блокироваться Роскомнадзором. Такие дела…

  • Ирина К.
    Ответить

    Таки прилетело уведомление о блокировке домена adminkin.com от Роскомнадзора. Ниже привожу текст письма от хостинг-провайдера, уведомляющего меня об этом. Забегая вперед, скажу, что домен adminkin.com в результате все-таки был заблокирован. Вместо него теперь работает adminkin.pro.

    Добрый день.

    Сообщаем вам о том, что от РОСКОМНАДЗОР нами получено уведомление о внесении в «Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено» следующего(их) указателя (указателей) страницы (страниц) сайта в сети «Интернет»:

    https://adminkin.com/obhod-blokirovok-runeta-narabotki-kitajcev-domohozyajke-na-zametku .

    ВНИМАНИЕ!

    При получении от провайдера хостинга уведомления о включении доменного имени и (или) указателя страницы сайта в сети «Интернет» в Реестр запрещённых владелец сайта в сети «Интернет» обязан незамедлительно удалить интернет-страницу, содержащую информацию, распространение которой в Российской Федерации запрещено и сообщить об этом в ответ на данное уведомление.

    В случае отказа или бездействия владельца сайта в срок до 18:00 по московскому времени 22 марта 2024 г., провайдер хостинга обязан незамедлительно ограничить доступ к такому сайту в сети «Интернет».

Добавить комментарий

Этот сайт защищен reCAPTCHA, и к нему применяются Google Политика конфиденциальности и Условия использования.

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.