## ============================================================================== ## ПОДГОТОВКА И НАСТРОЙКА 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 < /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 ```