GNU/Linux >> Belajar Linux >  >> Linux

Tidak menjalankan dhcpcd karena /etc/network/interfaces mendefinisikan beberapa antarmuka yang akan menggunakan klien DHCP atau alamat statis

Pertanyaan 1.) Maaf, sepertinya Anda salah memahami beberapa hal.

dhcpcd adalah klien DHCP daemon, yang biasanya dimulai oleh NetworkManager atau ifupdown , tidak langsung dengan systemd . Ini yang akan menangani penetapan alamat IP untuk wlan0 Anda .

Anda bisa gunakan dhcpcd seperti yang dimulai oleh systemd jika Anda mau, bagaimanapun itu akan membutuhkan penonaktifan semua logika konfigurasi antarmuka jaringan normal (yaitu /etc/network/interfaces harus kosong dari baris non-komentar) dari distribusi dan menggantinya dengan skrip kustom Anda sendiri jika diperlukan. Itu hanya untuk penggunaan khusus; jika Anda tidak benar-benar yakin harus melakukannya, jangan lakukan.

dhcpcd tidak akan pernah menyajikan alamat IP ke host lain mana pun. Bagian ini Anda tambahkan ke dhcpcd.conf sepertinya itu milik file konfigurasi ISC DHCP server daemon, dhcpd (ya itu hanya perbedaan satu huruf) sebagai gantinya:

host Accountant {
hardware ethernet 10:60:4b:68:03:21;
fixed-address 192.168.2.83;
}

host Accountant1 {
hardware ethernet 00:0c:29:35:95:ed;
fixed-address 192.168.2.66;
}
host Accountant3 {
hardware ethernet 30:85:A9:1B:C4:8B;
fixed-address 192.168.2.70;
}

Tetapi jika Anda mengikuti tutorial YouTube yang Anda sebutkan, Anda mungkin tidak memiliki dhcpd diinstal, sejak dnsmasq seharusnya melakukan pekerjaan itu.

Sejauh yang saya tahu, sintaks yang setara untuk dnsmasq.conf akan menjadi:

dhcp-host=10:60:4b:68:03:21,192.168.2.83,Accountant
dhcp-host=00:0c:29:35:95:ed,192.168.2.66,Accountant1
dhcp-host=30:85:A9:1B:C4:8B,192.168.2.70,Accountant3

Penafian:Saya belum benar-benar menggunakan dnsmasq , jadi ini berdasarkan Googling halaman manualnya dengan cepat.

Pertanyaan 2.) Dalam tutorial yang Anda sebutkan, dnsmasq seharusnya bertindak sebagai server DHCP pada eth0 . Anda tidak mengatakan apa-apa tentang itu, jadi saya tidak tahu apakah itu berjalan atau tidak. Jika tidak, satu klien yang selalu mendapatkan IP yang sama mungkin hanya kembali ke sewa DHCP lama yang diterima sebelumnya yang belum kedaluwarsa. Ya, klien DHCP dapat menyimpan sewa DHCP secara terus-menerus dan tetap menggunakannya jika jaringan tampaknya tidak memiliki server DHCP yang berfungsi.

Pertanyaan 3.):/etc/network/interfaces adalah file konfigurasi antarmuka jaringan gaya Debian/Ubuntu klasik. Gunakan man interfaces untuk melihat dokumentasinya, atau lihat di sini.

Di Debian, *Ubuntu, Raspbian dll., NetworkManager akan memiliki plug-in yang akan membaca /etc/network/interfaces tetapi tidak mau menulis untuk itu.

Jika alat konfigurasi NetworkManager seperti nmcli , nmtui atau alat konfigurasi NetworkManager berbasis GUI dari lingkungan desktop pilihan Anda digunakan, konfigurasi akan disimpan ke file di /etc/NetworkManager/system-connections/ direktori sebagai gantinya.

Jika NetworkManager tidak diinstal, /etc/network/interfaces file digunakan oleh ifupdown paket, yang menyertakan perintah ifup dan ifdown . Paket ini juga menyertakan skrip start-up sistem yang akan menjalankan ifup -a saat boot, mengaktifkan semua antarmuka jaringan yang memiliki auto <interface name> di /etc/network/interfaces . Ada juga aturan udev yang akan menjalankan ifup <interface name> jika driver untuk antarmuka jaringan baru dimuat secara otomatis dan /etc/network/interfaces memiliki allow-hotplug <interface name> baris untuk itu.


Saya menemukan alasan untuk "kesalahan" ini.

dhcpcd menggunakan semacam "perlindungan noob/newbie", yang menjamin cara yang aman untuk menangani manajemen jaringan, jika beberapa "noob/newbie" mencoba menggunakan keduanya dhcpcd dan /etc/interfaces .

dhcpcd periksa /etc/interfaces dengan skrip shell berikut /usr/lib/dhcpcd5/dhcpcd :

#!/bin/sh -e

DHCPCD=/sbin/dhcpcd
INTERFACES=/etc/network/interfaces

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
                $INTERFACES; then
        echo "Not running dhcpcd because $INTERFACES"
        echo "defines some interfaces that will use a"
        echo "DHCP client or static address"
        exit 6
fi

exec $DHCPCD [email protected]

Saya hanya mengganti baris

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \

dengan menghapus |static argumen, untuk

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp)" \

dan sesuaikan baris gema terakhir ke:

echo "DHCP client"

PS pastikan untuk menambahkan denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces" , misalnya denyinterfaces eth0 ke /etc/dhcpcd.conf Anda .


Linux
  1. Cara mengatur alamat IP Statis di Debian Linux

  2. Penjelasan Terperinci yang Baik Tentang /etc/network/interfaces Sintaks?

  3. Django static_root di /var/www/... - tidak ada izin untuk mengumpulkan statis

  1. Bagaimana cara mengetahui dari folder mana suatu proses sedang berjalan?

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Perbedaan antara /etc/hosts dan /etc/resolv.conf

  3. Cara mengatur /etc/issues untuk menampilkan alamat IP untuk eth0