При перезагрузке сервера на Arch Linux (VPS) после обновлений (было обновлено в том числе ядро Linux) на нём полностью пропала сеть. Отсутствовало как подключение к веб-серверу, так и по SSH. В результате пришлось подключаться по VNC и решать проблему.
Оказалось, что сетевому интерфейсу не присвоены IP адреса, а сам интерфейс находится в состоянии DOWN. Проверял с помощью команды:
ip a
Аналогичный результат давала команда
ifconfig
С помощью команды (здесь enp0s3 – имя сетевого интерфейса в моей системе):
ip link set enp0s3 up
Удалось перевести интерфейс в состояние UP, но это ситуацию не изменило, по-прежнему не присвоены внешние IP адреса, сети нет, команда ip a стала выводить:
При загрузке системы я наблюдал запись:
A start job is running for sys-subsystem-net-device-ens3.device (32s / Inin 30s)
Вместо неё может быть запись вида A start job is running for sys-subsystem-net-device-*.device.
Попытки запустить сетевую службу командами вида:
netctl start static.ens3
Приводили к ошибкам:
The result is dependency.
А также:
Dependency failed for A basic static ethernet connection. A dependency job for netctlPstatic.ens3.seruice failed. See 'journalctl -xe' for details.
Статус, полученный командой
netctl status static.ens3
Выводил:
netctl0static.ens3.sevice - A basic static ethernet connection Loaded: loaded (/etc/systend/systen/netctl@static.ens3.sevice; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:netctl.profile(5) Mar 13 04:13:57 suip.biz systend[l]: Dependency failed for A basic static ethernet connection. Mar 13 04:13:57 suip.biz systend[l]: netctl0static.ens3.sevice: Job netctl0static.ens3.sevice/start failed with result ‘dependency’
В журнале было записано:
Причина ошибки Dependency failed для сетевой службы
Причина оказалась в том, что в настройках сетевого профиля было указано неверное имя сетевого интерфейса. В файле /etc/netctl/static.ens3 строка, которая начинается с Interface, например:
Interface=ens3
обозначает имя сетевого интерфейса, для которого в файле делаются настройки. У меня там было имя ens3, в то время как имя в системе было enp0s3. Поскольку данный сервер на тот момент проработал уже 2 года, можно предположить, что внезапное изменение имени сетевого интерфейса связано с обновлением (возможно, ядра), либо изменениями в аппаратной виртуализации со стороны хостинга.
Как исправить отсутствие сети из-за Dependency failed
Видятся два варианта:
- Вернуть прежнее имя сетевого интерфейса в системе
- Изменить настройки исходя из нового имени сетевого интерфейса
Второй способ, думается, предпочтительнее.
С помощью команды
find /etc/systemd
вы можете найти сервис, который находится в автозагрузке и который использует старое имя.
В моём случае, для отключения старого профиля:
netctl disable static.ens3
Далее переименование файла профиля в соответствие с новым именем интерфейса:
mv /etc/netctl/static.ens3 /etc/netctl/static.enp0s3
Затем редактирование профиля, заменяя в этом файле строку
Interface=ens3
на строку с новым интерфейсом, в моём случае это
Interface=enp0s3
Запуск:
netctl start static.enp0s3
Если всё в порядке, то добавление в автозагрузку.
netctl enable static.enp0s3
Проверяем доступность Интернет-подключения:
ping ya.ru
Близкие статьи
- Решение проблемы Failed to configure CA certificate chain!, Fatal error initialising mod_ssl, exiting. (61.1%)
- Решение проблемы «ERROR] Could not open mysql.plugin table. Some plugins may be not loaded» при запуске MariaDB в Arch Linux (61.1%)
- Ошибка phpMyAdmin «Error: Undefined constant "SODIUM_CRYPTO_SECRETBOX_KEYBYTES"» (РЕШЕНО) (61.1%)
- Ошибка «wget will not execute and completion _wget exists» (РЕШЕНО) (59.7%)
- Привязка доменного имени к серверу на VDS (57.5%)
- Учётные данные (логин и пароль) в BlackArch (RANDOM - 6.1%)