mirror of
https://github.com/EvgenyNerush/easy-xray.git
synced 2025-12-13 21:35:03 +03:00
78 lines
8.1 KiB
Markdown
78 lines
8.1 KiB
Markdown
#### Первоначальная настройка VPS
|
||
|
||
Xray нельзя поставить на "голый" сервер - нужна предварительная подготовка. Нужно создать пользователя, добавить его в группу sudo,
|
||
настроить фаервол и перенести порт ssh. Эти действия можно автоматизировать. Для redhat-based дистрибутивов можно использовать
|
||
скрипты [init0.sh](misc/init0.sh) и [init1.sh](misc/init1.sh). Скопируйте их на сервер
|
||
|
||
```
|
||
curl -L https://github.com/EvgenyNerush/easy-xray/blob/test/misc/init0.sh
|
||
curl -L https://github.com/EvgenyNerush/easy-xray/blob/test/misc/init1.sh
|
||
```
|
||
|
||
затем внимательно прочитайте и исправьте по необходимости, и запустите от рута. После нужно зайти в систему от имени нового пользователя и
|
||
подготовить необходимые файлы для Cloudflare CDN - если она нужна.
|
||
|
||
|
||
#### Cloudflare CDN
|
||
|
||
Помимо прямого доступа (для которого достаточно одного IPv4-адреса), можно настроить доступ через сеть доставки контента (content delivery
|
||
networn, CDN) от Cloudflare. В этом случае проксировать трафик через xray, даже если IP-адрес вашего сервера заблокирован.
|
||
Для настройки прокси через CDN нужно:
|
||
|
||
- завести бесплатный аккаунт на [cloudflare.com](https://www.cloudflare.com/),
|
||
- оплатить серверу второй IP-адрес (IPv6 подойдёт, они обычно дешевле),
|
||
- купить доменное имя (наподобие example.com, не важно, где вы его купите).
|
||
|
||
Доменное имя отдаётся под управление Cloudflare (Websites -> Add a domain), затем
|
||
добавляется IPv6-адрес вашего сервера (в разделе Websites дважды кликните на доменное имя, перейдите в DNS/Records и нажмите Add a record).
|
||
Для IPv6 адреса создавайте запись типа AAAA, если для доменного имени example.com создать запись с именем name, то name.example.com будет
|
||
вести на указанный вами IPv6-адрес.
|
||
|
||

|
||
|
||
В настройках Network нужно включить поддержку gRPC - именно этот протокол позволит использовать xray через CDN. На странице SSL/TLS/Origin
|
||
Server создайте сертификаты для связи вашего сервера с сетью CDN (файлы `cert.pem` и `cert.key`). **До запуска установки xray** скопируйте
|
||
ваши сертификаты Cloudflare в директорию со скриптом `ex.sh`!
|
||
|
||
Как работает доступ через CDN? Сети доставки контента задуманы для кеширования больших файлов: если большому числу пользователей в России
|
||
хочется посмотреть одно и то же видео с котятами, которое есть на сервере в США, гораздо выгоднее один раз скачать это видео на сервер в
|
||
России (кеш), и отдавать пользователям с него, чем много раз скачивать его из США. Нам ничего кешировать не нужно, мы просто пользуемся
|
||
возможностью бесплатно доставлять трафик через сервера Cloudflare. Важно, что в такой схеме ваше доменное имя резолвится в IP-адрес сервера
|
||
Cloudflare, через который может идти трафик большого количества других сайтов. Поэтому РКН, оценивая сопутствующий ущерб, может не решиться
|
||
на блокировку вашего xray сервера, даже если будет о нём знать. Чтобы лучше понять общую концепцию работы xray через CDN, прочитайте [вот
|
||
эту статью](https://habr.com/ru/articles/761798/).
|
||
|
||
|
||
|
||
|
||
Если вы делитесь доступом к своему серверу с другими людьми, рано или поздно IP-адрес вашего сервера может утечь к РКН, который добавит его
|
||
в список блокируемых сайтов, доступ к серверу при этом пропадёт. Если же сервер работает через сеть доставки контента (content delivery
|
||
network, CDN), то для доступа используется не IP-адрес, а доменное имя. Для того, чтобы заблокировать сервер в этом случае нужно будет
|
||
заблокировать один из серверов доменных имён CDN-провайдера (на котором "резолвится" ваше доменное имя). На этом сервере имён может
|
||
резолвиться большое число других сайтов (в том числе российских), и в случае блокировки они тоже перестанут работать. Так что, возможно, РКН
|
||
не станет идти на такие риски и не будет блокировать ваш сервер даже в случае обнаружения.
|
||
|
||
CDN от Cloudflare позволяет бесплатно транспортировать grpc-трафик, однако вам потребуется купить какое-либо доменное имя. Чтобы понять
|
||
общую концепцию работы xray через CDN, прочитайте [вот эту статью](https://habr.com/ru/articles/761798/).
|
||
|
||
**До запуска установки xray** скопируйте ваши сертификаты Cloudflare `cert.pem` и `cert.key` в директорию со скриптом `ex.sh`!
|
||
|
||
Vless не может быть сконфигурирован с fallback при использовании grpc, соответственно, не может противостоять атаке active-probing. Поэтому
|
||
помимо xray нужно установить веб-сервер **nginx**, который будет обеспечивать перенаправление на сайт-заглушку. Easy-xray сгенерирует
|
||
"сайт" для nginx, который слушает IPv6 адрес и перенаправляет реальных пользователей на xray-сервер, слушающий на 127.0.0.1:50051. При
|
||
настройке easy-xray (при выполнении команды `sudo ./ex.sh install` или `./ex.sh conf`) укажите ваше доменное имя, и следуйте дальнейшим
|
||
инструкциям. После установки нужно проверить конфигурацию nginx и запустить его с помощью команд
|
||
|
||
```
|
||
sudo nginx -t
|
||
sudo systemctl start nginx
|
||
```
|
||
|
||
Если при попытке зайти на ваш "сайт" из браузера редирект (fallback) на сайт-заглушку не происходит (error 502, bad gateway), возможно,
|
||
политики SELinux запрещают nginx выполнять сетевые соединения. Чтобы это исправить, выполните команду
|
||
|
||
```
|
||
sudo setsebool -P httpd_can_network_connect 1
|
||
```
|
||
|