03. Базовая система: локализация, время, имя, память
Перед тем как устанавливать веб-сервер и VPN, нужно привести саму систему в порядок. Это скучная, но необходимая часть: правильно настроенные локаль, часовой пояс и swap-файл уберегут вас от множества проблем в будущем.
Локализация (locale)
По умолчанию Ubuntu поставляется с локалью C.UTF-8. Для русскоязычного пользователя удобнее установить ru_RU.UTF-8 — это повлияет на формат вывода дат, чисел и сортировку.
Проверим текущую локаль:
locale
Вывод скорее всего будет:
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
...
Генерируем русскую локаль:
sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8
Применяем без перезагрузки:
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
source /etc/default/locale 2>/dev/null
Проверяем:
locale
date
Дата теперь должна выводиться по-русски: «июль» вместо «Jul».
Часовой пояс
Сервер может быть в любом дата-центре мира, но время лучше установить по тому региону, где живёте вы или ваша аудитория. Для Москвы:
sudo timedatectl set-timezone Europe/Moscow
Проверяем:
timedatectl
Обратите внимание на строки:
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
Если NTP service не активен, включите:
sudo timedatectl set-ntp true
Правильное время критично для:
- Логов (вы будете искать события в своём часовом поясе)
- SSL-сертификатов (разница во времени > 5 минут — ошибки валидации)
- Cron-задач (бэкапы должны запускаться в нужный час)
Имя хоста (hostname)
Сервер с именем по умолчанию вроде vps12345 — это несерьёзно. Дадим ему осмысленное имя:
sudo hostnamectl set-hostname vds1
Теперь пропишем его в /etc/hosts, чтобы не было проблем с sudo:
sudo sed -i "s/127.0.1.1.*/127.0.1.1 vds1/" /etc/hosts
Проверяем:
hostname
hostname -f
Оба должны вернуть vds1.
Swap-файл
На сервере 2 GB RAM. Этого достаточно для обычной работы, но при пиковых нагрузках (компиляция, архивация) память может закончиться. Swap-файл — это «аварийный» резерв на диске.
Создадим файл подкачки на 4 GB:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Проверяем:
sudo swapon --show
Добавляем в /etc/fstab для автоматического монтирования при загрузке:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Настройка swappiness
Параметр vm.swappiness определяет, насколько активно система будет использовать swap при наличии свободной RAM. Значение по умолчанию — 60, что слишком агрессивно для сервера. Установим 10 — swap будет использоваться только при загрузке памяти > 90%:
sudo sysctl vm.swappiness=10
Сделаем настройку постоянной:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
| Параметр | Значение | Эффект |
|---|---|---|
vm.swappiness=10 |
Низкая склонность к swap | Система держит данные в RAM |
vm.vfs_cache_pressure=50 |
Медленная очистка кэша | Меньше дисковых операций (опционально) |
Обновление пакетов
Перед установкой любого софта обновим систему до последних версий:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Желательно перезагрузиться, чтобы применить обновления ядра, если они были:
sudo reboot
Итог
Система готова к дальнейшей настройке:
- Локаль
ru_RU.UTF-8— русский язык вывода - Часовой пояс
Europe/Moscow— правильное время - Hostname
vds1— осмысленное имя - Swap 4 GB + swappiness=10 — запас памяти
- Система обновлена до актуального состояния
В следующей части установим и настроим UFW — фаервол, который защитит сервер от внешних атак.
Комментарии
Комментарии пока не подключены.