/Etc/dhcpcd.conf ve / etc / network / interfaces arasındaki farklar?


63

Ben bu yapılandırmaya sahip / etc / network / arayüzler :

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
#iface wlan0 inet dhcp
        iface wlan0 inet static
        address 192.168.0.110
        netmask 255.255.255.0
        network 192.168.0.1
        gateway 192.168.0.1
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp


iface eth0 inet static
    address 192.168.0.115
    netmask 255.255.255.0
    network 192.168.0.1
    gateway 192.168.0.1

Kablosuz statik IP çalıştı, ancak eth0 çalışmadı.

Bu yüzden /etc/dhcpcd.conf dosyasındaki config komutunu denedim :

interface eth0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Ve işe yaradı. Kafam karıştı ve işte birkaç soru:

  1. Hangi dosyayı ne zaman kullanmalı?

  2. Wifi neden / etc / network / interfaces ile çalıştı ancak eth0 çalışmadı?

  3. Does dhcpcd üzerinde nedense önceliğe sahiptir / etc / network / arayüzüne ?

  4. Hangi hizmetin önceliği veya bir şeyi olduğunu nasıl kontrol edebilirim? Ve hangi servis / etc / network / interface kullanıyor ?


4
Harika bir soru ve sormak üzereydim #raspbian. Yıllarca Un * x yöneticisi olarak, bu temel değişikliği şaşırtıcı bir dokümantasyon sıkıntısı ile birleştirerek buluyorum. Bir saat deneme yanılma yaptıktan sonra bu soruyu buldum. Keşke raspberrypi.stackexchange.com/questions/37920/… daha önce bulunabilseydim
Alastair McCormack

Bence, bu soruda, eth0'un tam olarak nasıl başarısız olduğu konusunda sorular sorulması gerektiğini düşünüyorum. Nedir ip addrçıkışı ve systemctl status networkingçıkış? Eğer OP bunu ssh üzerinden yapmaya çalıştıysa ve ssh'ye eth0 ip'ini kullanmaya çalıştıysa, o zaman değiştirilen eth0 ip devam eden ssh oturumunu kesintisiz tutmak için eth0 'a ikincil ip olarak atanacaktır, eth0 ip' i OP olarak değiştirmeye çalıştım. bahsedilen ancak wlan0 ile sshing yapıyor ve dhcp'ye göre çalışıyor ve tercih ediyor, benim durumumda Stretch üzerinde dhclient oldu, fakat daha önce belirtilen vaka et0 ile sshing oldu.
Pavel Sayekat

Ve evet, dhcpcd de test edilmiştir, hiçbiri /etc/network/interfacesayarlara göre tercih edilmez .
Pavel Sayekat

Yanıtlar:


65

Bu sorunun tüm cevaplarında iyi noktalar var, ancak doğrudan özel sorularınızı ele almak için bir kapsam olduğunu düşünüyorum.

  1. Hangi dosyayı ne zaman kullanmalı?

Şu anda (genel Raspberry Pi topluluğunda) meydana gelen ve Debian 'Wheezy' yerine Debian ' Jessie ' nin tanıtılmasıyla ortaya çıkan genel bir karışıklık derecesine maruz kaldığınızı kabul edeceğim. Bu değişiklik çok sayıda öğreticiyi en eskimiş ve en iyi şekilde kafa karıştırıcı yaptı.

Sorunun cevabı Wheezy kullanırken /etc/network/interfacesağ arayüzlerini ayarlamak amacıyla dosyada değişiklik yapmak normaldi (şekil). Jessie kullanırken, '/etc/dhcpcd.conf' için değişiklik yapmanız gerekecektir. Bununla birlikte, kablosuz bağlantıda ( wlan0) değişiklik /etc/wpa_supplicant/wpa_supplicant.confyaparsanız, ağın kimliğini ve şifresini eklediğiniz yerde de değişiklikler yapmanız gerekecektir .

  1. Wifi neden / etc / network / interfaces ile çalıştı fakat eth0 çalışmadı?

