Настройка VPS — ключевой навык для любого, кто хочет работать с серверами. Это комплексный процесс, но я разберу его на основные этапы от самого начала до базовой готовности к работе.
Вот пошаговое руководство.
Этап 0: Получение доступа к VPS
После заказа VPS у хостинг-провайдера (Datacheap.ru, DigitalOcean, Vultr, и т.д.) вы получите на email данные для доступа:
· IP-адрес вашего сервера
· Логин (обычно root)
· Пароль (или закрытый SSH-ключ, если вы его предоставили)
Этап 1: Первое подключение и базовая безопасность
Подключаемся к серверу по SSH.
На Windows: Используйте программу PuTTY или встроенный SSH-клиент в Windows 10/11 (командная строка/PowerShell).
На Linux/macOS: Используйте терминал.
bash
ssh root@IP_АДРЕС_ВАШЕГО_СЕРВЕРА
Система запросит пароль. При первом подключении спросит о доверии к fingerprint — соглашайтесь.
1.1. Обновление системы
Первым делом всегда обновляйте пакеты сервера.
Для Ubuntu/Debian:
bash
apt update && apt upgrade -y
Для CentOS/RHEL/AlmaLinux:
bash
dnf update -y
# или для старых версий
yum update -y
1.2. Создание нового пользователя (ОБЯЗАТЕЛЬНО)
Работать из-под root небезопасно. Создадим обычного пользователя.
bash
adduser username # Вместо 'username' введите ваше имя пользователя
usermod -aG sudo username # Добавляем пользователя в группу sudo (Ubuntu/Debian)
# Для CentOS/AlmaLinux используйте:
# usermod -aG wheel username
Теперь можно выйти из сессии root (exit) и подключаться под новым пользователем:
ssh username@IP_АДРЕС_ВАШЕГО_СЕРВЕРА
1.3. Настройка аутентификации по SSH-ключу (ОЧЕНЬ РЕКОМЕНДУЕТСЯ)
Пароли можно подобрать, а криптографические ключи — практически нет.
1. Сгенерируйте ключ на своем компьютере (если у вас его еще нет):
bash
ssh-keygen -t ed25519
Ключи сохранятся в ~/.ssh/id_ed25519 (закрытый) и ~/.ssh/id_ed25519.pub (открытый).
2. Скопируйте открытый ключ на сервер:
bash
ssh-copy-id username@IP_АДРЕС_ВАШЕГО_СЕРВЕРА
Теперь вы сможете заходить на сервер без пароля.
3. Настройте SSH-демон для большей безопасности.
Откройте файл конфигурации:
bash
sudo nano /etc/ssh/sshd_config
Найдите и измените следующие строки:
bash
PermitRootLogin no # Запрещаем вход под root
PasswordAuthentication no # Отключаем аутентификацию по паролю
ВНИМАНИЕ! Убедитесь, что вы скопировали свой SSH-ключ до отключения паролей, иначе вы потеряете доступ к серверу!
Перезагрузите SSH-сервис:
bash
sudo systemctl reload ssh
# или sudo systemctl reload sshd
1.4. Настройка базового фаервола (UFW)
UFW (Uncomplicated Firewall) — простой фронтенд для iptables.
Для Ubuntu/Debian:
bash
sudo apt install ufw
Настройка правил:
bash
sudo ufw allow OpenSSH # Разрешаем SSH-подключения (ОБЯЗАТЕЛЬНО!)
sudo ufw allow 80/tcp # Разрешаем HTTP (для веб-сервера)
sudo ufw allow 443/tcp # Разрешаем HTTPS (для защищенного веб-сервера)
sudo ufw enable # Включаем фаервол
Проверьте статус: sudo ufw status
Этап 2: Установка базового программного обеспечения
Теперь установим то, что нужно для работы веб-проектов.
2.1. Веб-сервер (Nginx или Apache)
Nginx (более современный и производительный для статики):
bash
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Теперь в браузере перейдите по IP-адресу вашего сервера. Вы должны увидеть приветственную страницу Nginx.
Apache:
bash
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
2.2. База данных (MySQL или PostgreSQL)
MySQL:
bash
sudo apt install mysql-server -y
sudo mysql_secure_installation # Запустит скрипт базовой настройки безопасности
2.3. Язык программирования (PHP, Python, Node.js)
PHP (для веб-приложений):
bash
sudo apt install php-fpm php-mysql -y
Node.js:
Лучше устанавливать через менеджер версий nvm.
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# Перезапустите терминал или выполните: source ~/.bashrc
nvm install --lts
Этап 3: Настройка часового пояса и сервиса времени
Чтобы время на сервере было точным.
bash
sudo timedatectl set-timezone Europe/Moscow # Укажите ваш часовой пояс
sudo apt install chrony -y # Установка современного NTP-клиента
sudo systemctl enable chrony
Этап 4 (Опционально): Настройка доменного имени
1. Купите домен у регистратора.
2. В панели управления доменом настройте A-записи, указывающие на IP-адрес вашего VPS:
o @ -> IP_ВАШЕГО_СЕРВЕРА
o www -> IP_ВАШЕГО_СЕРВЕРА
Изменения DNS могут распространяться от нескольких минут до 24 часов.
Этап 5: Развертывание вашего приложения
Это тема для отдельного большого руководства, но общий принцип:
1. Склонируйте ваш код (например, из Git) в папку, обычно /var/www/.
2. Настройте виртуальный хост в Nginx/Apache, чтобы он указывал на папку с вашим приложением.
3. Убедитесь, что права доступа к файлам и папкам корректны.
4. Перезагрузите веб-сервер.
Пример минимального конфига для Nginx (/etc/nginx/sites-available/your_domain):
nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com;
root /var/www/your_project;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
# Для PHP-приложений (например, WordPress)
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
Активируйте конфиг и перезагрузите Nginx:
bash
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
sudo nginx -t # Проверить синтаксис конфига
sudo systemctl reload nginx
Полезные команды для мониторинга
· htop — мониторинг процессов и ресурсов (установить: apt install htop).
· df -h — просмотр свободного места на дисках.
· free -h — просмотр использования оперативной памяти.
· nethogs — просмотр трафика по процессам (установить: apt install nethogs).
Что дальше?
· Резервное копирование: Настройте автоматическое создание бэкапов (например, через cron и rsync).
· Мониторинг: Установите Prometheus, Grafana или более простые решения типа Netdata.
· SSL-сертификаты: Обязательно настройте HTTPS с помощью бесплатных сертификатов от Let's Encrypt (используйте certbot).
Это базовая, но уже вполне рабочая конфигурация. Дальнейшие шаги зависят от конкретной задачи, которую вы решаете на своем VPS.