Ubuntu 18.04: kembali ke / etc / network / interfaces

44

Mulai sekitar Ubuntu 18.04, para pengembang Ubuntu berhenti menggunakan metode klasik /etc/init.d/networkingdan /etc/network/interfaceskonfigurasi jaringan dan beralih ke sesuatu yang disebut netplan. Ini telah membuat banyak orang sangat marah dan secara luas dianggap sebagai langkah buruk. Apakah mungkin untuk menghapus netplandan menggunakan /etc/network/interfacesmetode yang benar untuk mengkonfigurasi jaringan?

jdgregson
sumber
2
Mengapa tidak mengkonfigurasi dengan netplan saja? Dalam kebanyakan situasi, itu sangat mudah.
chili555
3
@ chili555 Mungkin saya hanya harus menerima perubahan dan belajar sesuatu yang baru. Saya hanya ingin tahu apakah sepele untuk kembali seperti semula. Sama seperti systemd, saya mengerti bahwa perubahan yang mengganggu kadang-kadang bisa bermanfaat dan diterima. Namun, ini tentu bukan saat-saat ketika perubahan diperlukan atau menguntungkan.
jdgregson
1
Itu tidak sepele dan tidak mudah dibalik jika terjadi kesalahan. Jika Anda ingin hidup dengan berbahaya, saya akan dengan senang hati mengusulkan jawaban. Di sisi lain, kita dapat mengkonfigurasi netplan dalam beberapa menit. Yang mana yang Anda sukai? PS - Saya tidak berpura-pura mengerti sepenuhnya bagaimana netplan, dengan mengesampingkan /etc/network/interfaces, cocok dengan gambaran systemd yang lebih besar. Yang bisa saya lakukan hanyalah percaya bahwa mereka yang memperkenalkan perubahan itu tahu mengapa itu lebih cocok.
chili555
1
Atau, cukup konfigurasikan netplan dengan benar dan dilakukan.
chili555
1
@ chili555 Netplan tidak mendukung antarmuka jaringan virtual. Lihat di sini: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

Jawaban:

43

Prosedur berikut berfungsi untuk Ubuntu 18.04 (Bionic Beaver)

I. Instal ulang paket ifupdown :

# apt-get update
# apt-get install ifupdown

II Konfigurasikan file / etc / network / interfaces Anda dengan bait konfigurasi seperti:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
  address 192.168.1.133
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # Only relevant if you make use of RESOLVCONF(8)
  # or similar...
  dns-nameservers 1.1.1.1 1.0.0.1

AKU AKU AKU. Jadikan konfigurasi efektif (tidak perlu reboot):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

IV. Nonaktifkan dan hapus layanan yang tidak diinginkan:

# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io

Kemudian, kamu selesai.

Catatan: Anda HARUS , tentu saja, menyesuaikan nilai-nilai sesuai dengan sistem Anda (jaringan, nama antarmuka ...).

V. Penyelesai DNS

Karena Ubuntu Bionic Beaver (18.04) menggunakan resolub stub DNS seperti yang disediakan oleh SYSTEMD-RESOLVED.SERVICE (8), Anda HARUS juga menambahkan DNS untuk kontak ke file /etc/systemd/resolved.conf. Contohnya:

....
DNS=1.1.1.1 1.0.0.1
....

dan kemudian restart layanan systemd-diselesaikan setelah selesai:

# systemctl restart systemd-resolved

Entri DNS dalam file INTERFACES ifupdown (5), seperti yang ditunjukkan di atas, hanya relevan jika Anda menggunakan RESOLVCONF (8) atau yang serupa.

