Сети — фундаментальный аспект администрирования серверов, особенно при работе с Ubuntu Server. Независимо от того, настраиваете ли вы сервер в облачной среде или управляете локальной инфраструктурой, крайне важно понимать, как настраивать сетевые интерфейсы, назначать статические IP-адреса, управлять сетевыми службами и устранять проблемы с подключением. В этом руководстве мы рассмотрим основы сетей в Ubuntu Server, включая использование Netplan (инструмента настройки сети по умолчанию в Ubuntu 22.04), обработку конфигураций, созданных cloud-init, управление сетевыми службами и устранение распространённых проблем.
Предыдущая статья:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud
04. Управление пользователями и правами в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
1. Введение в сети в Ubuntu Server
Ubuntu Server использует Netplan в качестве инструмента настройки сети по умолчанию начиная с Ubuntu 17.10. Netplan упрощает процесс определения сетевых конфигураций с помощью YAML-файлов. В Ubuntu Server 22.04 systemd-networkd — это служба серверной части по умолчанию для управления сетью, в то время как NetworkManager обычно используется в настольных средах или определённых серверных конфигурациях, требующих расширенного управления сетью.
Сетевые серверные части по умолчанию
- Ubuntu Server 22.04: использует systemd-networkd в качестве сетевой службы по умолчанию.
- Ubuntu Desktop 22.04: использует NetworkManager в качестве сетевой службы по умолчанию.
Если вы используете Ubuntu Desktop или установили NetworkManager вручную в Ubuntu Server, вы можете управлять сетевыми интерфейсами с его помощью. Однако NetworkManager по умолчанию не установлен в редакциях Ubuntu Server.
2. Настройка сетевых интерфейсов с помощью Netplan (обновления Cloud-Init)
В облачных средах файл конфигурации Netplan часто называется /etc/netplan/50-cloud-init.yaml. Этот файл создаётся cloud-init, и изменения в нём не сохранятся после перезагрузок экземпляра, если не отключить возможности сетевой конфигурации cloud-init.
Отключение сетевой конфигурации Cloud-Init
Чтобы отключить возможности сетевой конфигурации cloud-init, создайте файл по адресу /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Добавьте следующее содержимое:
network: {config: disabled}
После отключения сетевой конфигурации cloud-init можно вручную создавать постоянные файлы конфигурации Netplan и управлять ими.
Пример: настройка статического IP-адреса с помощью Netplan
Если ваш файл конфигурации Netplan — это /etc/netplan/50-cloud-init.yaml, вы можете изменить его напрямую или создать новый файл конфигурации (например, /etc/netplan/01-netcfg.yaml) для постоянных настроек.
- Откройте файл конфигурации Netplan:
sudo nano /etc/netplan/50-cloud-init.yaml
- Измените содержимое, чтобы задать статический IP-адрес:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
eth0: замените это именем вашего сетевого интерфейса (используйтеip aдля вывода списка интерфейсов).addresses: назначает статический IP-адрес.routes:to: default: задаёт маршрут по умолчанию.via: 192.168.1.1: определяет адрес шлюза.
nameservers: задаёт DNS-серверы.
- Примените конфигурацию:
sudo netplan apply
- Проверьте конфигурацию:
ip a
3. Настройка статического IP-адреса
Хотя Netplan является рекомендуемым инструментом, статический IP-адрес можно также настроить вручную в /etc/network/interfaces (используемом в старых версиях Ubuntu) или с помощью инструментов командной строки.
Команда ip
Команда ip — универсальный инструмент для управления сетевыми интерфейсами. Ниже приведён пример временного назначения статического IP-адреса:
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
ip addr add: Назначает IP-адрес сетевому интерфейсу.ip route add: задаёт шлюз по умолчанию.
Примечание: эти изменения временны и будут потеряны после перезагрузки. Для постоянных конфигураций используйте Netplan.
4. Управление сетевыми службами
Ubuntu использует systemd-networkd в качестве сетевой службы по умолчанию для серверных сред. Эффективное управление этой службой критически важно для обеспечения стабильного сетевого подключения.
Проверка состояния сетевых служб
Чтобы проверить состояние сетевой службы, выполните следующую команду:
sudo systemctl status systemd-networkd
Будет отображено текущее состояние и любые ошибки, связанные со службой systemd-networkd.
Перезапуск сетевой службы
Если после изменения конфигурации требуется перезапустить сетевую службу:
sudo systemctl restart systemd-networkd
Включение или отключение сетевой службы
Чтобы включить автоматический запуск сетевой службы при загрузке:
sudo systemctl enable systemd-networkd
Чтобы отключить сетевую службу:
sudo systemctl disable systemd-networkd
Использование NetworkManager (необязательно)
Если вы используете NetworkManager вместо systemd-networkd, вы можете управлять службой следующим образом:
- Проверка состояния:
sudo systemctl status NetworkManager
- Перезапуск службы:
sudo systemctl restart NetworkManager
- Включение или отключение NetworkManager:
sudo systemctl enable NetworkManager
sudo systemctl disable NetworkManager
5. Известные проблемы и предупреждения в Netplan
При настройке статического IP-адреса на сервере Ubuntu 22.04 с помощью Netplan могут появиться следующие предупреждения:
Предупреждение: Cannot call Open vSwitch: ovsdb-server.service is not running
Это предупреждение возникает, поскольку Netplan пытается обнаружить Open vSwitch — виртуальный сетевой коммутатор, часто используемый в облачных и виртуализированных средах. Если Open vSwitch не установлен, Netplan выдаёт предупреждение.
Устранение предупреждения
Если вы не используете Open vSwitch, это предупреждение можно безопасно игнорировать. Однако, чтобы устранить его, можно установить пакет openvswitch-switch-dpdk, который предоставляет необходимые компоненты для Open vSwitch.
Выполните следующую команду:
sudo apt install openvswitch-switch-dpdk
После установки Netplan обнаружит наличие Open vSwitch и перестанет выдавать предупреждение.
Ссылка на известную ошибку
Эта проблема была официально сообщена как ошибка в Netplan.
https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/2041727
6. Инструменты командной строки для управления сетью
Ubuntu предоставляет множество инструментов для управления сетевыми конфигурациями и устранения неполадок. Вот некоторые из наиболее часто используемых:
6.1 Команда ip
Команда ip заменяет старый инструмент ifconfig и является более мощным и гибким.
- Просмотр сетевых интерфейсов:
ip a - Проверка маршрутов:
ip route - Включение/отключение интерфейса:
sudo ip link set eth0 up
sudo ip link set eth0 down
6.2 Команда ping
Команда ping используется для проверки подключения к другому узлу.
ping google.com
6.3 Команда traceroute
Команда traceroute определяет сетевой путь к месту назначения.
sudo apt install traceroute
traceroute google.com
6.4 Команда Curl
Команда curl проверяет HTTP-подключение.
curl http://example.com
7. Устранение распространённых сетевых проблем
Сетевые проблемы часто встречаются в серверных средах. Вот некоторые сценарии и шаги по устранению неполадок:
Сценарий 1: сетевой интерфейс не работает
- Проверьте состояние интерфейса:
ip a
- Включите интерфейс:
sudo ip link set eth0 up
Сценарий 2: не удаётся пропинговать внешние узлы
- Проверьте шлюз по умолчанию:
ip route - Проверьте разрешение DNS:
nslookup google.comЕсли DNS не разрешается, обновите серверы имён в конфигурации Netplan.
Сценарий 3: проблемы с конфигурацией Netplan
- Проверьте YAML-файл Netplan:
sudo netplan tryЭто проверяет конфигурацию без её постоянного применения. - Повторно примените конфигурацию:
sudo netplan apply
Сценарий 4: проверка сетевой службы
Если проблемы с сетевым подключением сохраняются, проверьте состояние сетевой службы:
sudo systemctl status systemd-networkd
Если сообщаются ошибки, перезапустите службу:
sudo systemctl restart systemd-networkd
Сценарий 5: брандмауэр блокирует трафик
- Проверьте правила брандмауэра:
sudo ufw status
- Разрешите необходимый трафик:
sudo ufw allow 22/tcp sudo ufw allow 80/tcp
Сценарий 6: потери пакетов или проблемы с задержкой
- Используйте
pingдля проверки потери пакетов:
ping -c 10 google.com
- Используйте
tracerouteдля выявления узких мест в сети:
traceroute google.com
8. Заключение
Сети — важнейший навык для администраторов Ubuntu Server. В этом руководстве рассмотрены основы настройки сетевых интерфейсов, управления сетевыми службами, обработки предупреждений Netplan, настройки статических IP-адресов, использования инструментов командной строки и устранения распространённых проблем. Овладев такими инструментами, как Netplan, ip и ping вы сможете эффективно управлять сетевыми задачами на своём сервере и решать их.
Для дальнейшего чтения обратитесь к официальной документации Ubuntu по Netplan и Основы сетей.
Следующие шаги: исправления, управление пакетами и безопасность
В следующем разделе этой серии мы подробнее рассмотрим критически важные аспекты администрирования Ubuntu Server, уделяя особое внимание исправления, управление пакетами и безопасность. Эти темы важны для поддержания безопасной, стабильной и эффективной серверной среды.
1. Установка программного обеспечения и управление им
Освойте основы установки, обновления и управления программным обеспечением в Ubuntu Server с помощью apt и других инструментов управления пакетами. Научитесь эффективно управлять зависимостями и репозиториями, чтобы сервер был оснащён необходимым программным обеспечением.
2. Исправление и обновление Ubuntu Server
- Почему исправления критически важны для безопасности и стабильности.
- Использование apt для обновления сервера.
- Понимание различий между apt update, apt upgrade и apt full-upgrade.
- Автоматизация обновлений с помощью unattended-upgrades.
- Обработка обновлений ядра и корректная перезагрузка с помощью reboot-required.
3. Защита вашего Ubuntu Server
- Практические шаги по защите сервера, включая настройку брандмауэров (ufw), безопасную настройку SSH и использование таких инструментов, как fail2ban для защиты от атак.
- Научитесь защищать сервер от уязвимостей и несанкционированного доступа.
4. Аудит и ведение журналов в Ubuntu Server
- Введение в системный аудит и важность журналов.
- Использование auditd для отслеживания и записи системных событий.
- Настройка ротации журналов с помощью logrotate.
- Отслеживание каталога
/var/logна предмет критических событий для обеспечения проактивного управления сервером.
4 thoughts on “05. Networking Basics for Ubuntu Server: A Comprehensive Guide”