Немає мережі після оновлення до 16.04


12

Я модернізував свій сервер до 16.04 з 14.04, який, в свою чергу, було оновлено з 12.04, і все це використовувало командний рядок do-release-upgrade. Це збірка сервера, без абсолютно GUI. Він запускає apache2, bind9, nfs та кілька інших служб, пов’язаних з мережею. Здебільшого в оновленні нічого не було зламано ... окрім мережі. Тепер мені треба бігти

sudo /etc/init.d/networking start

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

sudo update-rc.d networking defaults

але наведена вище команда просто видає помилку щодо неможливості підключення до запуску.

Що я можу зробити, щоб виправити свою мережу?

Редагувати: Вміст / etc / network / interface:

#loopback
auto lo
iface lo inet loopback

#eth0
auto eth0
iface eth0 inet dhcp

Ви можете додати рядки у /etc/network/interfacesфайлі до свого запитання?
— Джон Оріон

@JohnOrion зроблено. Я також переконався, що мережевий пристрій насправді eth0; Раніше я змінював пристрої між eth0 та eth1. Це, дійсно, eth0.
— ArmanX

Що ifconfigпоказує? Що відбувається, коли ти біжиш sudo ifup eth0?
— Серін

1
Для майбутніх шукачів інформації: "ifconfig" нічого не показує; "ifconfig -a" показує, що адаптер є, але не активований. "sudo ifup eth0" (або "sudo ifconfig eth0 up") підніме адаптер, але не викличе клієнта dhcp. Ручне підведення адаптера та запуск dhclient підключається як очікувалося.
— ArmanX

Це сказало, що я врешті-решт перевстановив усе з нуля, що це виправило.
— ArmanX

Відповіді:


23

те ж саме.

Я думаю, що щось пішло не так, під час переходу від початкового до системного в процесі встановлення?

я опишу, як я це виправив

Дотримуючись цього керівництва, я ввімкнув мережеві системи: http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html

Кроки, які я зробив:

$ sudo systemctl enable systemd-networkd
$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ sudo vi /etc/systemd/network/20-dhcp.network

Зміст:

[Match]
Name=e*

[Network]
DHCP=yes

Зараз все працює нормально :-)


гуца! Це вирішило це і для мене!
— Крейг

Тут не працювали. Третя заява помилилася.
— jjmerelo

2

Рішення статичної адреси:

Щоб додати відповідь HerrTaschenbier: Якщо у вас на сервері є статична адреса, ви повинні перевірити, чи було перейменовано NIC, зробивши ifconfig -a я, я знайшов, що eth0 був перейменований на ens32. Використовуйте цю інформацію та застосуйте її до відповіді HerrTaschenbier. Вам також необхідно створити новий файл , як він проінструктував, sudo vi /etc/systemd/network/20-ens32.network. Зміст дещо інший.

[Match] 
Name=ens32

[Network]
DNS=xxx.xxx.xxx.xxx
Domains=somedomain.com
Address=xxx.xxx.xxx
Gateway=xxx.xxx.xxx

Зверніть увагу, що у форматі імені файлу є ім'я мережного адаптера. Не забудьте також змінити ім’я адаптера у / etc / network / interface interface file. Це сталося зі мною з оновлення 14.04 до 16.04.


1

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

Запуск systemctl status networking.serviceпоказав, що сервіс не вдалося запустити через помилку в ifup -aдзвінку. Ті, що йдуть ifup -aокремо показали , що вона намагається працювати з eth0інтерфейсом, в той час як в ifconfig -aсписку тільки enp0s31f6і loінтерфейси. Перевірка /etc/network/interfacesпоказала:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Виправлення імені інтерфейсу до того, що було знайдено ifconfigвирішеною проблемою:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

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