Nuxwin
sumber
9
Yah, brengsek mereka. Hanya apt-get installketika Anda tidak memiliki konfigurasi jaringan. Ide yang brilian, kanonik.
Velkan
1
@Velkan Anda selalu dapat melakukan pra-konfigurasi jaringan Anda dengan netplan kemudian beralih kembali ke ifupdown nanti;) Tapi saya setuju dengan Anda. Entah bagaimana kanonik mengambil keputusan yang buruk. Misalnya, mereka merusak perangkat lunak yang mengandalkan ifupdown untuk konfigurasi jaringan (tidak ada penyedia untuk netplan). Ini adalah kasus untuk perangkat lunak panel kontrol kami (seri stabil) di mana kami tidak ingin menambahkan penyedia konfigurasi jaringan baru ...
Nuxwin
3
@StephenBoston Saya sangat setuju dengan Anda. Namun, bahkan jika Canonical mencoba untuk terus maju dengan memperkenalkan teknologi baru, itu bisa melakukan ini dengan cara yang kurang invasif. Maksud saya, pilihan harus diserahkan kepada pengguna akhir. Untuk workstation, perubahan dari ifupdown ke netplan jelas bukan masalah besar tetapi ketika Anda harus berurusan dengan server Ubuntu, itu cerita lain karena perangkat lunak yang paling stabil tidak perlu menyediakan adaptor ... Itu adalah cerita yang sama untuk systemd. Saya sudah berurusan dengan Debian dan Ubuntu setiap hari. Masalah dengan Ubuntu adalah mereka tidak terlalu peduli tentang kompatibilitas ke belakang.
Nuxwin
1
Koreksi kecil: # systemctl unmak networking-># systemctl unmask networking
Santosh
1
Juga, jika Anda menggunakan dns-domaindan dns-searchdi file antarmuka, Anda harus mengkonfigurasi Domainsparameter di resolved.conf, saya kira? Ngomong-ngomong, pekerjaan hebat yang menyatukan semuanya di sini, mungkin menyelamatkan saya banyak waktu :)
OttoEisen
10

Tim Netplan telah memposting jawaban resmi di FAQ mereka di sini :

Bagaimana cara kembali ke ifupdown

...

Pada sistem yang berjalan, netplan dapat dihapus dengan menginstal ifupdown dan mengkonfigurasi / etc / network / interfaces secara manual seperti yang dilakukan pengguna sebelumnya.

Pada waktu instalasi, pengguna dapat memilih untuk menggunakan ifupdown dengan memprateksi netcfg / do_not_use_netplan = true. Ini dilakukan dengan menambahkan baris preseed ke baris perintah saat mem-boot media instalasi (mis. Pada instal menu boot media, tekan F6, ketik 'e', ​​dan tambahkan ke baris perintah).

Lihat jawaban Nuxwin untuk instruksi lebih lengkap.

jdgregson
sumber
9

Netplan dan yaml, paling-paling rapuh di lingkungan server-only (kesalahan lekukan akan dikenakan biaya). Antarmuka cukup memaafkan sehingga membuat mengelola pengaturan jaringan pada server cukup mudah.
Netplan memperkenalkan lapisan baru. Tetapi masalah sebenarnya adalah bahwa U18 memecah ifupdown, dan tidak menyelesaikan pekerjaan dengan NetPlan. Jika Anda kembali ke / etc / network / interfaces dengan menginstal ulang ifupdown mengelola DNS tidak lagi berfungsi di file interfaces. Entri dns-nameserver diabaikan. Sebaliknya dns diatur dalam /etc/resolv.conf. Tetapi Anda tidak dapat mengedit file itu karena akan ditulis ulang setiap kali mesin di-boot. WTF? Netplan dirancang untuk dikelola oleh GUI sehingga kita yang berada di camp hanya server dibiarkan dengan sistem rapuh yang harus kita jinjit-jinjing. Ubuntu tidak bagus!
mengapa tidak memberi kami cara untuk mengarahkan ulang pengaturan di / etc / network / interfaces ke netplan saat bootup untuk membantu kami saat Anda menyelesaikan netplan?

