bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Як керувати VPS через командний рядок: Простіше простого!

calendar_month October 01, 2025 schedule 11 хв. читання visibility 585 переглядів
person
Valebyte Team
Як керувати VPS через командний рядок: Простіше простого!
summarize

TL;DR

  • Используйте SSH для безопасного подключения к VPS через терминал или PuTTY.
  • Применяйте SSH-ключи вместо паролей для значительного повышения безопасности доступа к серверу.
  • Для подключения к нестандартному порту используйте команду ssh с флагом -p и номером порта.
  • Указывайте путь к приватному SSH-ключу с помощью флага -i для быстрой авторизации.
  • Управляйте пакетами, сервисами и ресурсами через консоль для максимально эффективной настройки VPS.

Як керувати VPS через командний рядок?

Привіт, колеги! Думаю, кожен із нас, хто хоч раз стикався з адмініструванням VPS-хостинг, знає, що командний рядок – це наш найкращий друг, а іноді і найлютіший ворог. Але не бійтеся! У цій статті ми розберемо основні моменти управління 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.

Отже, перше, що нам потрібно зробити – це підключитися до нашої VPS. Найпоширеніший спосіб – це SSH (Secure Shell). Це зашифроване з'єднання, яке дозволяє безпечно керувати сервером. Чесно кажучи, без SSH нікуди. Я пам'ятаю, як на самому початку намагався працювати із сервером без шифрування… Не робіть так. Це небезпечно. Щоб підключитися, нам знадобиться термінал (у Linux або macOS) або PuTTY (у Windows). Ну і, звичайно, IP-адреса VPS, логін та пароль (або SSH-ключ). Скажу чесно, краще використовувати SSH-ключі, ніж паролі. Це набагато безпечніше. Ось команда для підключення через термінал:
ssh [email protected]
Де `user` – це ваше ім'я користувача, а `192.168.1.100` – IP-адреса VPS. Замініть їх на свої дані, очевидно. Якщо використовуєте нестандартний порт, то додайте `-p` з номером порту:
ssh -p 2222 [email protected]
Якщо ви використовуєте SSH-ключ, то потрібно вказати шлях до нього за допомогою опції `-i`:
ssh -i ~/.ssh/id_rsa [email protected]
Після підключення ви побачите привітання сервера і зможете вводити команди.

Налаштування SSH-ключів (для параноїків)

Скажу прямо, налаштування 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 [email protected]
Ця команда попросить вас ввести пароль від сервера, а потім скопіює публічний ключ у файл `~/.ssh/authorized_keys`. Якщо команди `ssh-copy-id` немає, можна зробити це вручну:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Після цього можна зайти на сервер без пароля. Готово! Ось і все! Тепер, щоб остаточно убезпечити себе, можна вимкнути вхід за паролем у файлі `/etc/ssh/sshd_config`. Відкрийте його в текстовому редакторі (наприклад, `nano` або `vim`):
sudo nano /etc/ssh/sshd_config
Знайдіть рядок `PasswordAuthentication yes` і змініть його на `PasswordAuthentication no`. Також можна змінити порт SSH на нестандартний (наприклад, 2222), щоб менше привертати увагу ботів. Після цього перезапустіть SSH-сервіс:
sudo systemctl restart sshd
*Важливе попередження*: Якщо ви накосячите з налаштуванням SSH, то можете втратити доступ до сервера. Тому завжди робіть бекапи і перевіряйте конфігурацію перед перезапуском сервісу. Я сам через це проходив...
Метод аутентифікаціїБезпекаЗручність
ПарольНизькаВисока
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.

Отже, давайте поговоримо про управління пакетами. Чесно кажучи, це одна з найважливіших речей, які потрібно вміти робити на сервері. Package managers дозволяють легко встановлювати, оновлювати та видаляти програми. Усі дистрибутиви Linux використовують свої package managers. На Debian та Ubuntu – це `apt`, на CentOS та Red Hat – `yum` або `dnf`. Справа в тому, що я показуватиму приклади для `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

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

Іноді вам може знадобитися встановити пакет, якого немає у стандартних репозиторіях. У цьому випадку потрібно додати новий репозиторій. Для цього потрібно додати його адресу до файлу `/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
*Порада профі*: Завжди перевіряйте справжність репозиторіїв і ключів підпису. Не довіряйте невідомим джерелам.
КомандаОпис
sudo apt updateОновлює список пакетів
sudo apt upgradeОновлює встановлені пакети
sudo apt install <пакет>Встановлює пакет
sudo apt remove <пакет>Видаляє пакет
sudo apt purge <пакет>Видаляє пакет і його конфігураційні файли

Software is a great combination between artistry and engineering.

Готові застосовувати ці команди? Оберіть свій VPS-хостинг!

Почніть керувати своїм сервером з повним контролем. Наші VPS-плани пропонують гнучкість та продуктивність. — from €4.49/mo.

Обрати VPS-хостинг →
Bill Gates
rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Налаштування та управління основними сервісами

Отже, тепер поговоримо про налаштування сервісів. Тут все стає трохи складніше, але не бійтеся, я допоможу вам розібратися. Справа в тому, що кожен сервіс має свій конфігураційний файл, в якому зберігаються його налаштування. Ці файли зазвичай знаходяться в директорії `/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;
    }
}
Ця настройка просто вогонь! Цей файл говорить 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
Перед включенням потрібно дозволити вхідні з'єднання по SSH:
sudo ufw allow ssh
Також можна дозволити вхідні з'єднання по HTTP (порт 80) і HTTPS (порт 443):
sudo ufw allow 80
sudo ufw allow 443
Щоб подивитися поточні правила, виконайте команду:
sudo ufw status
*Важливе попередження*: Не забудьте дозволити вхідні з'єднання по SSH, інакше ви втратите доступ до сервера! Я сам через це проходив...
СервісКонфігураційний файлКоманда перезапуску
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

Серйозно, моніторинг ресурсів – це необхідність для будь-якого адміністратора VPS. Без моніторингу ви не будете знати, що відбувається з вашим сервером, поки він не впаде. Чесно кажучи, я не розумію, як люди працюють без моніторингу. Це як їхати на машині з зав'язаними очима.

Використання командного рядка для моніторингу

В командному рядку є декілька корисних команд для моніторингу ресурсів. Найпростіша – це команда `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
*Порада профі*: Налаштуйте автоматичний моніторинг за допомогою таких інструментів, як 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

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

Отже, тепер поговоримо про управління файлами та правами доступу. Чесно кажучи, це одна з найосновніших речей, які потрібно знати, щоб управляти сервером. Річ у тім, що все в Linux – це файл. Навіть директорії. Тому вміння працювати з файлами – це вкрай важливо.

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

Найбільш основна команда – це `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
*Важливе попередження*: Будьте обережні з командою `rm -r`. Вона може видалити все, що завгодно, без попередження. Я сам через це проходив... Команда `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
*Порада профі*: Ніколи не давайте права `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
rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Вирішення типових проблем і налагодження

Отже, давайте поговоримо про усунення неполадок. Чесно кажучи, це одна з найскладніших і важливих частин управління VPS. Річ у тім, що завжди щось ламається. І ваше завдання – знайти і виправити проблему.

Основні інструменти для налагодження

Перший і найважливіший інструмент – це логи. Більшість сервісів записують свої логи в файли. Зазвичай вони знаходяться в директорії `/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

Потрібна ще більша потужність? Переходьте на виділений сервер!

Для максимальної продуктивності та повного контролю розгляньте наші SSD виділені сервери. Ідеально для вимогливих проєктів.

Знайти виділений сервер →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.