Files
stun/INSTALL.md
T
2026-09-29 20:20:26 +03:00

173 lines
6.9 KiB
Markdown

## ==============================================================================
## ПОДГОТОВКА И НАСТРОЙКА VPS, УСТАНОВКА GO, DOCKER
## ==============================================================================
## Обновить списки пакетов репозиториев, чтобы получить информацию о свежих версиях
```bash
sudo apt update
```
## Обновить все установленные в системе пакеты до актуальных версий (-y автоматически соглашается)
```bash
sudo apt upgrade -y
```
## Скачиваем официальный архив с бинарными файлами Go 1.27.1 для Linux x64
```bash
wget https://go.dev/dl/go1.27.1.linux-amd64.tar.gz
```
## Удалить старую версию Go (если она была), чтобы избежать конфликта файлов
```bash
sudo rm -rf /usr/local/go
```
## Распаковать скачанный архив Go в системную директорию /usr/local
```bash
sudo tar -C /usr/local -xzf go1.27.1.linux-amd64.tar.gz
```
## Добавить путь к бинарникам Go в переменную PATH текущего пользователя для автозапуска
```bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
```
## Перезапустить профиль, чтобы изменения переменной PATH вступили в силу без перезагрузки сервера
```bash
source ~/.profile
```
## Удалить скачанный архив Go, так как он больше не нужен и занимает место
```bash
rm go1.27.1.linux-amd64.tar.gz
```
## Проверить успешность установки Go, выводя текущую версию в консоль
```bash
go version
```
## ------------------------------------------------------------------------------
## СЕТЕВОЙ ТЮНИНГ ЯДРА LINUX ДЛЯ ВЫСОКИХ НАГРУЗОК (HIGHLOAD UDP)
## ------------------------------------------------------------------------------
## По умолчанию буферы ОС слишком малы для STUN-сервера. Если их не увеличить,
## при шторме UDP-пакетов ядро Linux начнет их просто дропать (терять).
## Увеличить максимальный размер буфера приема UDP-пакетов операционной системы до ~25 Мб
```bash
sudo sysctl -w net.core.rmem_max=26214400
```
## Увеличить максимальный размер буфера отправки UDP-пакетов до ~25 Мб
```bash
sudo sysctl -w net.core.wmem_max=26214400
```
## Устанавить дефолтный (стартовый) размер буфера приема для новых сокетов на ~25 Мб
```bash
sudo sysctl -w net.core.rmem_default=26214400
```
## Устанавить дефолтный (стартовый) размер буфера отправки для новых сокетов на ~25 Мб
```bash
sudo sysctl -w net.core.wmem_default=26214400
```
## Сохранить настройки
```bash
sudo tee -a /etc/sysctl.conf <<EOF
```
## Настроить буферов сокетов для Highload UDP STUN-сервера
```bash
net.core.rmem_max=26214400
net.core.wmem_max=26214400
net.core.rmem_default=26214400
net.core.wmem_default=26214400
EOF
```
## Применить настройки
```bash
sudo sysctl -p
```
## ------------------------------------------------------------------------------
## УСТАНОВКА DOCKER И DOCKER COMPOSE
## ------------------------------------------------------------------------------
## Устанавить утилиты для работы с SSL-сертификатами и скачивания файлов через терминал
```bash
sudo apt-get install ca-certificates curl
```
## Создать защищенную директорию для хранения GPG-ключей сторонних репозиториев
```bash
sudo install -m 0755 -d /etc/apt/keyrings
```
## Скачать официальный публичный GPG-ключ шифрования Docker для проверки подлинности пакетов
```bash
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
```
## Выдать права на чтение этого ключа всем пользователям системы
```bash
sudo chmod a+r /etc/apt/keyrings/docker.asc
```
## Добавить официальный стабильный репозиторий Docker в список источников Ubuntu (apt)
```bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
## Обновить кэш пакетов apt, чтобы система «увидела» добавленный репозиторий Docker
```bash
sudo apt-get update
```
## Устанавивить движок Docker, консольный клиент, контейнеризатор и плагин Docker Compose V2
```bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
```
## ==============================================================================
## НАСТРОЙКА ФАЙЕРВОЛЛА (БЕЗОПАСНОСТЬ)
## ==============================================================================
## Разрешить входящий трафик на порт 3478 по протоколу UDP (основной порт STUN-сервера)
```bash
sudo ufw allow 3478/udp
```
## ==============================================================================
## НАСТРОЙКА И УПРАВЛЕНИЕ СЕРВЕРОМ
## ==============================================================================
## Автоматически заменить значение PUBLIC_IP в файле .env на реальный IP-адрес вашего VPS
```bash
sed -i 's/^PUBLIC_IP=.*/PUBLIC_IP=ВНЕШНИЙ_IP/' .env
```
## Сделать все bash-скрипты автоматизации в текущей папке исполняемыми (разрешаем их запуск)
```bash
chmod +x *.sh
```
## Запустить STUN-сервер (внутри скрипта обычно вызывается docker compose up -d)
```bash
./start.sh
```
## Открыть поток логов контейнера в реальном времени для мониторинга работы сервера
```bash
./get_logs.sh
```
## Остановить STUN-сервер (внутри обычно вызывается docker compose down)
```bash
./stop.sh
```