Как управлять VPS через командную строку: Проще простого!

calendar_month 1 октября 2025 schedule 10 мин. чтения visibility 3 просмотров
person
Valebyte Team
Как управлять VPS через командную строку: Проще простого!
```html

Как управлять VPS через командную строку?

Привет, коллеги! Думаю, каждый из нас, кто хоть раз сталкивался с администрированием VPS hosting, знает, что командная строка – это наш лучший друг, а иногда и злейший враг. Но не бойтесь! В этой статье мы разберем основные моменты управления VPS через консоль, чтобы даже самый начинающий линуксоид чувствовал себя уверенно. Я поделюсь своим опытом, ошибками, которые я совершал, и, конечно же, покажу самые полезные команды и приемы. Будем устанавливать софт, настраивать сервисы, мониторить систему – в общем, сделаем все, чтобы ваша VPS работала как часы. Этот setup будет *огонь*! Погнали!

Содержание:

Основы подключения к VPS через SSH

Как управлять VPS через командную строку? - A screenshot of a terminal window showing a successful SSH connection to a VPS, including the user prompt and server information.

Okay, so, первое, что нам нужно сделать – это подключиться к нашей VPS. Самый распространенный способ – это SSH (Secure Shell). Это зашифрованное соединение, которое позволяет безопасно управлять сервером. Honestly, без SSH никуда. Я помню, как в самом начале пытался работать с сервером без шифрования… Не делайте так. Это небезопасно. Чтобы подключиться, нам понадобится терминал (в Linux или macOS) или PuTTY (в Windows). Ну и, конечно, IP-адрес VPS, логин и пароль (или SSH-ключ). Real talk, лучше использовать SSH-ключи, чем пароли. Это гораздо безопаснее. Вот команда для подключения через терминал:
ssh user@192.168.1.100
Где `user` – это ваше имя пользователя, а `192.168.1.100` – IP-адрес VPS. Замените их на свои данные, очевидно. Если используете нестандартный порт, то добавьте `-p` с номером порта:
ssh -p 2222 user@192.168.1.100
Если вы используете SSH-ключ, то нужно указать путь к нему с помощью опции `-i`:
ssh -i ~/.ssh/id_rsa user@192.168.1.100
Once connected, вы увидите приветствие сервера и сможете вводить команды.

Настройка SSH-ключей (для параноиков)

I'll be straight with you, настройка SSH-ключей – это немного геморрой, но оно того стоит. Сначала нужно сгенерировать пару ключей (публичный и приватный) на вашем локальном компьютере:
ssh-keygen -t rsa -b 4096
Эта команда создаст два файла: `id_rsa` (приватный ключ, храните его в секрете!) и `id_rsa.pub` (публичный ключ). Теперь нужно скопировать содержимое `id_rsa.pub` на сервер. Есть несколько способов это сделать. Самый простой – использовать команду `ssh-copy-id`:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100
Эта команда попросит вас ввести пароль от сервера, а затем скопирует публичный ключ в файл `~/.ssh/authorized_keys`. Если команды `ssh-copy-id` нет, можно сделать это вручную:
cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
После этого можно зайти на сервер без пароля. Boom! That's it! Теперь, чтобы окончательно обезопасить себя, можно отключить вход по паролю в файле `/etc/ssh/sshd_config`. Откройте его в текстовом редакторе (например, `nano` или `vim`):
sudo nano /etc/ssh/sshd_config
Найдите строку `PasswordAuthentication yes` и измените ее на `PasswordAuthentication no`. Также можно изменить порт SSH на нестандартный (например, 2222), чтобы меньше привлекать внимание ботов. После этого перезапустите SSH-сервис:
sudo systemctl restart sshd
*Word of warning*: Если вы накосячите с настройкой SSH, то можете потерять доступ к серверу. Поэтому всегда делайте бэкапы и проверяйте конфигурацию перед перезапуском сервиса. Been there, done that...
Метод аутентификацииБезопасностьУдобство
ПарольНизкаяВысокое
SSH-ключВысокаяСреднее (требуется настройка)

Security is always excessive until it's not enough.

Rob Joyce, NSA

Управление пакетами и установка программ

Как управлять VPS через командную строку? - A terminal showing the output of an `apt update` and `apt install` command, illustrating the process of installing a software package.

Alright, let's talk about package management. Honestly, это одна из самых важных вещей, которые нужно уметь делать на сервере. Package managers позволяют легко устанавливать, обновлять и удалять программы. Все дистрибутивы Linux используют свои package managers. На Debian и Ubuntu – это `apt`, на CentOS и Red Hat – `yum` или `dnf`. The deal is, я буду показывать примеры для `apt`, потому что это самый распространенный вариант. Но команды для `yum` или `dnf` обычно очень похожи. Первым делом, нужно обновить список доступных пакетов:
sudo apt update
Эта команда скачает списки пакетов из репозиториев. Затем можно обновить установленные пакеты:
sudo apt upgrade
Эта команда обновит все пакеты, для которых есть обновления. Если вы хотите обновить только один пакет, то укажите его имя:
sudo apt upgrade nginx
Для установки нового пакета используйте команду `apt install`:
sudo apt install nginx
Эта команда установит пакет `nginx` и все его зависимости. Для удаления пакета используйте команду `apt remove`:
sudo apt remove nginx
Эта команда удалит пакет `nginx`, но оставит его конфигурационные файлы. Если вы хотите удалить и конфигурационные файлы, то используйте команду `apt purge`:
sudo apt purge nginx

Работа с репозиториями (когда стандартных мало)

Sometimes, вам может понадобиться установить пакет, которого нет в стандартных репозиториях. В этом случае нужно добавить новый репозиторий. Для этого нужно добавить его адрес в файл `/etc/apt/sources.list` или создать отдельный файл в директории `/etc/apt/sources.list.d/`. Например, чтобы добавить репозиторий Node.js, можно создать файл `/etc/apt/sources.list.d/nodesource.list` со следующим содержимым:
deb https://deb.nodesource.com/node_16.x focal main
deb-src https://deb.nodesource.com/node_16.x focal main
Где `focal` – это кодовое имя вашей версии Ubuntu. Узнать его можно командой `lsb_release -c`. После добавления репозитория нужно обновить список пакетов и установить ключ подписи репозитория:
sudo apt update
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
Теперь можно установить Node.js:
sudo apt install nodejs
*Pro tip*: Всегда проверяйте подлинность репозиториев и ключей подписи. Не доверяйте неизвестным источникам.
КомандаОписание
sudo apt updateОбновляет список пакетов
sudo apt upgradeОбновляет установленные пакеты
sudo apt install <пакет>Устанавливает пакет
sudo apt remove <пакет>Удаляет пакет
sudo apt purge <пакет>Удаляет пакет и его конфигурационные файлы

Software is a great combination between artistry and engineering.

Bill Gates

Настройка и управление основными сервисами

Alright, so, теперь поговорим о настройке сервисов. Здесь все становится немного сложнее, но не бойтесь, я помогу вам разобраться. The deal is, каждый сервис имеет свой конфигурационный файл, в котором хранятся его настройки. Эти файлы обычно находятся в директории `/etc`. Давайте рассмотрим настройку нескольких популярных сервисов.

Настройка Nginx (веб-сервер)

Nginx – это очень популярный веб-сервер. Его конфигурационный файл находится в `/etc/nginx/nginx.conf`. В этом файле можно настроить основные параметры сервера, такие как количество рабочих процессов, лимиты соединений и т.д. Но основные настройки для сайтов находятся в директории `/etc/nginx/sites-available/`. Чтобы создать новый сайт, нужно создать файл конфигурации в этой директории, например, `/etc/nginx/sites-available/mysite.com`:
server {
    listen 80;
    server_name mysite.com www.mysite.com;

    root /var/www/mysite.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
This setup is fire! Этот файл говорит Nginx слушать порт 80 (HTTP) и обслуживать сайт `mysite.com` из директории `/var/www/mysite.com`. Чтобы активировать сайт, нужно создать символическую ссылку на этот файл в директории `/etc/nginx/sites-enabled/`:
sudo ln -s /etc/nginx/sites-available/mysite.com /etc/nginx/sites-enabled/
После этого нужно перезапустить Nginx:
sudo systemctl restart nginx
Теперь ваш сайт должен быть доступен по адресу `mysite.com`. Чтобы проверить, что Nginx работает, можно выполнить команду:
sudo systemctl status nginx
Если все ок, вы увидите сообщение `active (running)`.

Настройка UFW (брандмауэр)

UFW (Uncomplicated Firewall) – это простой и удобный брандмауэр. Он позволяет настроить правила для входящего и исходящего трафика. Чтобы включить UFW, выполните команду:
sudo ufw enable
Before enabling, нужно разрешить входящие соединения по SSH:
sudo ufw allow ssh
Также можно разрешить входящие соединения по HTTP (порт 80) и HTTPS (порт 443):
sudo ufw allow 80
sudo ufw allow 443
Чтобы посмотреть текущие правила, выполните команду:
sudo ufw status
*Word of warning*: Не забудьте разрешить входящие соединения по SSH, иначе вы потеряете доступ к серверу! Been there, done that...
СервисКонфигурационный файлКоманда перезапуска
Nginx/etc/nginx/nginx.conf, /etc/nginx/sites-available/*sudo systemctl restart nginx
UFW/etc/ufw/ufw.confsudo ufw enable, sudo ufw disable

Simplicity is prerequisite for reliability.

Edsger W. Dijkstra

Мониторинг ресурсов VPS

Real talk, мониторинг ресурсов – это must have для любого администратора VPS. Без мониторинга вы не будете знать, что происходит с вашим сервером, пока он не упадет. Honestly, я не понимаю, как люди работают без мониторинга. Это как ехать на машине с завязанными глазами.

Использование командной строки для мониторинга

В командной строке есть несколько полезных команд для мониторинга ресурсов. Самая простая – это команда `top`:
top
Эта команда показывает список процессов, отсортированных по использованию CPU. Вы увидите информацию о CPU, памяти, swap и т.д. Чтобы выйти из `top`, нажмите `q`. Другая полезная команда – это `htop`:
htop
`htop` – это улучшенная версия `top` с более удобным интерфейсом и возможностью сортировки по разным параметрам. Если у вас нет `htop`, установите его:
sudo apt install htop
Для мониторинга использования диска можно использовать команду `df -h`:
df -h
Эта команда показывает информацию о занятом и свободном пространстве на каждом диске. Для мониторинга использования памяти можно использовать команду `free -m`:
free -m
Эта команда показывает информацию о занятой и свободной памяти в мегабайтах. Чтобы посмотреть использование сети, можно использовать команду `iftop`:
iftop
Эта команда показывает список соединений и их скорость. Если у вас нет `iftop`, установите его:
sudo apt install iftop
*Pro tip*: Настройте автоматический мониторинг с помощью таких инструментов, как Grafana и Prometheus. Это позволит вам отслеживать ресурсы в реальном времени и получать уведомления о проблемах.

Пример скрипта для мониторинга нагрузки

Вот простой скрипт, который показывает текущую загрузку CPU, памяти и диска:
#!/bin/bash

CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*id: \([0-9.]*\).*/\1/" | awk '{print 100 - $1}')
MEM_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
DISK_USAGE=$(df -h / | awk '$NF=="/"{printf "%s", $5}')

echo "CPU Usage: $CPU_USAGE%"
echo "Memory Usage: $MEM_USAGE"
echo "Disk Usage: $DISK_USAGE"
Сохраните этот скрипт в файл, например, `monitor.sh`, сделайте его исполняемым:
chmod +x monitor.sh
И запустите его:
./monitor.sh
Этот скрипт покажет текущую загрузку CPU, памяти и диска.
КомандаОписание
topПоказывает список процессов, отсортированных по использованию CPU
htopУлучшенная версия top
df -hПоказывает информацию о занятом и свободном пространстве на диске
free -mПоказывает информацию о занятой и свободной памяти
iftopПоказывает использование сети

Without data, you're just another person with an opinion.

W. Edwards Deming

Управление файлами и правами доступа

Okay, so, теперь поговорим об управлении файлами и правами доступа. Honestly, это одна из самых основных вещей, которые нужно знать, чтобы управлять сервером. The deal is, все в Linux – это файл. Даже директории. Поэтому умение работать с файлами – это must have.

Основные команды для работы с файлами

Самая основная команда – это `ls` (list). Она показывает список файлов и директорий в текущей директории:
ls
Чтобы показать все файлы, включая скрытые (начинающиеся с точки), используйте опцию `-a`:
ls -a
Чтобы показать подробную информацию о файлах, включая права доступа, используйте опцию `-l`:
ls -l
Команда `cd` (change directory) позволяет перейти в другую директорию:
cd /var/www/html
Чтобы вернуться в предыдущую директорию, используйте `cd ..`:
cd ..
Чтобы вернуться в домашнюю директорию, используйте `cd` без аргументов или `cd ~`:
cd
cd ~
Команда `mkdir` (make directory) создает новую директорию:
mkdir mydirectory
Команда `rm` (remove) удаляет файл:
rm myfile.txt
Чтобы удалить директорию, используйте команду `rmdir` (remove directory):
rmdir mydirectory
Но `rmdir` удаляет только пустые директории. Чтобы удалить директорию со всем ее содержимым, используйте команду `rm -r`:
rm -r mydirectory
*Word of warning*: Будьте осторожны с командой `rm -r`. Она может удалить все, что угодно, без предупреждения. Been there, done that... Команда `cp` (copy) копирует файл:
cp myfile.txt mycopy.txt
Чтобы скопировать директорию, используйте опцию `-r`:
cp -r mydirectory mycopydirectory
Команда `mv` (move) перемещает файл или директорию:
mv myfile.txt /tmp
`mv` также можно использовать для переименования файлов:
mv myfile.txt newfile.txt

Права доступа (777 - зло!)

В Linux у каждого файла есть права доступа для владельца, группы и остальных пользователей. Права доступа обозначаются тремя цифрами, каждая из которых представляет собой сумму прав:
  • 4 – право на чтение (read)
  • 2 – право на запись (write)
  • 1 – право на выполнение (execute)
Например, права `755` означают:
  • 7 – владелец имеет права на чтение, запись и выполнение (4+2+1)
  • 5 – группа имеет права на чтение и выполнение (4+1)
  • 5 – остальные пользователи имеют права на чтение и выполнение (4+1)
Чтобы изменить права доступа, используйте команду `chmod` (change mode):
chmod 755 myfile.txt
*Pro tip*: Никогда не давайте права `777` файлам или директориям. Это небезопасно. Используйте минимально необходимые права.
КомандаОписание
lsПоказывает список файлов и директорий
cdПереходит в другую директорию
mkdirСоздает новую директорию
rmУдаляет файл
cpКопирует файл
mvПеремещает файл или переименовывает его
chmodИзменяет права доступа

Give a man a program, frustrate him for a day. Teach a man to program, frustrate him for a lifetime.

Muhammad Waseem

Решение типичных проблем и отладка

Alright, let's talk about troubleshooting. Honestly, это одна из самых сложных и важных частей управления VPS. The deal is, всегда что-то ломается. И ваша задача – найти и исправить проблему.

Основные инструменты для отладки

Первый и самый важный инструмент – это логи. Большинство сервисов записывают свои логи в файлы. Обычно они находятся в директории `/var/log`. Например, логи Nginx находятся в `/var/log/nginx/`. Чтобы посмотреть последние строки лога, используйте команду `tail -f`:
tail -f /var/log/nginx/error.log
Эта команда покажет последние строки файла `error.log` и будет обновлять их в реальном времени. Чтобы посмотреть все логи за определенный период времени, используйте команду `grep`:
grep "error" /var/log/nginx/error.log
Эта команда покажет все строки, содержащие слово "error". Для просмотра логов systemd сервисов можно использовать команду `journalctl`:
journalctl -u nginx
Эта команда покажет логи сервиса `nginx`. Чтобы посмотреть логи за последние 10 минут, используйте опцию `--since`:
journalctl -u nginx --since "10 minutes ago"
Чтобы посмотреть логи в реальном времени, используйте опцию `-f`:
journalctl -u nginx -f
Если сервис не запускается, проверьте его статус с помощью команды `systemctl status`:
systemctl status nginx

Поделиться записью: