Skip to content

Balbuto/Setup-and-Test-Server-Ubuntu-24

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Setup & Test Server Ubuntu 24.04

Универсальный скрипт для первоначальной настройки и диагностики сервера Ubuntu 24.04 LTS.

Версия 3.3

Bash Ubuntu License

Выполняет полную настройку сети, установку необходимого ПО, hardening и предоставляет встроенный набор тестов для проверки производительности.


📦 Установка

wget https://raw.githubusercontent.com/Balbuto/Setup-and-Test-Server-Ubuntu-24/refs/heads/main/server-setup.sh
chmod +x server-setup.sh
sudo ./server-setup.sh

SHA256: 82c409a0af074cc2d62c0f4fcf38f483e5234a0cf236c77b4d29b6ab2f7e9195

хеш актуален для этой версии server-setup.sh из этого репозитория — после любого обновления файла пересчитайте сами: sha256sum server-setup.sh

Требования: Ubuntu 24.04 LTS, root.


Что нового

v3.3 — 2026-07-02 — bugfix release

  • Исправлен Docker GPG keyring — при сбое сети/curl во время получения ключа Docker скрипт мог оставить битый 0-байтовый /etc/apt/keyrings/docker.gpg и молча пропускать повторную загрузку при следующих запусках. Теперь ошибка обрабатывается явно, битый файл удаляется, install_docker_apt корректно возвращает код ошибки
  • Устранена гонка в wait_apt_lock() — конструкция ((i++)) при i=0 могла под set -e привести к незаметному аварийному завершению скрипта без единого сообщения об ошибке
  • read везде переведён на read -r, чтобы бэкслеши во вводе не искажались
  • В главном меню убраны шаблоны A && B || C (не эквивалентны if/then/else), заменены на явные if
  • Скрипт проходит shellcheck без единого замечания

v3.2 — 2026-06-22 — bugfix release

  • APT полностью переписан: APT_OPTS массив вместо строки, IFS-safe вывод пакетов
  • apt-lock wait — ждёт освобождения /var/lib/dpkg/lock, не падает на свежей системе с unattended-upgrades
  • Стоп при ошибке apt — базовая настройка прерывается, если apt update/upgrade/install упал, с показом хвоста лога в консоль
  • docker --version safe — не валит лог если docker не поставился
  • Все apt-вызовы через "${APT_OPTS[@]}", вывод пакетов через IFS=' '
  • need_cmd, тесты, read — везде || true, меню не падает

v3.0

v2 v3
IPv6 отключается всегда IPv6 не трогается. Отдельное меню с бэкапом и /root/restore-ipv6.sh
nofile 1M+, conntrack 2M сразу SAFE профиль по умолчанию: nofile 65k, conntrack 65k. HIGHLOAD опционально
curl | bash без проверки Все внешние скрипты HTTPS + SHA256 + подтверждение
Docker через get.docker.com | sh Docker через официальный apt-репозиторий с GPG
Перезапись /etc без бэкапа Автобэкап в /root/server-setup-backups/
Логи с ANSI-мусором Чистые логи
Весь вывод apt в консоль Тихая установка: прогресс в 1 строку, полный лог в файл
UFW-manager: blind wget git clone + git diff перед запуском
Базовый софт: mc, net-tools + ncdu, iftop

✨ Возможности

1. Базовая настройка сервера

Интерактивно, каждый шаг отключаемый:

  1. Обновление системы - update / upgrade / dist-upgrade / autoremove / autoclean
  2. Базовый софт - mc, net-tools, ncdu, iftop, curl, wget, git
  3. Docker + Docker Compose - официальный apt-репозиторий, GPG
  4. BBR - TCP congestion control
  5. Hardening - на выбор SAFE / HIGHLOAD / none
  6. irqbalance

При ошибке apt — настройка прерывается, в консоль выводится хвост лога.

2. Управление IPv6

  • Посмотреть статус
  • Отключить с автобэкапом + /root/restore-ipv6.sh
  • Включить обратно

3. Управление файерволом UFW

Обертка над Balbuto/ufw-manager:

  • git clone, показ git log, git diff перед запуском

4. Диагностика Multitest

14 тестов, все через верифицированную загрузку:

# Тест Источник
1 IP Region ipregion.vrnt.xyz
2 Censorcheck — геоблок vernette/censorcheck
3 Censorcheck — DPI vernette/censorcheck
4 iPerf3 — RU itdoginfo/russian-iperf3-servers
5 YABS yabs.sh
6 IP Check Place IP.Check.Place
7 bench.sh bench.sh
8 IPQuality Check.Place
9 sysbench CPU
10 sysbench Memory
11 Network Bench
12 SSL/TLS check
13 Traceroute yandex.ru
14 Ping yandex.ru

Пункт 99 - Запустить ВСЕ.


🛡️ Sysctl профили

Подробно: docs/SYSCTL.md

SAFE (по умолчанию):

nofile = 65535
conntrack_max = 65536
somaxconn = 4096
rmem/wmem_max = 16 MB

HIGHLOAD (XRAY/VPN):

nofile = 1048576
conntrack_max = 2097152
somaxconn = 1048576
rmem/wmem_max = 128 MB

Оба с BBR, FastOpen, syncookies, anti-spoof.

Конфиг: /etc/sysctl.d/99-server.conf
Limits: /etc/security/limits.d/99-server.conf


🔒 Верификация внешних скриптов

Каждый тест-скрипт: HTTPS-only, TLS 1.2+, SHA256, ручное подтверждение если хэш не зашит.

Хэши в run_multitest() пустые по умолчанию - заполните после первого прогона, см. docs/TESTS.md


📁 Структура

server-setup.sh          # v3.3
README.md
CHANGELOG.md
LICENSE
CONTRIBUTING.md
SECURITY.md
docs/
  USAGE.md
  SYSCTL.md
  TESTS.md

Логи: /var/log/server-setup.log/tmp/server-setup.log~/server-setup.log

Бэкапы: /root/server-setup-backups/YYYYMMDD-HHMMSS/


📖 Документация


📜 Лицензия

MIT


🙏 Благодарности

  • Авторы yabs.sh, bench.sh, censorcheck, ipregion, IP.Check.Place и др.

About

Скрипт первоначальной настройки и тестирования Ubuntu 24 Server

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages