Немає мереж: Не вдалося створити eth0


13

Сервіс мережі не запускається / не запускається при перезавантаженні.

Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.

Я все ще можу отримати доступ до сервера через віддалену консоль, але нічого іншого, оскільки без мережі немає виходу ні входу.

systemctl status networking.service говорить:

● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese
t: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Mo 2016-04-18 06:53:11 UTC; 43s ago
     Docs: man:interfaces(5)
  Process: 3551 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=
1/FAILURE)
  Process: 3546 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [
 -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (cod
e=exited, status=0/SUCCESS)
 Main PID: 3551 (code=exited, status=1/FAILURE)

Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: For info, please visit htt
ps://www.isc.org/software/dhcp/
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Usage: dhclient [-4|-6] [-
SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-s server
-addr] [-cf config-file] [-lf lease-file]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-pf pid-f
ile] [--no-pid] [-e VAR=val]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-sf scrip
t-file] [interface]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Failed to bring up eth0.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Main p
rocess exited, code=exited, status=1/FAILURE
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: Failed to start Raise netw
ork interfaces.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Unit e
ntered failed state.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Failed
 with result 'exit-code'.

Мій / etc / network / interface виглядає так:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Де я можу почати налагоджувати?

Дякуємо за будь-яку підказку! З повагою, К

# sudo ifup --verbose eth0
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant

/sbin/dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0  
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Usage: dhclient <snip>
Failed to bring up eth0.

1
Система намагається вивести ваш мережевий інтерфейс up, виконуючи по черзі сценарії, які знаходяться в /etc/network/if-up.d. Один із них містить dhclientкоманду, яка не працює. Тож зробіть щось на кшталт grep -R dhclient /etc/network/if-up.d/*і подивіться, що ви отримаєте.
Jos

Дякуємо за цю інформацію. Немає команди dhclient, ні в if-up.d, ні вище.
Katja Süss

Чи можете ви зробити посібник, sudo ifup --verbose eth0щоб побачити, де справи йдуть не так?
Джос

Я додав висновок # sudo ifup --verbose eth0 до свого запитання.
Katja Süss

Наявність рядків "Використання: ..." робить його схожим на те, що команда dhclient не вдається, оскільки в параметрах є помилка. Але наскільки я можу сказати, команда правильна. Більше того, у мене є однакові рядки "Використання" /var/log/syslog. Ви можете спробувати виконати dhclientкоманду вручну самостійно. Якщо жодне повідомлення про помилку не випливає, проблем із цим немає dhclient.
Jos

Відповіді:


7

Це зі мною щойно трапилось. Причиною було те, що виникла невідповідність пакетної залежності, яка перервала моє оновлення від надійного до ксеніального, тому деякі версії пакету були непослідовними. У моєму випадку невідповідність була викликана squid3 та ca-сертифікатами-java.

Я відновив мережеве з'єднання, запустивши просто dhclient eth0. Вирішивши невідповідність пакету, видаливши пакети, які порушили правопорушення, і запустив apt-get install -f, я побіг apt-get dist-upgradeі apt-get install ubuntu-standard. Це повністю вирішило мою проблему.

Що змусило мене підозрювати невідповідність - це те, що /sbin/ifupдвійковий файл містив застарілий dhclientкомандний рядок із більше не підтримуваною -Iопцією. Це має бути невідповідність версії пакета.


чомусь мій do-release-upgrade також застряг, і це працювало і для мене, дякую !.
Еверт

6

Я припускаю, що ви щойно встановили / оновили до нової ОС, такої як Ubuntu 16.04, і через відхід від традиційних схем іменного інтерфейсу, таких як eth0або eth1, система не може запустити ваш інтерфейс.

Спробуйте відредагувати /etc/network/interfacesабо використовувати, ens32або ens192замість eth0подібного

# The loopback network interface
auto lo
iface lo inet loopback

# The Ethernet interface
auto ens192
iface ens192 inet dhcp

Це повинно включати перезапуск мережевого інтерфейсу. Я сподіваюся, що це допомагає. Докладніше про зміни прогнозного мережевого інтерфейсу

https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/


виправлення для мене було: askubuntu.com/a/830163/543586
theINto

Яка рятівниця життя. Саме це перешкоджало моєму віртуальному Linux-серверу не повертатися в мережу після того, як вони виконали примусове оновлення ядра для плавлення. міна була ens3 (зробіть ip link show і знайдіть, що стосується стосується вас)
Патрік F

2

Не впевнений, чи це все-таки корисно: Схоже, що dhclient більше не має опції "-I" або "-df", що відповідно до сторінки man робить DDNS:

-Я використовую стандартну схему DDNS від RFC 4701 та 4702.

Після того, як я видалю цю опцію з командного рядка, dhclient зможе вивести eth0.

[EDIT] : Тепер, якщо я міг би знайти, де цей варіант "-I" ...


1
Я намагаюся розібратися, де з цими параметрами викликається команда "dhclient". Я тимчасово підняв мережу, вручну запустивши команду dhclient без цих двох варіантів. - Я, здається, не маю достатньої репутації, щоб коментувати інше, тому я тут додаю свою власну відповідь.
Вей Ван

1
TLin (внизу) справа. Пакет isc-dhcp-client застряг у старій версії. Гарний улов! Мені просто довелося зробити "apt-get install isc-dhcp-client", щоб встановити 4.3.3, і система задоволена після цього.
Вей Ван

Вей Ван: Велике спасибі, перевстановлення "isc-dhcp-client", як ви запропонували, зробило трюк! Мені вдалося вбити хоста (гостя VM!) Посеред до-реліз-оновлення, яке було не зовсім розумним. Тепер я можу перейти до виправлення цього матеріалу через ssh та знову мережу! Дякую.
stolsvik

1

У мене була подібна проблема, як OP та Wei Wang, де ifupнамагався запустити dhclient з -Iопцією, але мій dhclient був старшою версією, яка не підтримувала його. Я здогадуюсь, що це було пов’язано з моїм попереднім хакітним способом завантаження / встановлення хроніки Xenial (16.04), зберігаючи мою систему на Trusty (14.04), але, мабуть, також було оновлено деякі інші частини моєї системи.

Коротше кажучи, моє виправлення полягало в ручному завантаженні та встановленні відповідних пакетів, пов’язаних із dhclient, у верхній течії Xenial. Потрібно три пакети, і їх потрібно встановити в такому порядку:

  1. libisc-export160 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libisc-export160_9.10.3.dfsg.P4-8_amd64.deb.html )
  2. libdns-export162 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libdns-export162_9.10.3.dfsg.P4-8_amd64.deb.html )
  3. isc-dhcp-client_4.3.3 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/isc-dhcp-client_4.3.3-5ubuntu12_amd64.deb.html )

Після цього dhclient --versionпоказав, що у мене 4.3.3, який підтримує цю -Iопцію, і я міг ifupзнову використовувати .


0

Спробуйте це:-

sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

Тож замініть networking restartнаifdown... && ifup....

Так само, як і в сторону: ifconfigтакож давно застаріла - використовуйте ipз пакетаiproute2

Ви також можете спробувати

ifconfig eth0 down && ifconfig eth0 up

(або як називається ваш мережевий інтерфейс) для перезавантаження мережі.


0

@jos згадує в коментарі до оригіналу публікацію:

Наявність рядків "Використання: ..." дозволяє виглядати так, ніби команда dhclient не вдається, оскільки в параметрах є помилка ...

У мене була ця точна проблема, і підказка на багатослівний журнал.

ifup --verbose eth0

Шукайте вихід, що пояснює параметри DHCP.

Потім я взяв результат від:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -if /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0

просто:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid eth0 і тоді я отримав адресу.

Я вважаю, що деяке оновлення програмного забезпечення змусило dhclient вийти з синхронізації, що відбувалося в моїй системі Debian 7.11.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.