Як почати мережу на дротовому інтерфейсі перед входом у Ubuntu Desktop Edition


17

Проблема

Ubuntu 9.10 Desktop Edition (і, можливо, попередні версії, а також я їх не перевіряв) не має мережевих з'єднань після завантаження, поки щонайменше 1 користувач не ввійде в систему. Це означає, що будь-які сервіси, для яких потрібна мережа (наприклад, openssh-сервер), недоступні до хтось увійде в локальний або через gdm, kdm або TTY.

Фон

Ubuntu 9.10 Desktop Edition використовує послугу NetworkManager для отримання команд з nm-аплету в Gnome (або його еквівалента в KDE). Як я розумію, поки NetworkManager працює під час завантаження, йому не видаються команди для підключення до першого входу, оскільки nm-аплет не працює, поки ви не ввійдете в систему і не розпочнеться сеанс Gnome (або подібний для KDE). Я не впевнений, що вимагає NetworkManager підключитися до мережі, коли ви входите через TTY.

У запуску мережевих з'єднань є кілька відповідних змінних, включаючи:

  • Провідний та бездротовий (а також драйвери, SSID, паролі та пріоритети)
  • Статична проти DHCP
  • Кілька інтерфейсів

Обмеження

  • Підтримка Ubuntu 9.10 Karmic Koala (бонусні бали за додаткові підтримувані версії)
  • Підтримка дротового інтерфейсу eth0
  • Отримати IP-адресу через DHCP
  • Отримання DNS інформації через DHCP (очевидно, DHCP-сервер повинен надати цю інформацію)
  • Увімкніть мережу в потрібний час (наприклад, через деякий час після завантаження файлових систем, але перед тим, як мережеві послуги, такі як ssh, запускаються)
  • Переключення дистрибутивів або версій (наприклад, на серверне видання) не є прийнятним рішенням
  • Перехід до статичної IP-конфігурації не є прийнятним рішенням

Питання

  • Як почати мережу на дротовому інтерфейсі перед входом у Ubuntu Desktop Edition?

Дивись також

Список літератури

Відповіді:


9

Щоб ваш мережевий інтерфейс автоматично був налаштований через DHCP під час завантаження, додайте наступні рядки до /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Це повинно покращити ваш інтерфейс навіть без запуску NetworkManager. Ви навіть можете видалити мережевий менеджер пакунків, якщо хочете.


Ах, це було просто помилкою, коли я поставив запитання, але це те, що я спробував. З цього приводу перезапуск /etc/init.d/networking дає: "* Переконфігурування мережевих інтерфейсів ...", але інтерфейс не підводиться, тим більше отримуйте IP. Перезавантаження не виводить інтерфейс ні з цими налаштуваннями.
Берлі

Я гадаю, що: auth eth0 замість: auto eth0 у твоєму посту все ще є помилка друку, яку ти робив лише на посаді, правда?
goedson

Я щойно зробив нову установку Ubuntu 9.10, відредагував / etc / network / інтерфейси, як зазначено вище, і видача sudo /etc/init.d/networking restartотримала eth0 та налаштована через DHCP.
goedson

О мій, Мега-провал! : facepalm: У мене не було оригіналу помилки, про який ви згадали, але я маю "auth" замість "auto" у першому рядку. Я вважаю, що ви повинні змінити свою відповідь, щоб я міг змінити свій голос, тому що це було занадто довго (що?). Я видалив розділ "Що я пробував" із запитання, щоб уникнути плутанини, оскільки я набрав важко. Можливо, додайте щось на кшталт: "Додайте наступне в, /etc/network/interfacesщоб перешкодити NetworkManager керувати інтерфейсом та донести його через dhcp" Я повинен перевірити і побачити, чи виправить це виправлення під час завантаження з встановленою NM ...
Burly

Я змінив відповідь, щоб було зрозуміло, яке рішення.
goedson

1

Debian / Ubuntu має власну програму для управління серверами під час завантаження.

Спробуйте update-rc.d STARTUP-SCRIPT defaults

Шукайте конкретний сценарій eth0 та вмикайте його за допомогою цього.

Ви завжди можете зробити свій власний скрипт, помістити його в init.d, а виконання попередньої команди змусить його завантажуватись під час завантаження.

або просто помістіть ці команди (ifconfig up, dhcpcd) у /etc/rc.local (цей файл читається щоразу під час завантаження)


Раніше я використовував update-rc.d, але проблема полягає у пошуку STARTUP-SCRIPT, специфічного для eth0. Принаймні, в Ubuntu 9.10 DE його немає. Існує лише сценарій /etc/init.d/networking, який насправді просто викликає початкову роботу (/ lib / init / update-update network start - це те, що вона конкретно називає). Як було зазначено вище, виклик /etc/init.d/networking start, / lib / init / update-task network start, та / або запуску / перезавантаження службової мережі не призводять до того, що інтерфейс набагато менше отримує IP. Я міг написати власний сценарій, але сподівався на більш елегантне рішення.
Берлі

Введення dhclient eth0 в rc.local може бути єдиним моїм варіантом. Мені потрібно спробувати це, щоб побачити, чи це навіть працює. Проблема з його розміщенням полягає в тому, що інші сервіси запуску не можуть насправді залежати від нього (наприклад, ssh), оскільки rc.local не виконується доти, доки не будуть запущені всі системні послуги.
Берлі

1
РОБОТА: Додавання dhclient eth0до /etc/rc.local належним чином виводить інтерфейс eth0 під час запуску та отримання IP через DHCP. Принаймні для мене, SSH також доступний перед тим, як хтось входитиме в локальну програму, оскільки налаштування opensh-сервера починається з запуску рівнів 234. Я не знаю, чи всі сервіси, що підтримуються мережею, будуть успішно працювати, якщо інтерфейс виведений у rc.local ( наприклад, ntpdate), оскільки rc.local виконується після системних служб.
Берлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.