Введение: С чего начать настройку Ubuntu 22.04 LTS?
Представь, что ты только что установил свежую Ubuntu 22.04 LTS. Чистая система — это как пустой холст для художника. Но чтобы превратить её в мощную рабочую станцию или надёжный сервер, нужно провести грамотную настройку. В этой статье я, как опытный DevOps, проведу тебя по всем ключевым этапам: от базового обновления и настройки сети до тонкой оптимизации для разработки.
sudo или переходить в режим root с помощью sudo -i.
1. Базовая настройка и обновление системы
Первым делом нужно обновить систему до актуального состояния. Это закроет уязвимости и обеспечит совместимость пакетов.
Обновление репозиториев и пакетов
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
sudo apt autoclean
Настройка hostname и hosts
Измени имя хоста для удобства идентификации в сети:
# Временное изменение
sudo hostnamectl set-hostname my-ubuntu-server
# Постоянное изменение (редактируем файл)
sudo nano /etc/hostname
# Добавляем запись в /etc/hosts
sudo nano /etc/hosts
# Добавляем строку: 127.0.1.1 my-ubuntu-server
2. Настройка сети в Ubuntu 22.04 LTS
Настройка сети — критически важный этап. Ubuntu 22.04 использует Netplan для конфигурации сети, что отличается от старых версий.
Статический IP адрес через Netplan
Давай настроим статический IP адрес. Сначала найдём конфигурационный файл Netplan:
ls /etc/netplan/
# Обычно файл называется 00-installer-config.yaml или 01-netcfg.yaml
Редактируем конфигурационный файл (замени значения на свои):
network:
version: 2
ethernets:
enp3s0: # Имя интерфейса (узнай через 'ip a')
addresses:
- 192.168.1.100/24 # Статический IP и маска
routes:
- to: default
via: 192.168.1.1 # Шлюз
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS серверы
dhcp4: no # Отключаем DHCP
Применяем конфигурацию:
sudo netplan apply
sudo netplan --debug apply # Если есть проблемы
Проверка сетевых настроек
# Показать IP адреса
ip a
# Проверить маршрутизацию
ip route
# Проверить DNS
systemd-resolve --status
# Проверить подключение
ping -c 4 google.com
3. Настройка SSH для безопасного удалённого доступа
SSH — основной инструмент удалённого управления. Настроим его правильно и безопасно.
Базовая настройка SSH сервера
# Устанавливаем SSH сервер (если не установлен)
sudo apt install openssh-server -y
# Редактируем конфигурацию
sudo nano /etc/ssh/sshd_config
Рекомендуемые изменения в /etc/ssh/sshd_config:
Port 2222 # Меняем стандартный порт (необязательно, но безопаснее)
PermitRootLogin no # Запрещаем вход под root
PasswordAuthentication no # Отключаем аутентификацию по парню
PubkeyAuthentication yes # Включаем аутентификацию по ключу
AllowUsers your_username # Разрешаем только конкретных пользователей
ClientAliveInterval 300
ClientAliveCountMax 2
Настройка SSH ключей
# На клиенте генерируем ключ
ssh-keygen -t ed25519 -C "your_email@example.com"
# Копируем публичный ключ на сервер
ssh-copy-id -p 2222 username@server_ip
# Альтернативный способ
cat ~/.ssh/id_ed25519.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Перезапускаем SSH и проверяем:
sudo systemctl restart sshd
sudo systemctl status sshd
# Проверяем подключение с клиента
ssh -p 2222 username@server_ip
4. Настройка брандмауэра UFW
UFW (Uncomplicated Firewall) — простой фронтенд для iptables. Настроим базовые правила безопасности.
# Устанавливаем UFW (обычно уже установлен)
sudo apt install ufw -y
# Сбрасываем все правила (если были)
sudo ufw --force reset
# Запрещаем все входящие соединения по умолчанию
sudo ufw default deny incoming
# Разрешаем все исходящие
sudo ufw default allow outgoing
# Разрешаем SSH (на нашем кастомном порту)
sudo ufw allow 2222/tcp comment 'SSH access'
# Разрешаем HTTP/HTTPS если это веб-сервер
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
# Включаем логирование
sudo ufw logging on
# Включаем брандмауэр
sudo ufw --force enable
# Проверяем статус
sudo ufw status verbose
sudo ufw status numbered # С номерами правил
Дополнительные правила UFW
# Разрешить диапазон портов
sudo ufw allow 8000:8010/tcp comment 'Custom app ports'
# Разрешить по IP адресу
sudo ufw allow from 192.168.1.0/24 to any port 22 comment 'Local SSH'
# Удалить правило по номеру
sudo ufw delete 3
# Отключить UFW (временное)
sudo ufw disable
5. Настройка автоматических обновлений
Автоматические обновления безопасности — must have для любой системы.
# Устанавливаем unattended-upgrades
sudo apt install unattended-upgrades apt-listchanges -y
# Настраиваем автоматические обновления
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Редактируем конфигурацию
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Рекомендуемые настройки в 50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
};
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
Unattended-Upgrade::MinimalSteps "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false"; # Или true для серверов
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
6. Оптимизация производительности системы
Настроим систему для максимальной производительности.
Настройка swappiness
Swappiness определяет, как часто система будет использовать swap. Для серверов с большим объёмом RAM можно уменьшить:
# Проверяем текущее значение
cat /proc/sys/vm/swappiness
# Временное изменение
sudo sysctl vm.swappiness=10
# Постоянное изменение
sudo nano /etc/sysctl.conf
# Добавляем строку: vm.swappiness=10
Настройка файловой системы и лимитов
# Увеличиваем лимиты файловых дескрипторов
sudo nano /etc/security/limits.conf
# Добавляем:
# * soft nofile 65536
# * hard nofile 65536
# Оптимизация для SSD (если используется)
sudo nano /etc/fstab
# Для разделов SSD добавляем: noatime,nodiratime,discard
Мониторинг и анализ производительности
# Установка утилит мониторинга
sudo apt install htop iotop iftop nmon -y
# Запуск мониторинга
htop # Процессы и ресурсы
iotop # Дисковые операции
iftop # Сетевой трафик
nmon # Комплексный мониторинг
7. Дополнительные настройки для разработки
Если ты используешь Ubuntu как рабочую станцию для разработки, вот полезные настройки.
Настройка локали и времени
# Проверяем текущую локаль
echo $LANG
# Генерируем нужные локали
sudo locale-gen ru_RU.UTF-8
sudo locale-gen en_US.UTF-8
# Устанавливаем локаль системы
sudo update-locale LANG=en_US.UTF-8
# Настройка часового пояса
sudo timedatectl set-timezone Europe/Moscow
sudo timedatectl status
Установка базовых инструментов разработки
# Установка базового стека разработчика
sudo apt install -y \
build-essential \
git \
curl \
wget \
vim \
tmux \
zip \
unzip \
net-tools \
software-properties-common \
apt-transport-https \
ca-certificates \
gnupg-agent
Сравнение сетевых настроек: DHCP vs Static IP
| Параметр | DHCP (по умолчанию) | Статический IP | Рекомендация |
|---|---|---|---|
| IP Адрес | Автоматически от DHCP сервера | Фиксированный, задаётся вручную | Для серверов — статический, для десктопов — DHCP |
| Надёжность | Зависит от DHCP сервера | Не зависит от других сервисов | Статический для критичных сервисов |
| Управление | Простое, не требует конфигурации | Требует ручной настройки | DHCP для простоты, Static для контроля |
| Использование | Клиентские устройства, ноутбуки | Серверы, принтеры, сетевое оборудование | Выбор зависит от роли устройства |
Часто задаваемые вопросы (FAQ)
Как настроить сеть в Ubuntu 22.04 если я потерял доступ после изменения настроек?
Если ты потерял доступ из-за неправильной настройки сети:
- Подключись к серверу через консоль (KVM, iDRAC, физический доступ)
- Используй команду
sudo netplan --debug generateдля проверки конфигурации - Верни старую конфигурацию из backup:
sudo cp /etc/netplan/00-installer-config.yaml.backup /etc/netplan/00-installer-config.yaml - Примени изменения:
sudo netplan apply
Чем отличается настройка сети в Ubuntu 22.04 от более новых версий?
Ubuntu 22.04 LTS использует Netplan в качестве стандартного инструмента для настройки сети, что продолжается и в Ubuntu 24.04 LTS. Основные отличия от старых версий (до 18.04):
- Вместо файлов
/etc/network/interfacesиспользуется YAML конфигурация в/etc/netplan/ - Более современный и гибкий синтаксис
- Лучшая интеграция с systemd
- Поддержка облачных конфигураций (cloud-init)
Как настроить несколько сетевых интерфейсов в Ubuntu 22.04?
Для настройки нескольких интерфейсов добавь их в конфигурационный файл Netplan:
network:
version: 2
ethernets:
enp3s0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
enp4s0:
addresses: [10.0.0.100/24]
routes:
- to: 172.16.0.0/16
via: 10.0.0.1
Как проверить, что все настройки применены правильно?
Используй следующие команды для проверки:
ip a— IP адреса интерфейсовip route— таблица маршрутизацииsystemctl status sshd— статус SSH сервераsudo ufw status— статус брандмауэраtimedatectl status— время и часовой поясhostnamectl— информация о системе
Заключение
Ты прошёл полный путь настройки Ubuntu 22.04 LTS — от базового обновления до тонкой оптимизации сети и безопасности. Помни, что каждая система уникальна, и эти настройки нужно адаптировать под твои конкретные задачи. Регулярно обновляй систему, мониторь логи и создавай backup важных конфигураций.
Теперь у тебя есть мощная, безопасная и оптимизированная система Ubuntu 22.04 LTS, готовая к работе в качестве сервера или рабочей станции для разработки. Удачи в проектах!