> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/igry-i-striming/sunshine-moonlight.md).

# Удалённый гейминг Sunshine + Moonlight

Транслируйте и играйте в игры с ПК удалённо с почти нулевой задержкой, используя Sunshine (хост) и Moonlight (клиент) на GPU-серверах Clore.ai.

{% hint style="info" %}
**Sunshine** является сервером потоковой передачи игр с открытым исходным кодом для самостоятельного размещения с более чем 20 000 звёзд на GitHub. **Moonlight** — это бесплатный клиент с открытым исходным кодом, который подключается к нему. Вместе они соперничают с GeForce NOW — за небольшую часть стоимости.
{% endhint %}

***

## Что такое Sunshine + Moonlight?

**Sunshine** — это форк оригинального стека Moonlight/GameStream, теперь полностью независимый и активно поддерживаемый LizardByte. Он захватывает вывод вашей GPU, кодирует его в реальном времени с использованием H.264/H.265/AV1 и транслирует по сети с ультранизкой задержкой.

**Moonlight** — это клиентское приложение, доступное для Windows, macOS, Linux, Android, iOS, Raspberry Pi и даже некоторых умных телевизоров.

### Почему использовать это на Clore.ai?

* **Арендуйте высокопроизводительную GPU** (RTX 4090, A100 и т. д.) по спотовым ценам
* **Транслируйте AAA-игры** из облака на любое устройство — даже на дешёвый ноутбук
* **Подписка GeForce NOW** не требуется — вы контролируете оборудование
* **Моддинг игр, игровая помощь с помощью ИИ**, или тестирование разработки игр на мощном оборудовании

***

## Требования

| Требование       | Детали                                             |
| ---------------- | -------------------------------------------------- |
| Аккаунт Clore.ai | При достаточном балансе CLORE                      |
| GPU-сервер       | Предпочтительна NVIDIA GPU (для NVENC кодирования) |
| Клиент Moonlight | Установлен на вашем локальном устройстве           |
| Доступ по SSH    | Для первоначальной настройки                       |

***

## Шаг 1: Арендуйте GPU-сервер на Clore.ai

