6.9 KiB
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