Dan Desjardins
sumber
1
bagaimana ini menjawab pertanyaan?
Pierre.Vriens
@Dan Desjardins Lihat jawaban yang diterima mengenai masalah penyelesai DNS .. Pada dasarnya, entri DNS yang Anda masukkan ke dalam file ifupdown INTERFACES (5) hanya relevan ketika Anda menggunakan resolvconf (8) atau yang serupa. Untuk resolver rintisan DNS seperti yang disediakan oleh SYSTEMD-RESOLVED.SERVICE (8, Anda perlu menambahkan DNS Anda ke file /etc/systemd/resolved.conf. Melakukan ini akan membuat mereka bertahan. Solusi lain adalah dengan menonaktifkan SYSTEMD-RESOLVED. SERVICE (8) service dan install / setup resolvconf (8) dengan harapan saya cukup jelas
Nuxwin
2

Mengapa tidak mengkonfigurasi dengan netplan saja?

Nah, seperti yang dikonfigurasi pada 18.04-Desktop, itu adalah satu baris menyerahkan kendali ke semua antarmuka ke NetworkManager.

Meskipun itu mungkin cocok untuk 95% pengguna, ingatlah bahwa NetworkManager hanya dijalankan setelah Anda masuk ke suatu sesi.

Jika Anda ingin mesin Anda bertindak sebagai server / desktop, misalnya mulai melayani file ke mesin lokal, bertindak sebagai server VNP, dll ... atau apa pun "mewah" sebelum ada orang yang masuk, hanya dengan fakta sederhana itu adalah pada, Anda akan mengalami masalah dengan bagaimana hal itu dikonfigurasi dalam standar 18.04-Desktop.

Tentu saja, alternatifnya adalah menggunakan konfigurasi server-Netplan, yang, sejauh yang saya baca (tidak diperiksa sendiri), alih-alih kontrol ke systemd-networkd. Dalam hal ini Anda sebaiknya belajar bagaimana systemd melakukan hal-hal sebagai pengganti init System V lama.

Jika Anda mengikuti jalur ini, Anda masih harus melakukan perubahan pada netplan yaml, karena pada versi desktop kontrol diberikan kepada NetworkManager.

Zakhar
sumber
3
Setidaknya ada satu alasan: Netplan tidak mendukung openvswitch.
Kamilion
5
netplan tidak mendukung alias IP (gaya eth0: 0). Saya tidak percaya bagaimana hal seperti itu bisa masuk ke server Ubuntu!
Hamid Fadishei
Karena netplandirektori saya kosong!
dsgdfg
Layanan NetworkManager dimulai cukup awal dan tidak memerlukan sesi atau pengguna yang masuk.
thaller
1

Kuncinya adalah mengetahui bahwa itu cloud.initadalah program kontrol nyata.
Itu dikatakan baris dalam netplanfile konfigurasi "opsional: benar" adalah wajib.
Mengetahui hal itu membuatnya mudah.

Saya baru saja menghapus 01-network-manager-all.yamldan menyalinnya ke /root/save/. Kemudian taruh konfigurasi yang dikenal baik sebagai ganti 50-cloud-init.yaml,: isinya ikuti:

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: enp*
        optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.2.5/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [127.0.0.1, 8.8.4.4]          
      parameters:
        mode: 0          
        mii-monitor-interval: 100

Kemudian reboot dan itu seharusnya bekerja dengan baik.

Konfigurasi bagus yang diketahui berasal dari jaringan Konfigurasi bonded 802.3ad menggunakan netplan di Ubuntu 18.04 .

pksings
sumber
1
Pertanyaannya di sini adalah bagaimana cara beralih kembali ke ifupdown;) Di masa depan, Anda harus mencoba menjawab pertanyaan tanpa mencemari mereka, bahkan melalui itu tidak selalu mudah untuk tetap berpegang pada subjek awal;)
Nuxwin
0

Menurut jawaban ini, solusinya adalah menghapus semua file operasional .yaml: Ubuntu 17.10 menonaktifkan netplan

Saya tidak akan menghapus apa pun tanpa membuat cadangan. Kita dapat melakukannya dengan mudah hanya dengan memindahkan file ke samping. Pertama, cari file:

sudo updatedb
locate netplan | grep yaml

Pada sistem 18.04 saya, tampak bahwa satu-satunya file operasional adalah /etc/netplan/01-network-manager-all.yaml. Mari kita pindahkan:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... di mana pengguna adalah nama pengguna Anda.

Sekarang periksa untuk memastikan file tersebut benar-benar hilang:

ls /etc/netplan

Sekarang buat tambahan Anda ke / etc / network / interfaces sesuai kebutuhan.

Mulai ulang.

Adakah perbaikan?

Catatan kaki: Proses yang tepat untuk melakukan ini sulit ditemukan. Kita mungkin perlu sedikit memperbaiki saat kita pergi.

cabai555
sumber
Saya harus mencobanya dan melihat bagaimana hasilnya. Satu-satunya pertanyaan lain adalah bagaimana menerapkan perubahan tanpa me-reboot. Di masa lalu Anda bisa menggunakan ifup/ ifdown, /etc/init.d/networking restart, service networking restart, dan metode systemd, seperti systemctl restart networking, systemctl restart Network-Manager.servicedll, namun tidak satupun dari ini adalah mungkin bagi saya setelah menginstal Ubuntu 18.04.
jdgregson
Apa hasil dari: sudo ip link set eth0 downdiikuti oleh: sudo ifup -v eth0Tentu saja, gantilah antarmuka Anda dengan eth0 mitos.
chili555
ifupdowntidak diinstal secara default, jadi ketika Anda memanggilnya ifuphanya memberitahu Anda cara menginstalnya. Namun, sudo ip link set eth0 downdiikuti dengan sudo ip link set eth0 uptidak mematikan antarmuka dan menghidupkan kembali.
jdgregson
Luar biasa! Jadi Anda terpecahkan dan siap?
chili555
Hati-hati, tidak semua file * .yaml terkait dengan netplan, jadi hapus saja di direktori yang berhubungan dengan netplan!
JanC