TopCloudHub
Вернуться к блогу

Как настроить VPS с нуля на Ubuntu 24.04: полная инструкция для начинающих

Пошаговая инструкция: первый вход по SSH, создание пользователя, настройка UFW-фаервола, установка Nginx, SSL-сертификат.

Руководства8 мин36
Как настроить VPS с нуля на Ubuntu 24.04: полная инструкция для начинающих
Что нужно перед началом? Перед тем как начать, убедитесь что у вас есть:
  • IP-адрес VPS — провайдер выдаёт его сразу после создания сервера.
  • Пароль root — приходит на email или указывается при создании.
  • Терминал — на macOS/Linux он встроен. На Windows: PowerShell, Windows Terminal или PuTTY.
  • Домен — нужен только для шага с SSL. Если домена нет — пропустите шаги 6–7 или используйте IP.
Версия Ubuntu: инструкция написана для Ubuntu 24.04 LTS. Команды работают и на Ubuntu 22.04. Дляв Debian 12 отличия минимальны. 1. Первый вход по SSH SSH (Secure Shell) — протокол безопасного удалённого подключения к серверу. Откройте терминал и выполните:
Команда · bash
ssh root@IP_ВАШЕГО_СЕРВЕРА # Например: ssh root@185.22.63.101
При первом подключении терминал спросит подтвердить отпечаток сервера — введите yes. Затем введите пароль root. Windows: SSH встроен в PowerShell начиная с Windows 10. Просто откройте PowerShell и выполните ту же команду. Если не работает — установите PuTTY или Windows Terminal из Microsoft Store. После успешного входа вы увидите приглашение командной строки: root@vps-hostname:~# — это значит, вы на сервере с правами root. 2. Обновление системы Сразу после входа обновите список пакетов и установите свежие версии. Это закрывает известные уязвимости безопасности.
Команда · bash
apt update && apt upgrade -y
Команда обновит список репозиториев (apt update), установит все доступные обновления (apt upgrade -y). Флаг -y автоматически подтверждает все вопросы. Процесс занимает 1–3 минуты. После завершения установите несколько полезных утилит:
Команда · bash
apt install -y curl wget git htop nano ufw fail2ban # curl/wget — загрузка файлов # git — для работы с репозиториями # htop — мониторинг ресурсов # nano — удобный текстовый редактор # ufw — фаервол # fail2ban — защита от перебора паролей
3. Создание пользователя Работать постоянно от root — плохая практика: одна ошибка может сломать всю систему. Создайте обычного пользователя и дайте ему права sudo (выполнять команды от имени администратора).
Команда · bash
# Создаём пользователя (замените 'myuser' на своё имя) adduser myuser # Система спросит пароль и дополнительные данные # Остальные поля можно пропустить нажав Enter # Добавляем пользователя в группу sudo usermod -aG sudo myuser
Проверьте что пользователь создан и имеет права sudo:
Команда · bash
su - myuser sudo whoami # Должен вывести: root exit # Возвращаемся к root
4. SSH-ключи и безопасный вход Вход по паролю небезопасен — боты постоянно пытаются подобрать пароли к серверам. Вход по SSH-ключу гораздо надёжнее. Генерация ключа (на вашем компьютере, не на сервере):
Команда · bash
ssh-keygen -t ed25519 -C "your@email.com" # Нажмите Enter для пути по умолчанию (~/.ssh/id_ed25519) # Можете добавить passphrase или оставить пустым
После этого появятся два файла: ~/.ssh/id_ed25519 (приватный ключ — никому не давать) и ~/.ssh/id_ed25519.pub (публичный ключ — его копируем на сервер). Копирование ключа на сервер:
Команда · bash
ssh-copy-id myuser@IP_СЕРВЕРА # Введёт пароль пользователя один раз и скопирует ключ
На Windows или если ssh-copy-id недоступна — вручную:
Команда · bash
# На сервере, от имени myuser: mkdir -p ~/.ssh && chmod 700 ~/.ssh nano ~/.ssh/authorized_keys # Вставьте содержимое файла id_ed25519.pub # Ctrl+X, Y, Enter — сохранить и выйти chmod 600 ~/.ssh/authorized_keys
Важно: проверьте что вход по ключу работает — откройте новый терминал, выполните ssh myuser@IP_СЕРВЕРА. Вошли без пароля — только тогда отключайте парольный вход. Иначе заблокируете себя. Отключение входа по паролю и root-доступа:
Команда · bash
nano /etc/ssh/sshd_config
Найдите и измените (или добавьте) следующие строки:
Команда · bash
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
Сохраните файл (Ctrl+X, Y, Enter) и перезапустите SSH:
Команда · bash
systemctl restart sshd
Проверка: откройте новый терминал и попробуйте войти: ssh myuser@IP_СЕРВЕРА. Должны войти по ключу без пароля. Попытка войти от root должна быть отклонена. 5. Настройка фаервола UFW UFW (Uncomplicated Firewall) — простой в настройке фаервол для Ubuntu. По умолчанию он закрывает все входящие соединения, кроме тех, что мы явно разрешили. Критически важно: перед включением UFW обязательно разрешите SSH (порт 22), иначе заблокируете себя, потеряете доступ к серверу.
Команда · bash
# Запрещаем все входящие соединения по умолчанию ufw default deny incoming # Разрешаем все исходящие ufw default allow outgoing # ОБЯЗАТЕЛЬНО: разрешаем SSH ufw allow OpenSSH # Разрешаем HTTP и HTTPS (если нужен веб-сервер) ufw allow 'Nginx Full' # Включаем фаервол ufw enable # Ответьте y на вопрос о подтверждении # Проверяем статус ufw status verbose
Вывод должен выглядеть примерно так:
Команда · bash
Status: active To Action From -- ------ ---- OpenSSH ALLOW IN Anywhere Nginx Full ALLOW IN Anywhere
Если на сервере работает что-то ещё, то добавляйте правила по необходимости: ufw allow 3000 (Node.js), ufw allow 5432 (PostgreSQL, только для локального — лучше не открывать наружу). 6. Установка Nginx Nginx — быстрый и лёгкий веб-сервер. Подходит как для раздачи статических файлов, так и в роли reverse proxy перед Node.js, Python или PHP-приложением.
Команда · bash
# Устанавливаем Nginx apt install nginx -y # Запускаем и добавляем в автозагрузку systemctl start nginx systemctl enable nginx # Проверяем статус systemctl status nginx
Откройте браузер и перейдите по IP вашего сервера — должна открыться страница «Welcome to nginx!». Это значит всё работает. Настройка виртуального хоста для домена (замените example.ru на свой домен):
Команда · bash
nano /etc/nginx/sites-available/example.ru
Содержимое файла:
Команда · bash
server { listen 80; server_name example.ru www.example.ru; root /var/www/example.ru; index index.html index.php; location / { try_files $uri $uri/ =404; } }
Применяем конфигурацию:
Команда · bash
# Создаём папку для сайта mkdir -p /var/www/example.ru echo "<h1>Работает!</h1>" > /var/www/example.ru/index.html # Активируем конфиг ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/ # Проверяем синтаксис nginx -t # Перезагружаем Nginx systemctl reload nginx
7. SSL-сертификат (Let's Encrypt) Let's Encrypt выдаёт бесплатные SSL-сертификаты. Certbot — официальный клиент для получения и автоматического обновления сертификатов. Требование: перед этим шагом домен должен быть направлен на IP вашего сервера через DNS A-запись. Данное требование можно проверить используя Certbot.
Команда · bash
# Устанавливаем Certbot apt install certbot python3-certbot-nginx -y # Получаем сертификат (замените домен) certbot --nginx -d example.ru -d www.example.ru # Certbot спросит email и попросит принять условия # Выберите вариант с автоматическим редиректом HTTP → HTTPS
Certbot автоматически изменит конфигурацию Nginx и настроит HTTPS. Проверьте что работает:
Команда · bash
# Проверяем автообновление сертификата certbot renew --dry-run # Должно вывести: Congratulations, all simulated renewals succeeded
Certbot автоматически добавляет задание в cron или systemd timers — до истечения срока сертификат будет обновляться самостоятельно. 8. Базовый мониторинг Несколько команд, которые пригодятся для диагностики:
Команда · bash
# Нагрузка на CPU и RAM (интерактивно) htop # Использование диска df -h # Использование RAM free -h # Последние входы на сервер last -n 20 # Логи Nginx (ошибки) tail -f /var/log/nginx/error.log # Логи системы journalctl -xe # Открытые порты ss -tlnp
Для постоянного мониторинга рассмотрите: Netdata (лёгкий, устанавливается одной командой), Grafana + Prometheus (для серьёзных проектов), или мониторинг от провайдера (Selectel, VK Cloud, Yandex Cloud имеют встроенные дашборды). Итоговый чеклист настройки
  • Первый вход по SSH и проверка доступа.
  • Система обновлена, базовые утилиты установлены.
  • Создан пользователь с sudo-правами.
  • Настроены SSH-ключи, вход по паролю отключён.
  • Root-вход по SSH отключён.
  • Фаервол UFW настроен, лишние порты закрыты.
  • Nginx установлен и запущен.
  • Виртуальный хост для домена настроен.
  • SSL-сертификат получен, HTTPS работает.
  • Автообновление сертификата настроено.
Это базовая настройка. Дальше — в зависимости от задачи: установка PHP-FPM для WordPress, Node.js для API, PostgreSQL для баз данных, Docker для контейнеров. Частые вопросы Что делать если забыл пароль root? Используйте панель управления провайдера — там есть функция аварийной консоли (VNC/KVM-консоль) или сброса пароля. Через консоль можно войти без SSH и сменить пароль командой passwd root. Что делать если UFW заблокировал SSH? Войдите через аварийную консоль провайдера (VNC/KVM). Выполните: ufw disable, затем проверьте правила ufw status verbose, добавьте ufw allow OpenSSH и снова включите ufw enable. Именно для таких случаев важно иметь доступ к консоли провайдера. Как подключиться к VPS по SSH с Windows? В Windows 10/11 SSH встроен в PowerShell и CMD — просто откройте терминал и выполните ssh root@IP_СЕРВЕРА. Альтернативы: PuTTY (графический клиент), Windows Terminal из Microsoft Store, или WSL (Linux-подсистема Windows). Как изменить порт SSH с 22 на другой? Откройте /etc/ssh/sshd_config и измените или добавьте строку Port 2222 (любой порт от 1024 до 65535). Добавьте новый порт в UFW: ufw allow 2222/tcp. Перезапустите sshd: systemctl restart sshd. Не закрывайте текущую сессию — проверьте подключение в новом терминале командой ssh -p 2222 myuser@IP. Fail2ban уже установлен — нужно ли его настраивать? Базовая конфигурация работает из коробки и уже защищает SSH. Для более тонкой настройки отредактируйте /etc/fail2ban/jail.local — там можно изменить количество попыток до бана и время блокировки. Проверить статус: fail2ban-client status sshd.
#VPS#Ubuntu#SSH#Nginx#SSL#Настройка

Нужна помощь с выбором?

Откройте каталог и сравните провайдеров по параметрам, важным для вашего проекта

Читайте также

Все статьи
152-ФЗ и облако: за что штрафуют и как не попасть
5 мин28

152-ФЗ и облако: за что штрафуют и как не попасть

Проверьте, где хранятся данные ваших пользователей: зарубежные облачные провайдеры для баз данных ведут к штрафам до 18 млн рублей по 152-ФЗ. Выберите российского провайдера с явной локализацией серверов и подпишите договор на обработку персональных данных — до того, как это сделает Роскомнадзор.

#152-ФЗ#Штрафы
Читать

10 июня 2026 г.

KVM против OpenVZ : какую виртуализацию выбрать в 2026 году
7 мин19

KVM против OpenVZ : какую виртуализацию выбрать в 2026 году

Чем KVM отличается от OpenVZ, почему KVM стал стандартом в 2026 году и когда OpenVZ ещё оправдан. Сравнение по 9 критериям с таблицей и конкретными сценариями.

#KVM#OpenVZ
Читать

8 июня 2026 г.

Как выбрать VPS : пошаговый гид для тех, кто покупает впервые
9 мин13

Как выбрать VPS : пошаговый гид для тех, кто покупает впервые

Как выбрать VPS с нуля: сколько нужно CPU, RAM и диска, на что смотреть в тарифах, какую виртуализацию брать и какие вопросы задавать провайдеру. Пошаговый гид 2026.

#Выбор VPS#Хостинг
Читать

4 июня 2026 г.

VPS и VDS — что это и в чём разница простыми словами
8 мин44

VPS и VDS — что это и в чём разница простыми словами

Вы встречаете аббревиатуры VPS, VDS, виртуальный хостинг, выделенный сервер — и не понимаете, что из этого нужно именно вам. Объясняем разницу без технического жаргона, с примерами и конкретными сценариями.

#VPS#VDS
Читать

2 июня 2026 г.