Как настроить VPS с нуля
Порядок один и тот же у любого провайдера. Полчаса работы — и у вас сервер, который не взломают на первой неделе.
Содержание 11
Что у вас есть на старте
После оплаты провайдер присылает три вещи: IP-адрес сервера, имя пользователя (обычно root) и пароль либо ваш SSH-ключ. Всё остальное — пустая Ubuntu.
Инструкция ниже написана под Ubuntu 22.04 или 24.04. Под Debian всё то же самое. Какую версию Ubuntu выбрать и как потом обновлять систему — в статье Ubuntu на VPS: какую версию выбрать и как обновлять.
Если вы хотите управлять сервером не командами, а через браузер, прочитайте статью Панель управления хостингом и VPS до того, как ставить на сервер сайты: панель ставят только на чистую систему.
1. Подключиться по SSH
На Mac и Linux откройте терминал, на Windows — PowerShell или встроенный OpenSSH:
ssh root@ВАШ_IPПервый раз система спросит, доверяете ли вы этому серверу — отвечаете yes. Дальше вводите пароль из письма провайдера. Пароль при вводе не отображается, даже звёздочками: это нормально, печатайте вслепую и жмите Enter.
Если пустили по ключу — пароль не спросят вовсе.
Где взять IP и пароль, как подключиться со старой Windows и что значат ошибки подключения — в отдельной инструкции «Как подключиться к VPS по SSH».
2. Обновить систему
apt update && apt upgrade -yПервая команда обновляет список пакетов, вторая — сами пакеты. На свежем сервере это займёт пару минут. Если после обновления система попросит перезагрузиться — перезагрузите: reboot, подождите полминуты и подключитесь снова.
3. Завести обычного пользователя
Работать под root постоянно не стоит: любая опечатка выполняется с неограниченными правами. Создаём себе отдельного пользователя и даём ему право повышать привилегии через sudo.
adduser ivan
usermod -aG sudo ivanВместо ivan — любое имя. Команда спросит пароль и несколько необязательных полей, их можно пропустить, нажимая Enter.
Теперь скопируем на нового пользователя ваш способ входа. Если вы заходили по ключу:
rsync --archive --chown=ivan:ivan ~/.ssh /home/ivanОткройте второе окно терминала и проверьте, что новый пользователь заходит:
ssh ivan@ВАШ_IProot, чтобы всё починить. Это самая частая причина, по которой люди теряют доступ к собственному серверу.4. Закрыть вход по паролю и под root
Это тот самый шаг, который отсекает почти все автоматические взломы. Делайте его, только убедившись, что вход по ключу под новым пользователем работает.
Сначала положите свой публичный ключ на сервер. На своём компьютере:
ssh-copy-id ivan@ВАШ_IPЕсли ключа ещё нет, создайте его: ssh-keygen -t ed25519.
Теперь на сервере открываем настройку SSH:
sudo nano /etc/ssh/sshd_configНаходим и приводим к такому виду три строки (если строки закомментированы знаком #, знак убираем):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yesСохраняем: Ctrl+O, Enter, Ctrl+X. Проверяем настройки и применяем:
sudo sshd -t && sudo systemctl restart sshПервая половина команды проверяет файл настроек. Если в нём ошибка, она покажет, в какой строке, и SSH перезапускаться не будет — исправьте строку и повторите. Ошибок нет — SSH перезапустится молча.
Одна ловушка. В Ubuntu часть настроек SSH лежит в папке /etc/ssh/sshd_config.d/, и файлы оттуда читаются раньше основного, а из повторяющихся настроек действует первая. Если там есть строка PasswordAuthentication yes — например, в файле 50-cloud-init.conf, — вход по паролю останется открытым, что бы ни было написано в sshd_config. Проверьте, что действует на самом деле:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Должно быть passwordauthentication no и permitrootlogin no. Если где-то yes, найдите эту строку в файлах папки sshd_config.d, поменяйте на no и снова выполните проверку с перезапуском.
И снова — не закрывая текущего окна — проверьте вход из нового.
5. Включить фаервол
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enableПорядок важен: сначала разрешаем SSH, потом включаем фаервол. Если сделать наоборот, вы отрежете себя от сервера. Порты 80 и 443 нужны сайту; если сайта не будет, их можно не открывать.
Проверить, что получилось: sudo ufw status.
6. Поставить веб-сервер
Если на сервере будет сайт:
sudo apt install nginx -yОткройте в браузере http://ВАШ_IP — увидите приветственную страницу nginx. Значит, работает.
Файлы сайта кладутся в /var/www/, настройки — в /etc/nginx/sites-available/. После правки настроек всегда проверяйте их перед применением:
sudo nginx -t
sudo systemctl reload nginxnginx -t покажет ошибку до того, как она положит сайт. Привыкните к этой паре команд.
Как описать в nginx свой сайт, оставить один адрес — с www или без — и разобраться с ошибками 403, 404 и 502, разобрано в инструкции Как разместить сайт на VPS.
7. Выдать сайту сертификат
Бесплатный сертификат Let's Encrypt выдаёт программа Certbot. Перед этим домен должен указывать на IP вашего сервера, а порт 80 — быть открытым: через него Certbot подтверждает домен. Разработчики Certbot советуют ставить его через snap. Если раньше вы ставили Certbot из пакетов системы, сначала удалите его: sudo apt-get remove certbot. Дальше — три команды:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --nginx -d example.ru -d www.example.ruCertbot сам пропишет настройки в nginx и поставит таймер, который продлевает сертификат, когда до конца срока остаётся меньше трети. Проверить, что автопродление живо: sudo certbot renew --dry-run. Подробнее — в инструкции «Бесплатный SSL-сертификат»: там же переадресация с HTTP на HTTPS и что делать, если после установки нет замка.
8. Настроить время и подкачку
Мелочи, о которых вспоминают поздно.
Часовой пояс, чтобы логи читались по-человечески:
sudo timedatectl set-timezone Europe/MoscowФайл подкачки — на сервере с 1–2 ГБ памяти он спасает от внезапного падения процессов:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabКороткий список, чтобы ничего не забыть
- Зашли по SSH.
- Обновили систему.
- Создали пользователя с
sudo. - Положили SSH-ключ, проверили вход из второго окна.
- Запретили вход по паролю и под
root, проверили черезsshd -T. - Включили
ufw, не забыв разрешить SSH. - Поставили nginx, если нужен сайт.
- Выдали сертификат.
- Поставили часовой пояс и подкачку.
Что почитать дальше
- Как подключиться к VPS по SSH — вход с Windows, Mac и Linux, ключи, передача файлов и частые ошибки.
- Как разместить сайт на VPS — nginx с нуля: домен, настройки сайта, HTTPS и частые ошибки.
- Резервные копии сайта — ежедневная копия файлов и базы скриптом и cron и где её хранить.
- Ubuntu на VPS: какую версию выбрать и как обновлять — сроки поддержки, автообновления и переход на новую версию.
- Чем VPS отличается от обычного хостинга
- VPS для телеграм-бота — если сервер берётся под бота.
- Рейтинг VPS 2026 — если сервер ещё не выбран: цены семи провайдеров.
- Облачный сервер — чем он отличается от VPS и когда выгоднее готового тарифа.
- Панель управления хостингом и VPS — если удобнее управлять сервером через браузер: FASTPANEL, HestiaCP или ispmanager.
Проверено и обновлено: 01.10.2026