Dosyalarınızdan bazı bilgiler eksik olduğundan (en azından ssid) wifi bağlantısının nasıl işe yarayacağından emin değilim. Janos'un belirttiği gibi, wlan0 detaylarından sonra gelen etho bağlantı detaylarının önceliği muhtemelen onları aktif hale getirdi (çünkü dosyayı okuduktan sonra en son görülmüş olacaklardı).

  1. Dhcpcd bir şekilde / etc / network / interface yerine önceliğe sahip midir?

Hayır, farklılar ve Jessie altında farklı amaçlara uyacak şekilde tasarlandılar. Oldukça basit bir şekilde Jessie kullanarak amaçları için hemen hemen yok sayabilirsiniz interfacesdosya ve çalışmak dhcpcd.confve wpa_supplicant.conf.

  1. Hangi hizmetin önceliği veya bir şeyi olduğunu nasıl kontrol edebilirim? Ve hangi servis / etc / network / interface kullanıyor?

Yine, sorunun daha fazla olduğu varsayımını yapacağım: ' Hangi dosyayı kullanırım ve hangisini öncelikli kullanırsam? 'soru. Cevap Jessie için (ve kabul edilmesi ile daha geniş anlamda Wheezy gelen değişiklikle olmasıdır systemd ) `dhcpcd.conf' ve 'wpa_supplicant.conf yapılandırmasına arabirimleri 'dosyası kalacak' norm ve olacak' kendi cihazlarına.

Bunun sizin için anlamı nedir?

Peki (yine), statik IP adresleriyle sert kablolu (eth0) ve kablosuz (wlan0) bağlantılar kurmaya çalıştığınızı varsayıyorsanız, interfacesdosyanızın başlangıçta kurulu olduğu gibi varsayılan olmasını istersiniz ;

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Eğer isteyeyim dhcpcd.confmuhtemelen böyle biraz olmazdı hem arabirimler ve ek girişler için dosyanın sonuna bağlantı ayrıntılarını içerecek şekilde dosyayı;

# Custom static IP address for eth0.
interface eth0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

# Custom static IP address for wlan0.
interface wlan0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Son olarak wpa_supplicant.confdosyanızı, wifi ağı için ssid ve parola içerecek şekilde düzenlemek istersiniz . Muhtemelen biraz böyle görünmeli;

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="homenetwork"
    psk="h0mepassw0rd"
}

Umarım bu örtbas eder. Varsayımlarımın yanlış olduğu konusunda gerçek bir ihtimal var, ancak son zamanlarda benzer bir öğrenme eğrisinden geçtiğimden beri verilerin yararlı olacağını umuyorum.

Aslında bunu yazdım ve ücretsiz e- kitaptaki bilgileri alabilirsiniz. Leanpub'dan yeteri kadar Raspberry Pi .


1
Çalışma Her iki arabirimi de .eg ile getirirsek, eğer eth0 'ı dışardan dışa ve dışardan ssh çalışmıyor. Eğer arayüzlerden birini dhcp'ye koyarsak bütün işleri.
giuseppe,

Umarım birileri sorunuza
d3noob

Birkaç nedenden dolayı benim için işe yaramadı. Birincisi, sorunun genel olduğu ve cevapların jessie için olması durumunda, bu uzun zaman önceydi ve çoğunlukla uzamak için harekete geçtik, ve sadece bu hafta daha yoğun geçti. Arabirimler dosyamda bahsettiğiniz hiçbir şey yok.
Brian Bulkowski

6

Öncelik, init veya systemd konfigürasyonunuz ile ilgilidir. Dhcp ile ilgili olarak: statik veya manuel olarak yapılandırılmış bir arayüze sahipseniz ve dhcp daha sonra bir adres talep etmeye başlarsa, zaten sahip olduğunuz ayarları geçersiz kılar. Debian'da, dhcp, dhcp'yi belirttiğiniz arabirimler için başlatılır, yalnızca kendi başına değil. Beklenmeyen bir davranışınız varsa, arka planda NetworkManager gibi çalışan farklı bir sisteminiz olabilir.

Puan başına:

  1. hiç dhcpcd.conf kullanmayın, bırakın.
  2. Bir hot0 fişine izin veren bir eth0 ürününüz yok.
  3. Eğer ağ kurduktan sonra dhcpcd başlatılırsa ve bir arayüzü ele geçirecek şekilde ayarladıysanız, olacaktır.
  4. Bu hizmetleri hangi sırayla başlattığınızı kontrol edin.

4

Kablosuz statik IP çalıştı, ancak eth0 çalışmadı.

eth0O listelenmeyen çünkü arayüz muhtemelen sistem açılışta yetişmiş değildi autohattı. Kimden man interfaces:

"Auto" kelimesi ile başlayan satırlar, ifup -a seçeneğiyle çalıştırıldığında ortaya çıkacak fiziksel arayüzleri tanımlamak için kullanılır. (Bu seçenek sistem önyükleme komut dosyaları tarafından kullanılır.) Fiziksel arabirim adları aynı satırdaki "auto" kelimesini izlemelidir. Birden fazla "otomatik" stanz olabilir. ifup, adlandırılmış arayüzleri listelenen sıraya göre getirir.

Bu satırı değiştir:

auto lo

Buna:

auto lo eth0

Ve sonra çalışması gerekir.

Diğer cevaplar diğer sorularınızı da ele aldı. Umarım bu yardımcı olur.


2
Cevap bu. OP'nin başka sorunları da var, ama benim gibi statik bilgileri ekleyen diğer rehberleri izleyen benim gibi insanlar için /etc/network/interfaces, eksik parça tam olarak auto eth0ağ oluşturuyor ve yeniden başlatılıyor!
Adam Kaplan

2

Ağ kurulumu hakkında ayrıntılı bilgi için bkz . Ağ iletişimi / WiFi / Statik IP'yi nasıl ayarlarım?

İsterseniz eski /etc/network/interfacesyöntemi kullanabilirsiniz . Ne yazık ki listelediğiniz dosya birçok hata içeriyor. Standart konfigürasyonlardan birine bağlı kalmalısınız.

Gerçekten kullanmak istiyorsanız /etc/network/interfaces (varsayılan dışında) devre dışı bırakmanız gerekir dhcpcd.

Bir açıklaması dhcpcdbu Forum için çok karmaşık, ancak https://wiki.archlinux.org/index.php/dhcpcd bağlantısı iyi bir özet sunuyor.


2

İlk önce /etc/network/interfacesdosyayı orijinal sürümüne geri getirin ...

# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult `/etc/dhcpcd.conf` and `man dhcpcd.conf`

# Include files from `/etc/network/interfaces.d`:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Ardından, /etc/dhcpcd.confdosyadaki değişikliklerinizi basit tutun ve yalnızca kablosuz ...

(dosyanın altında ...)

nohook lookup-hostname

interface wlan0
    static ip_address=192.168.0.53/24
    static routers=192.168.0.1
    static domain_name_servers=8.8.8.8

/etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="The SSID of your Router"
    psk="daPassword"
    scan_ssid=1
    key_mgmt=WPA-PSK
}

0

Raspbian Jessie'nin (12/30/2016) en son sürümünün arayüzler dosyasının ikinci satırında bir kusur içerdiğini unutmayın. İkinci satır, satırı yorum olarak atamak için baştaki # sembolünden eksik. Bu sorun, arabirimler dosyasının sistem tarafından okunamıyor olmasına neden olur. Bu hatayı bulmadan önce wifi çalışmak için çalışıyorum birkaç saat geçirdim.

Düzeltmek için, satırın başına # sembolünü ekleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.