Cara memulai jaringan pada antarmuka berkabel sebelum masuk di Ubuntu Desktop Edition

17

Masalah

Ubuntu 9.10 Desktop Edition (dan mungkin versi sebelumnya juga, saya belum mengujinya) tidak memiliki koneksi jaringan setelah boot sampai setidaknya 1 pengguna login. Ini berarti semua layanan yang memerlukan jaringan (mis. Openssh-server) tidak tersedia hingga seseorang masuk secara lokal baik melalui gdm, kdm, atau TTY.

Latar Belakang

Ubuntu 9.10 Desktop Edition menggunakan layanan NetworkManager untuk mengambil perintah dari nm-applet di Gnome (atau yang setara di KDE). Seperti yang saya pahami, saat NetworkManager berjalan saat boot, ia tidak mengeluarkan perintah apa pun untuk terhubung sampai Anda masuk untuk pertama kalinya karena nm-applet tidak berjalan sampai Anda masuk dan sesi Gnome Anda mulai (atau serupa dengan KDE). Saya tidak yakin apa yang meminta NetworkManager untuk terhubung ke jaringan ketika Anda login melalui TTY.

Ada beberapa variabel yang relevan yang terlibat dalam memulai koneksi jaringan termasuk:

  • Wired vs Wireless (dan driver, SSID, kata sandi, dan prioritas yang dihasilkan)
  • Statis vs DHCP
  • Antarmuka ganda

Kendala

  • Mendukung Ubuntu 9.10 Karmic Koala (poin bonus untuk versi yang didukung tambahan)
  • Mendukung antarmuka eth0 berkabel
  • Terima alamat IP melalui DHCP
  • Menerima informasi DNS melalui DHCP (jelas server DHCP harus memberikan informasi ini)
  • Aktifkan jaringan pada waktu yang tepat (mis. Beberapa saat setelah sistem file dimuat tetapi sebelum layanan jaringan seperti ssh start)
  • Beralih distro atau versi (misalnya ke Server Edition) bukan solusi yang dapat diterima
  • Beralih ke konfigurasi IP Statis bukan solusi yang dapat diterima

Pertanyaan

  • Bagaimana cara memulai jaringan pada antarmuka berkabel sebelum masuk di Ubuntu Desktop Edition?

Lihat juga

Referensi

Burly
sumber

Jawaban:

9

Agar antarmuka jaringan Anda dikonfigurasi secara otomatis melalui DHCP saat boot, tambahkan baris berikut ke /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Ini akan membuat antarmuka Anda naik bahkan tanpa NetworkManager berjalan. Anda bahkan dapat menghapus paket network-manager, jika Anda mau.

goedson
sumber
Ahh, itu hanya salah ketik ketika saya mengajukan pertanyaan, tapi itulah yang saya coba. Yang mengatakan, melakukan /etc/init.d/networking restart memberikan: "* Mengkonfigurasi ulang antarmuka jaringan ..." tetapi antarmuka tidak dibawa, apalagi mendapatkan IP. Melakukan reboot tidak memunculkan antarmuka dengan pengaturan ini.
Burly
Saya kira: auth eth0 alih-alih: auto eth0 di pos Anda masih salah ketik yang Anda lakukan hanya di pos, bukan?
goedson
Saya baru saja melakukan instalasi baru Ubuntu 9,10, diedit / etc / network / interfaces seperti disebutkan di atas, dan mengeluarkan sudo /etc/init.d/networking restartmemang mendapatkan eth0 dan dikonfigurasi melalui DHCP.
goedson
Ya ampun, Mega-gagal! : facepalm: Saya tidak memiliki kesalahan ketik yang Anda sebutkan, tetapi saya DO memiliki 'auth' alih-alih 'auto' di baris pertama. Saya yakin Anda harus mengubah jawaban Anda agar saya dapat mengubah suara saya karena sudah terlalu lama (wth?). Saya telah menghapus bagian "Apa yang Saya Mencoba" dari pertanyaan untuk menghindari kebingungan karena saya salah ketik. Mungkin menambahkan sesuatu seperti: "Tambahkan berikut ini /etc/network/interfacesuntuk mencegah NetworkManager dari mengelola antarmuka dan membawanya melalui dhcp" Saya harus memeriksa dan melihat apakah perbaikan ini akan membawanya saat boot dengan NM diinstal ...
Burly
Saya sudah mengubah jawabannya jadi jelas apa solusinya.
goedson
1

Debian / Ubuntu memiliki programnya sendiri untuk mengelola server saat boot.

Mencoba update-rc.d STARTUP-SCRIPT defaults

Cari skrip spesifik untuk eth0, dan aktifkan dengan ini.

Anda selalu dapat membuat skrip Anda sendiri, letakkan di init.d dan menjalankan perintah sebelumnya akan membuatnya dimuat saat boot.

atau cukup letakkan perintah-perintah itu (ifconfig up, dhcpcd) di /etc/rc.local (file ini dibaca setiap saat boot-time)

Pengendara Sinar Matahari
sumber
Saya telah menggunakan pembaruan-rc.d sebelumnya tetapi masalahnya adalah menemukan STARTUP-SCRIPT khusus untuk eth0. Setidaknya di Ubuntu 9.10 DE, tidak ada. Hanya ada skrip /etc/init.d/networking, yang sebenarnya hanya memanggil pekerjaan pemula (/ lib / init / update-job start jaringan adalah apa yang disebutnya secara khusus). Seperti disebutkan di atas, panggilan /etc/init.d/networking start, / lib / init / update-job network start, dan / atau start / restart jaringan layanan tidak memunculkan antarmuka apalagi mendapatkan IP. Saya bisa menulis naskah sendiri, tetapi saya berharap untuk solusi yang lebih elegan.
Burly
Menempatkan dhclient eth0 di rc.local mungkin satu-satunya pilihan saya. Saya perlu mencoba ini untuk melihat apakah itu berfungsi. Masalah dengan meletakkannya di sini adalah bahwa layanan startup lain tidak dapat benar-benar bergantung padanya (seperti ssh) karena rc.local tidak dieksekusi sampai setelah semua layanan sistem telah dimulai.
Burly
1
WORKAROUND: Menambahkan dhclient eth0ke /etc/rc.local tidak memunculkan antarmuka eth0 saat startup dan mendapatkan IP melalui DHCP. Setidaknya bagi saya, SSH juga tersedia sebelum siapa pun masuk secara lokal sekarang karena openssh-server diatur untuk mulai di runlevels 234. Saya tidak tahu apakah semua layanan yang didukung jaringan akan bekerja dengan sukses setelah antarmuka dibesarkan di rc.local ( misalnya ntpdate), karena rc.local dijalankan setelah layanan sistem.
Burly