173 lines
6.9 KiB
Markdown
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
|
|
```
|