Попадна интересна статия в Хабър за обхода на блокиране на Рунет с помощта на най-новите разработки на китайците. Китайците имат Великата Китайска Firewall, който регулира интернет в страната и те вече „са изяли куче“ по отношение на обхода на блокирането. След статията в Хабър, настроих си сървър, на компютъра – клиент и на смартфона – мобилен клиент и описах всичките си действия със снимки в тази статия. Получи се ръководство за настройка на обхода на блокирането на Рунет, без да се влиза в подробности за използваните технологии. Но, за да има и домакиня YouTube, ако го блокират.
Обход на блокировките в Рунет
Тази статия от Хабра: „Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто„.
И така, нашето обхождане на блокировките в Рунета ще се състои от следните компоненти:
- сървъри XRay, които ще инсталираме и настроим на сървър извън Русия;
- клиента NekoBox, който ще инсталираме и настроим на компютър с Windows/Linux;
- мобилният клиент NekoBox, който ще инсталираме и настроим на Android смартфона.
Сървърът ще се маскира като истински популярен уебсайт (в моя случай това ще бъде amazon.com) и ще предоставя истински TLS сертификат на този уебсайт. Всичко това е с цел да се представи връзката със сървъра от страна на системите за анализ на трафика на цензора като обикновена връзка с популярен уебсайт, разрешен от Роскомнадзор, извън Рунет. Това ще бъде реализирано с помощта на сървъра XRay и най-съвременната и недетектируема технология за обход на блокировките XTLS-Realty.
При свързване със сървъра ни се променя IP адресът на IP адреса на сървъра и всички географски блокировки в Интернет се премахват. Из други думи, ако достъпът до някой сайт е забранен в Русия, като се свържете със сървъра, ще получите достъп до този сайт.
За още един начин да се избегне блокирането прочетете в статията „Блокировка 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 сървър.

Спираме XRay сървъра с командата:
systemctl stop xray
На локалния си компютър, в адресната лента на браузъра въведете домейна на популярния уебсайт (www.amazon.com), под който се крие XRay сървърът. И връзката с уебсайта не трябва да бъде установена, тъй като XRay сървърът е спрян.

Стартираме XRay сървър:
systemctl start xray
Опресняваме уеб страницата в браузъра. XRay сървърът ще покаже истинската уеб страница, която се маскира.

Проверяваме 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.

Следващото, избираме ядрото sing-box.

В меню Сървър изберете подменю Нов профил.

Попълваме полетата със следните стойности:
- Тип – VLESS;
- Адрес – това е IP адресът на XRay сървъра;
- Порт – 443;
- UUID – това е същият UUID, който сте получили при настройката на XRay сървъра (вижте раздела „Настройка на XRay сървъра„);
- Поток – xtls-rprx-vision;
- Транспорт – tcp;
- Безопасност – tls;
- Кодиране на пакети – xudp;
- SNI – това е домейнът на популярен уебсайт, под който се крие XRay сървър (www.amazon.com);
- ALPN – h2;
- Fingerprint – chrome (това е маскиране на клиента NekoBox като обикновен браузър Chrome);
- Reality Pbk – това е Публичен ключ, който получихме, когато настройвахме XRay сървъра, и вот той ни е необходим;
- Reality Sid – първият елемент в масива „shortIds“ на конфигурационния файл /usr/local/etc/xray/config.json.
Натискаме бутона OK.

Ще конфигурираме правилата за маршрутизация. Трафикът до домейни и хостове с IP адреси от Русия ще се изпраща директно, а не през прокси (XRay сървър). Останалият трафик ще минава през прокси. За целта ще използваме база данни GeoIP.
В меню Настройки избираме подменю Настройки на маршрути.

В разделе Основни маршрути, в текстовото поле, на сблъсъка на колоната Директно и реда IP, добавяме текст:
geoip:ru
geoip:private

Натиснете бутона Персонализирани маршрути. В полето JSON редактор добавете текст:
{
"rules": [
{
"domain_suffix": [
".ru"
],
"outbound": "direct"
}
]
}

Натискаме бутона OK и отново бутона OK. Маршрутите са запазени.
Щракнете с десния бутон на създадения профил и изберете Стартиране.

Поставете отметка на „Режим на системен прокси“. Всичко е готово и сега можем да проверим работоспособността на връзката със сървъра на XRay и настроените маршрути.

След като направим заявка за „Моят IP адрес“ на сайт с домейн .ru, ще получим IP адрес, който ни е предоставен от интернет доставчика. Моят IP адрес започва с цифрата 9 (вижте горната снимка).
След като направим същият заявка на сайта с домейн „.com“ и извън Русия, ще получим IP адреса на прокси (XRay сървъра). При мен този IP адрес започва с цифрата 4 (вижте картината по-долу).

Маршрутизацията работи, връзката със сървъра на XRay работи. Ура!
Актуализиране на NekoBox клиента за Windows/Linux
Проектът NekoRay (наричан също NekoBox) също се развива активно. За да актуализирате клиента на NekoBox в Windows/Linux, кликнете върху менюто Обновление и след това натиснете бутона Обновление в отвореното прозореце.

Актуализирането се изтегля, клиентът NekoBox се рестартира и всичко е готово!
Мобилният клиент NekoBox за Android
На смартфоне с Android отворете проекта NekoBoxForAndroid на GitHub, като кликнете на следния линк: https://github.com/MatsuriDayo/NekoBoxForAndroid/releases.

Изтегляме най-новата версия на файла .apk, инсталираме, като предоставим разрешение за инсталиране и стартираме приложението NekoBox. Изтеглих файла NB4A-1.2.3-arm64-v8a.apk.
Натискаме върху „плюс“ и избираме Ръчни настройки.

Настройките на мобилния клиент NekoBox са аналогични настройките на клиента NekoBox за компютър с Windows/Linux. Сървър – това е IP адресът на XRay сървъра, Потребителско име – това е UUID. Останалите настройки имат същите имена като клиента NekoBox за компютри.

Запазваме настройките, като натиснем върху „отметката„.
Настройките на правилата за маршрутизацията са аналогични.


Настройките са завършени. Натиснете кръглото бутонче със самолет, за да се свържете със сървъра XRay. Проверете работоспособността на връзката със сървъра XRay и настроените маршрути.

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

Изводи
Както се казва, надявай се на най-доброто, но бъди готов за най-лошото. Затова, обходът на блокировките в Рунета (и по-добре, няколко различни начина) трябва да бъде наличен у всеки и предварително. Въпросите оставете в коментарите под статията.
Коментари