mirror of
https://github.com/StepanovPlaton/HomeServerServices.git
synced 2026-10-31 14:38:33 +04:00
Add xray
This commit is contained in:
83
Services.md
83
Services.md
@@ -254,4 +254,85 @@ vim default.conf
|
||||
```bash
|
||||
podman-compose -f init-compose.yml down
|
||||
podman-compose up -d --build
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 1️⃣3️⃣ Xray — VPN-доступ к домашней сети (VLESS + Reality)
|
||||
|
||||
> VLESS + Reality маскирует трафик под обычный HTTPS. Отдельный домен и SSL-сертификат не нужны, а порт можно пробросить снаружи. Подходит для доступа к домашней сети и как личный VPN.
|
||||
|
||||
```bash
|
||||
cd xray
|
||||
cp .env.example .env && vim .env
|
||||
chmod +x setup.sh
|
||||
./setup.sh
|
||||
podman-compose up -d
|
||||
```
|
||||
|
||||
`setup.sh` автоматически:
|
||||
|
||||
- генерирует UUID, ключевую пару X25519 и Short ID;
|
||||
- создаёт `config/config.json` из шаблона;
|
||||
- проверяет конфигурацию через `xray run -test`;
|
||||
- выводит готовую ссылку `vless://...` для клиента.
|
||||
|
||||
> ⚠️ Файлы `.env` и `config/config.json` содержат секреты и исключены из Git. Ссылка подключения тоже является секретом — не публикуйте её.
|
||||
|
||||
> После изменения `XRAY_PORT`, `XRAY_DEST` или `XRAY_SERVER_NAME` в `.env` запустите `./setup.sh` заново — он пересоберёт `config/config.json` и проверит его. Секреты при этом сохраняются.
|
||||
|
||||
### Проброс порта
|
||||
|
||||
В OPNsense: **Межсетевой экран > NAT > Переадресация портов**
|
||||
|
||||
- **Interface:** WAN
|
||||
- **Protocol:** TCP
|
||||
- **Destination:** WAN address
|
||||
- **Destination port range:** `2053` (или ваш `XRAY_PORT`)
|
||||
- **Redirect target IP:** IP вашего сервера с Podman
|
||||
- **Redirect target port:** `2053` (или ваш `XRAY_PORT`)
|
||||
- **Filter rule association:** Add associated filter rule
|
||||
|
||||
> В rootless Podman нельзя слушать порты ниже 1024, поэтому по умолчанию используется `2053`. Не занимайте `8443` — он уже используется nginx-proxy. При необходимости внешний порт можно сделать другим, но тогда клиент должен подключаться именно к внешнему порту.
|
||||
|
||||
> Предупреждение Xray о порте не-443 и выбранном `dest` относится к блокировкам GFW (Китай). Для домашнего сервера в России это не критично, но `dest` лучше выбирать из доступных вам крупных сайтов с TLS 1.3.
|
||||
|
||||
Если нужен стабильный адрес вместо IP, добавьте поддомен `vpn` в `proxy/ddns/domains.txt` и укажите в `.env`:
|
||||
|
||||
```ini
|
||||
XRAY_PUBLIC_HOST=vpn.domain.ru
|
||||
```
|
||||
|
||||
### Доступ к домашней сети
|
||||
|
||||
Сервер Xray не навязывает маршруты клиенту — маршрутизацию настраиваем в клиенте:
|
||||
|
||||
- **Только домашняя сеть:** оставьте интернет напрямую, а подсеть `192.168.0.0/16` (или `geoip:private`) направьте в proxy.
|
||||
- **Полный туннель:** весь трафик (`0.0.0.0/0`) направьте в proxy.
|
||||
|
||||
Для доступа по именам добавьте локальные записи в клиент или используйте DNS домашней сети (например, AdGuard/OPNsense), направив DNS-запросы через туннель.
|
||||
|
||||
### Добавление устройства
|
||||
|
||||
Для каждого устройства лучше использовать отдельный UUID. Добавьте свой объект в `clients` внутри `config/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "новый-uuid",
|
||||
"flow": "xtls-rprx-vision"
|
||||
}
|
||||
```
|
||||
|
||||
После изменения перезапустите контейнер:
|
||||
|
||||
```bash
|
||||
podman-compose restart xray
|
||||
```
|
||||
|
||||
Сгенерировать новый UUID можно командой:
|
||||
|
||||
```bash
|
||||
podman run --rm ghcr.io/xtls/xray-core:latest uuid
|
||||
```
|
||||
|
||||
Ссылка для нового устройства строится по той же схеме, что вывел `setup.sh`: меняется только UUID в начале ссылки.
|
||||
Reference in New Issue
Block a user