1. Перейдите на [clore.ai](https://clore.ai) → **Маркетплейс**
2. Фильтровать по **Тип GPU**: для потоковой передачи 1080p/60fps рекомендуется RTX 3080 или выше
3. Ищите серверы с доступными **22**, **47990**, и **48010** портами
4. Выберите сервер и перейдите к оформлению заказа

{% hint style="warning" %}
**Требования к портам**: Sunshine требует порты 47990 (HTTPS веб-интерфейс) и 48010 (поток). Убедитесь, что они указаны в списке доступных портов сервера перед заказом.
{% endhint %}

### Рекомендуемый GPU для стриминга

| Разрешение | Целевой FPS | Минимальный GPU |
| ---------- | ----------- | --------------- |
| 1080p      | 60 fps      | RTX 3060        |
| 1440p      | 60 fps      | RTX 3080        |
| 4K         | 60 fps      | RTX 3090 / 4080 |
| 1080p      | 120 fps     | RTX 4070+       |

***

## Шаг 2: Разверните Sunshine через Docker

### Docker Compose (рекомендуется)

Создайте файл `docker-compose.yml`:

```yaml
version: "3.8"

services:
  sunshine:
    image: lizardbyte/sunshine:latest
    container_name: sunshine
    restart: unless-stopped
    privileged: true
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - SUNSHINE_USERNAME=admin
      - SUNSHINE_PASSWORD=your_secure_password
    volumes:
      - ./sunshine-config:/config
      - /tmp/.X11-unix:/tmp/.X11-unix:rw
      - /dev/dri:/dev/dri
    devices:
      - /dev/dri:/dev/dri
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
```

### Запустите контейнер

```bash
# Скачайте и запустите
docker compose up -d

# Проверьте логи
docker compose logs -f sunshine

# Убедитесь, что он работает
docker ps | grep sunshine
```

{% hint style="success" %}
**Первый запуск**: Sunshine требуется примерно 30 секунд для инициализации. Следите за логами до появления "Sunshine started successfully" перед продолжением.
{% endhint %}

### Одна команда Docker (быстрый старт)

```bash
docker run -d \
  --name sunshine \
  --restart unless-stopped \
  --privileged \
  --network host \
  -e SUNSHINE_USERNAME=admin \
  -e SUNSHINE_PASSWORD=changeme \
  -v $(pwd)/sunshine-config:/config \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --device /dev/dri:/dev/dri \
  --gpus all \
  lizardbyte/sunshine:latest
```

***

## Шаг 3: Настройте веб-интерфейс Sunshine

1. Откройте браузер и перейдите по адресу:

   ```
   https://<your-clore-server-ip>:47990
   ```
2. Примите предупреждение о самоподписанном сертификате
3. Войдите с учётными данными, которые вы задали (`admin` / `your_secure_password`)

{% hint style="warning" %}
**Только HTTPS**: Веб-интерфейс Sunshine работает по HTTPS. Ваш браузер покажет предупреждение о сертификате — это ожидаемо. Нажмите "Дополнительно" → "Продолжить", чтобы продолжить.
{% endhint %}

### Разделы веб-интерфейса

| Раздел           | Назначение                                |
| ---------------- | ----------------------------------------- |
| **Pin**          | Спарить с клиентом Moonlight              |
| **Приложения**   | Определите приложения/игры для трансляции |
| **Конфигурация** | Настройки кодека, разрешения, битрейта    |
| **Логи**         | Отладка проблем с трансляцией             |

***

## Шаг 4: Настройте параметры кодирования

Перейдите по адресу **Конфигурация** → **Видео** в веб-интерфейсе:

### Рекомендуемые настройки для Clore.ai

```
# Encoder
encoder: nvenc          # Использовать аппаратное кодирование NVIDIA

# Resolution
resolution_width: 1920
resolution_height: 1080

# Frame rate
fps: 60

# Bitrate
bitrate: 50000          # 50 Mbps для 1080p60 — отличное качество

# H.265 (лучшее сжатие, используйте если клиент поддерживает)
codec: hevc
```

{% hint style="info" %}
**NVENC vs VAAPI**: На серверах NVIDIA Clore.ai всегда используйте `nvenc` кодировщик. Он передаёт кодирование на аппаратное обеспечение GPU, освобождая CPU для самой игры.
{% endhint %}

### Руководство по битрейту

| Качество | Разрешение | Битрейт   |
| -------- | ---------- | --------- |
| Хорошо   | 1080p60    | 20 Mbps   |
| Отлично  | 1080p60    | 35 Mbps   |
| Отлично  | 1080p60    | 50 Mbps   |
| Отлично  | 1440p60    | 50 Mbps   |
| Отлично  | 4K60       | 100+ Mbps |

***

## Шаг 5: Добавьте приложения для трансляции

В веб-интерфейсе Sunshine → **Приложения** → **Добавить новое**:

### Пример: Трансляция рабочего стола

```
Имя: Desktop
Команда: (оставьте пустым для полного рабочего стола)
Рабочая директория: /home/user
```

### Пример: Игра из Steam

```
Имя: Steam Big Picture
Команда: steam -bigpicture
Рабочая директория: /home/user
Команда открепления: (пусто)
```

### Пример: Пользовательская игра

```
Имя: My Game
Команда: /opt/games/mygame/start.sh
Рабочая директория: /opt/games/mygame
Изображение: /opt/games/mygame/cover.png
```

***

## Шаг 6: Настройка виртуального дисплея (сервер без монитора)

Серверы Clore.ai без головы (без физического монитора). Вам нужен виртуальный дисплей:

```bash
# Установите драйвер виртуального дисплея
apt-get update && apt-get install -y xvfb x11vnc xfce4

# Создайте виртуальный дисплей
Xvfb :1 -screen 0 1920x1080x24 &
export DISPLAY=:1

# Запустите рабочее окружение
startxfce4 &
```

### Или используйте скрипт виртуального фреймбуфера

```bash
#!/bin/bash
# start-display.sh

export DISPLAY=:1

# Запустить виртуальный дисплей
Xvfb :1 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset &
sleep 2

# Запустить оконный менеджер
openbox &
sleep 1

# Запустить Sunshine
docker compose up -d sunshine
```

Сделайте его исполняемым и запустите:

```bash
chmod +x start-display.sh
./start-display.sh
```

{% hint style="info" %}
**NVIDIA GPU без дисплея**: Добавьте следующее в конфиг Sunshine, чтобы использовать GPU без физического дисплея:

```bash
export __GL_SYNC_TO_VBLANK=0
export __GL_GSYNC_ALLOWED=0
```

{% endhint %}

***

## Шаг 7: Подключитесь с клиентом Moonlight

### Установите Moonlight

| Платформа    | Скачать                                                  |
| ------------ | -------------------------------------------------------- |
| Windows      | [moonlight-stream.org](https://moonlight-stream.org)     |
| macOS        | Mac App Store или moonlight-stream.org                   |
| Linux        | `flatpak install flathub com.moonlight_stream.Moonlight` |
| Android      | Google Play Store                                        |
| iOS          | App Store                                                |
| Raspberry Pi | `apt install moonlight-embedded`                         |

### Спаривание Moonlight с Sunshine

1. Откройте Moonlight на вашем локальном устройстве
2. Нажмите **Добавить ПК** и введите IP вашего сервера Clore.ai
3. Moonlight покажет **PIN-код**
4. Перейдите в веб-интерфейс Sunshine → **Pin** → введите PIN
5. Подключение установлено! ✅

### Настройки Moonlight для лучшего опыта

```
Разрешение: 1920x1080
FPS: 60
Битрейт: 50 Mbps
Видео кодек: HEVC (H.265)
Аппаратное декодирование: Включено
Аудио: Стерео
```

***

## Шаг 8: Справочник по пробросу портов

| Порт        | Протокол | Назначение                      |
| ----------- | -------- | ------------------------------- |
| 22          | TCP      | SSH управление                  |
| 47984       | TCP      | HTTPS (совместимо с GameStream) |
| 47989       | TCP      | HTTP (совместимо с GameStream)  |
| 47990       | TCP      | HTTPS Веб-интерфейс             |
| 48010       | TCP      | RTSP (управление потоком)       |
| 47998-48000 | UDP      | Видео/Аудио поток               |
| 48010       | UDP      | Видеопоток                      |

{% hint style="warning" %}
**Сопоставление портов Clore.ai**: При заказе сервера убедитесь, что порты 47990 и 48010 присутствуют в карте портов. UDP-порты для стриминга (47998-48000) также должны быть доступны, если возможно.
{% endhint %}

***

## Устранение неполадок

### Sunshine не запускается

```bash
# Проверьте логи контейнера
docker logs sunshine --tail 50

# Распространённое решение: права доступа
chmod 777 /tmp/.X11-unix
xhost +local:docker
```

### Чёрный экран при трансляции

```bash
# Убедитесь, что виртуальный дисплей запущен
export DISPLAY=:1
xdpyinfo | grep dimensions

# Перезапустите дисплей
pkill Xvfb
Xvfb :1 -screen 0 1920x1080x24 &
```

### Высокая задержка

* Переключитесь с **Wi‑Fi на Ethernet** на стороне клиента
* Уменьшите битрейт в настройках Moonlight
* Используйте **H.265** вместо H.264 (лучшее сжатие при том же качестве)
* Включите **Синхронизация кадров** в конфиге Sunshine

### Ошибка NVENC: «No encoder found»

```bash
# Убедитесь, что NVIDIA GPU доступна
nvidia-smi

# Проверьте, что контейнер имеет доступ к GPU
docker exec sunshine nvidia-smi

# Если нет, перезапустите с флагом --gpus all
docker stop sunshine && docker rm sunshine
# Запустите снова с --gpus all
```

### Проблемы с аутентификацией/спариванием

```bash
# Сбросьте учётные данные Sunshine
docker exec sunshine sunshine --creds admin newpassword

# Очистите спаренные клиенты
rm -f ./sunshine-config/sunshine_state.json
docker restart sunshine
```

***

## Расширенные настройки

### Поддержка нескольких мониторов

```yaml
# В конфиге Sunshine (sunshine.conf)
[video]
adapter_name = /dev/dri/card0
output_name = HDMI-A-1
```

### Аудио по сети

Установите виртуальный sink PulseAudio:

```bash
apt-get install -y pulseaudio
pulseaudio --daemon
pactl load-module module-null-sink sink_name=virtual_sink
export PULSE_SERVER=unix:/run/user/1000/pulse/native
```

### Поддержка игровых контроллеров

Sunshine поддерживает эмуляцию виртуального геймпада. Включите в конфиге:

```yaml
[input]
gamepad = enabled
ds4_back_as_touchpad_click = disabled
```

### Wake-on-LAN (для постоянных серверов)

```bash
# Держать сервер активным даже когда не идёт стрим
docker update --restart=always sunshine
```

***

## Оптимизация затрат

### Рассчитайте стоимость вашей трансляции

```
Аренда GPU: ~$0.30-0.80/час (RTX 3080)
Хранение: ~$0.01/час (50GB SSD)
Итого: ~$0.31-0.81/час

против GeForce NOW: $9.99-$19.99/мес (ограниченные часы)
против Xbox Cloud Gaming: $14.99/мес (ограниченный каталог)
```

### Советы по экономии денег

1. **Спотовые инстансы**: Используйте самый дешёвый доступный GPU в непиковые часы
2. **Поставьте на паузу, когда не играете**: Остановите контейнер, но сохраните том
3. **Предустановите игры**: Используйте персистентный том, чтобы не загружать заново каждый раз
4. **Авто-выключение**: Добавьте скрипт для остановки сервера после простоя

```bash
# Авто-выключение после 30 минут без подключения Moonlight
#!/bin/bash
while true; do
  connections=$(ss -tn | grep 47990 | wc -l)
  if [ "$connections" -eq 0 ]; then
    idle_count=$((idle_count + 1))
  else
    idle_count=0
  fi
  if [ "$idle_count" -ge 30 ]; then
    echo "Нет подключений в течение 30 мин, выполняется завершение"
    docker stop sunshine
    break
  fi
  sleep 60
done
```

***

## Лучшие практики безопасности

{% hint style="danger" %}
**Никогда не открывайте доступ к Sunshine без аутентификации!** Всегда устанавливайте надёжный пароль и рассмотрите использование VPN или SSH-туннеля для дополнительной безопасности.
{% endhint %}

### Метод SSH-туннеля (наиболее безопасный)

```bash
# На вашей локальной машине создайте SSH-туннель
ssh -L 47990:localhost:47990 \
    -L 48010:localhost:48010 \
    root@<clore-server-ip>

# Затем подключайте Moonlight к localhost вместо IP сервера
```

### Смените учётные данные по умолчанию

```bash
docker exec sunshine sunshine --creds admin 'Y0urStr0ngP@ssw0rd!'
```

### Ограничьте доступ по IP

В конфиге Sunshine:

```
allowed_ips = 192.168.1.0/24,203.0.113.5
```

***

## Тесты производительности

| GPU      | Разрешение | FPS | Задержка | Кодировщик |
| -------- | ---------- | --- | -------- | ---------- |
| RTX 3060 | 1080p      | 60  | \~15ms   | NVENC      |
| RTX 3080 | 1440p      | 60  | \~12ms   | NVENC      |
| RTX 4080 | 4K         | 60  | \~10ms   | NVENC AV1  |
| RTX 4090 | 4K         | 120 | \~8ms    | NVENC AV1  |

*Задержка измерена в локальной сети 100 Mbps*

***

## Полезные ссылки

* [Sunshine на GitHub](https://github.com/LizardByte/Sunshine) — 20K+ звёзд
* [Официальный сайт Moonlight](https://moonlight-stream.org)
* [Документация Sunshine](https://docs.lizardbyte.dev/projects/sunshine)
* [Discord LizardByte](https://discord.gg/lizardbyte)
* [Clore.ai Marketplace](https://clore.ai)

***

## Резюме

| Шаг | Действие                                                   |
| --- | ---------------------------------------------------------- |
| 1   | Арендуйте GPU-сервер с портами 22, 47990, 48010            |
| 2   | Развернуть `lizardbyte/sunshine` через Docker              |
| 3   | Настройте через веб-интерфейс по адресу `https://IP:47990` |
| 4   | Установите кодировщик NVENC, битрейт 50 Mbps               |
| 5   | Создайте виртуальный дисплей (Xvfb)                        |
| 6   | Установите клиент Moonlight локально                       |
| 7   | Спарьте, используя PIN-код                                 |
| 8   | Транслируйте и играйте! 🎮                                 |

С Sunshine + Moonlight на Clore.ai вы получаете облачный игровой опыт, который соперничает с любым коммерческим сервисом — с полным контролем над вашим оборудованием и играми. Никаких подписок, никаких ограничений, никаких лимитов.

***

## Рекомендации Clore.ai по GPU

| Сценарий использования                    | Рекомендуемый GPU | Примерная стоимость на Clore.ai |
| ----------------------------------------- | ----------------- | ------------------------------- |
| Стриминг 1080p/60fps                      | RTX 3090 (24GB)   | \~$0.12/gpu/hr                  |
| Стриминг 4K/с высоким частотой обновления | RTX 4090 (24GB)   | \~$0.70/gpu/hr                  |
| AAA-игры + стриминг                       | RTX 4090 (24GB)   | \~$0.70/gpu/hr                  |

> 💡 Все примеры в этом руководстве можно развернуть на [Clore.ai](https://clore.ai/marketplace) GPU-серверах. Просматривайте доступные GPU и арендуйте по часам — без обязательств, с полным root-доступом.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/igry-i-striming/sunshine-moonlight.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
