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

6.9 KiB

==============================================================================

ПОДГОТОВКА И НАСТРОЙКА VPS, УСТАНОВКА GO, DOCKER

==============================================================================

Обновить списки пакетов репозиториев, чтобы получить информацию о свежих версиях

sudo apt update

Обновить все установленные в системе пакеты до актуальных версий (-y автоматически соглашается)

sudo apt upgrade -y

Скачиваем официальный архив с бинарными файлами Go 1.27.1 для Linux x64

wget https://go.dev/dl/go1.27.1.linux-amd64.tar.gz

Удалить старую версию Go (если она была), чтобы избежать конфликта файлов

sudo rm -rf /usr/local/go

Распаковать скачанный архив Go в системную директорию /usr/local

sudo tar -C /usr/local -xzf go1.27.1.linux-amd64.tar.gz

Добавить путь к бинарникам Go в переменную PATH текущего пользователя для автозапуска

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile

Перезапустить профиль, чтобы изменения переменной PATH вступили в силу без перезагрузки сервера

source ~/.profile

Удалить скачанный архив Go, так как он больше не нужен и занимает место

rm go1.27.1.linux-amd64.tar.gz

Проверить успешность установки Go, выводя текущую версию в консоль

go version

------------------------------------------------------------------------------

СЕТЕВОЙ ТЮНИНГ ЯДРА LINUX ДЛЯ ВЫСОКИХ НАГРУЗОК (HIGHLOAD UDP)

------------------------------------------------------------------------------

По умолчанию буферы ОС слишком малы для STUN-сервера. Если их не увеличить,

при шторме UDP-пакетов ядро Linux начнет их просто дропать (терять).

Увеличить максимальный размер буфера приема UDP-пакетов операционной системы до ~25 Мб

sudo sysctl -w net.core.rmem_max=26214400

Увеличить максимальный размер буфера отправки UDP-пакетов до ~25 Мб

sudo sysctl -w net.core.wmem_max=26214400

Устанавить дефолтный (стартовый) размер буфера приема для новых сокетов на ~25 Мб

sudo sysctl -w net.core.rmem_default=26214400

Устанавить дефолтный (стартовый) размер буфера отправки для новых сокетов на ~25 Мб

sudo sysctl -w net.core.wmem_default=26214400

Сохранить настройки

sudo tee -a /etc/sysctl.conf <<EOF

Настроить буферов сокетов для Highload UDP STUN-сервера

net.core.rmem_max=26214400
net.core.wmem_max=26214400
net.core.rmem_default=26214400
net.core.wmem_default=26214400
EOF

Применить настройки

sudo sysctl -p

------------------------------------------------------------------------------

УСТАНОВКА DOCKER И DOCKER COMPOSE

------------------------------------------------------------------------------

Устанавить утилиты для работы с SSL-сертификатами и скачивания файлов через терминал

sudo apt-get install ca-certificates curl

Создать защищенную директорию для хранения GPG-ключей сторонних репозиториев

sudo install -m 0755 -d /etc/apt/keyrings

Скачать официальный публичный GPG-ключ шифрования Docker для проверки подлинности пакетов

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

Выдать права на чтение этого ключа всем пользователям системы

sudo chmod a+r /etc/apt/keyrings/docker.asc

Добавить официальный стабильный репозиторий Docker в список источников Ubuntu (apt)

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

sudo apt-get update

Устанавивить движок Docker, консольный клиент, контейнеризатор и плагин Docker Compose V2

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

==============================================================================

НАСТРОЙКА ФАЙЕРВОЛЛА (БЕЗОПАСНОСТЬ)

==============================================================================

Разрешить входящий трафик на порт 3478 по протоколу UDP (основной порт STUN-сервера)

sudo ufw allow 3478/udp

==============================================================================

НАСТРОЙКА И УПРАВЛЕНИЕ СЕРВЕРОМ

==============================================================================

Автоматически заменить значение PUBLIC_IP в файле .env на реальный IP-адрес вашего VPS

sed -i 's/^PUBLIC_IP=.*/PUBLIC_IP=ВНЕШНИЙ_IP/' .env

Сделать все bash-скрипты автоматизации в текущей папке исполняемыми (разрешаем их запуск)

chmod +x *.sh

Запустить STUN-сервер (внутри скрипта обычно вызывается docker compose up -d)

./start.sh

Открыть поток логов контейнера в реальном времени для мониторинга работы сервера

./get_logs.sh

Остановить STUN-сервер (внутри обычно вызывается docker compose down)

./stop.sh