題:
/etc/dhcpcd.conf和/ etc / network / interfaces之間的區別?
CuriousGuy
2015-12-20 20:01:39 UTC
view on stackexchange narkive permalink

我在 / etc / network / interfaces 中具有此配置:

  auto loiface lo inet loopbackallow-hotplug wlan0iface wlan0 inet manual wpa-conf / etc / wpa_supplicant /wpa_supplicant.confallow-hotplug wlan1iface wlan1 inet手冊wpa-conf /etc/wpa_supplicant/wpa_supplicant.confallow-hotplug wlan0#iface wlan0 inet dhcp iface wlan0 inet靜態地址192.168.0.110網絡掩碼255.255.255.0網絡192.168.0.1網關192.168.0.1 -conf /etc/wpa_supplicant/wpa_supplicant.conf#iface默認inet dhcpiface eth0 inet靜態地址192.168.0.115網絡掩碼255.255.255.0網絡192.168.0.1網關192.168.0.1  

無線靜態IP工作正常,但eth0沒有。

所以我嘗試在 /etc/dhcpcd.conf 中進行配置:

 接口eth0static ip_address = 192.168.0.115 / 24static路由器= 192.168.0.1static domain_name_servers = 192.168.0.1  

就可以了。我很困惑,這裡有幾個問題:

  1. 何時使用哪個文件?

  2. 為什麼wifi與一起使用/ etc / network / interfaces ,但是eth0不是嗎?

  3. dhcpcd 是否比 / etc / network / interface 具有更高的優先級?

  4. 如何檢查哪個服務具有優先級或優先級?哪個服務使用 / etc / network / interface

  5. ol>
很好的問題,我想在#raspbian上問些什麼。作為多年的Un * x管理員,我發現這種根本性的變化令人困惑,而絕對缺乏文檔。經過一個小時的反複試驗,我碰巧發現了這個問題。我希望我早些時候找到了http://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip
我認為應該在評論中詢問eth0到底是怎麼失敗的? ip addr輸出和systemctl statusnetworking輸出是什麼?因為如果OP嘗試通過ssh並使用eth0 ip進行ssh轉換,那麼修改後的eth0 ip將被分配為eth0的輔助ip,以保持正在進行的ssh會話不間斷,因此我嘗試將eth0 ip更改為OP提到但通過wlan0進行切入,並且它比dhcp起作用,並且優先於dhcp,在我的情況下,它是Stretch上的dhclient,但通過eth0進行切入,發生了前面提到的情況。
是的,dhcpcd也已經過測試,沒有哪個優先於`​​/ etc / network / interfaces'設置。
六 答案:
d3noob
2016-01-16 11:37:57 UTC
view on stackexchange narkive permalink

此問題的所有答案都有其優點,但我認為在一定範圍內可以直接解決您的特定問題。

  1. 何時使用哪個文件?
  2. ol>

我將假設您正受到目前(在更廣泛的Raspberry Pi社區中)正在出現的普遍困惑的困擾。 Debian' Jessie'代替Debian'Wheezy'。此更改使大量教程過時且充其量也令人困惑。

這個問題的答案是,在使用Wheezy時,出於設置網絡接口的目的而對 / etc / network / interfaces 文件進行更改是正常的(參見圖)。使用Jessie時,有必要對'/etc/dhcpcd.conf'進行更改。但是,如果更改無線連接( wlan0 ),則還需要更改 /etc/wpa_supplicant/wpa_supplicant.conf ,在該位置添加網絡ssid和密碼。

  1. 為什麼wifi可以與/ etc / network / interfaces一起使用,而eth0不能使用?
  2. ol>

我不確定wifi連接的工作方式,因為文件中缺少某些信息(至少有ssid)。正如janos所指出的那樣,在wlan0詳細信息之後出現的etho連接詳細信息的優先級可能使它們可操作(因為在讀取文件的過程中它們將在最後被看到)。 “>

  • dhcpcd是否比/ etc / network / interface具有優先級?
  • ol>

    不,它們是不同的,旨在適應Jessie下的不同目的。為了以一種非常簡單的方式使用Jessie,您幾乎可以忽略 interfaces 文件,並使用 dhcpcd.conf wpa_supplicant.conf

    1. 如何檢查哪個服務具有優先級或優先級?以及哪個服務使用/ etc / network / interface?
    2. ol>

    我將再次假設該問題更多是'哪個文件使用,如果我必須使用優先級高的那個?'問題。答案是,隨著從Wheezy到Jessie的改變(從更廣泛的意義上講,通過採用 systemd),“ dhcpcd.conf”和“ wpa_supplicant.conf”的配置將成為規範, “接口”文件將留給它自己的設備。

    這對您意味著什麼?

    好(再次)假設您正在嘗試使用靜態方式建立硬連接(eth0)和無線(wlan0)連接IP地址,您希望您的 interfaces 文件是最初安裝時的默認文件;

     #請注意,此文件是為與dhcpcd#一起使用而編寫的對於靜態IP,請查閱/etc/dhcpcd.conf和'man dhcpcd.conf'#包括來自/etc/network/interfaces.d的文件:d-source-directory /etc/network/interfaces.dauto loiface lo inet loopbackiface eth0 inet manualallow- hotplug wlan0iface wlan0 inet手冊wpa-conf /etc/wpa_supplicant/wpa_supplicant.confallow-hotplug wlan1iface wlan1 inet手冊wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf 

    您想要您的 dhcpcd.conf 文件以在文件末尾包含兩個接口的連接詳細信息,其他條目可能看起來像這樣;

     #自定義靜態IP地址對於eth0.interface eth0static ip_address = 192.168.0.115 / 24static路由器= 192.168.0.1static domain_name_servers = 192.168.0.1#wlan0.interface的自定義靜態IP地址wlan0static ip_address = 192.168.0.115 / 24static路由器= 192.168.0.1static domain_name_servers = 192.168.0.1  

    最後,您要編輯 wpa_supplicant.conf 文件,使其包含wifi網絡的ssid和密碼。它可能看起來應該像這樣;

      ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdevupdate_config = 1network = {ssid =“ homenetwork” psk =“ h0mepassw0rd”}  

    我希望可以掩蓋它。我的假設很可能是不正確的,但是由於我最近經歷了類似的學習過程,所以我希望數據有用。

    我實際上已經寫好了,您可以Leanpub提供的免費電子書就足夠了Raspberry Pi中的信息。

    沒事如果我們使用兩個接口來啟動兩個接口,例如,將ifconfig eth0向上ping到外部並從外部ssh無法正常工作。如果我們將其中一個接口放入dhcp,則一切正常。
    希望有人能夠幫助您解決[問題](http://raspberrypi.stackexchange.com/questions/56018/two-network-interfaces-not-work)
    對我沒有用,有幾個原因。首先,這個問題是籠統的,如果答案是傑西,那是很久以前的事了,我們已經大範圍地拉長了,而本週真是令人沮喪。我的接口文件沒有您提到的內容。
    John Keates
    2015-12-20 23:08:43 UTC
    view on stackexchange narkive permalink

    優先級與您的init或systemd配置有關。關於dhcp:如果您具有sstatic或手動配置的接口,並且dhcp之後開始請求地址,它將覆蓋您已有的地址。在Debian上,為指定了dhcp的接口啟動dhcp,而不僅僅是靠魔術本身。如果您有意外的行為,則可能在後台運行了另一個系統,例如NetworkManager。

    每點:

    1. 完全不要使用dhcpcd.conf,將其保留
    2. 您沒有eth0允許熱插拔線路。
    3. 如果dhcpcd在聯網後啟動,並且您已將其設置為接管接口,那麼它將。
    4. >
    5. 檢查啟動這些服務的順序。
    6. ol>
    janos
    2015-12-21 06:07:47 UTC
    view on stackexchange narkive permalink

    無線靜態IP有效,但eth0無效。

    eth0 接口可能在系統啟動時未啟動,因為未在 auto 行上列出。在 man interfaces 中:

    以單詞“ auto”開頭的行用於標識在使用-a選項運行ifup時要啟動的物理接口。 (系統引導腳本使用此選項。)物理接口名稱應在同一行上的單詞“ auto”之後。可以有多個“自動”節。 ifup以列出的順序啟動命名接口。

    更改此行:

     自動定位 

    為此:

      auto lo eth0  

    然後它應該起作用。

    其他答案已經解決了您的其他問題。希望對您有所幫助。

    這就是答案。 OP也有其他問題,但是對於像我這樣遵循其他指南的人,這些指南只是將靜態信息添加到了“ / etc / network / interfaces”中,而缺少的只是“ auto eth0”並重新啟動網絡或重啟!
    Greg Oij
    2016-11-29 10:34:47 UTC
    view on stackexchange narkive permalink

    首先,將 / etc / network / interfaces 文件恢復為原始版本...

      #ifup(8)使用的interfaces(5)文件)和ifdown(8)#請注意,此文件是為與dhcpcd一起使用而編寫的#對於靜態IP,請參考`/ etc / dhcpcd.conf`和`man dhcpcd.conf`#包含`/ etc / network /中的文件interfaces.d`:源目錄/etc/network/interfaces.dauto loiface lo inet loopbackiface eth0 inet manualallow-hotplug wlan0iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.confallow-hotplug wlan1iface wlan1 inet手冊wpa-conf / etc / wpa_supplicant / wpa_supplicant.conf  

    然後,保持對 /etc/dhcpcd.conf 文件的更改簡單且僅用於無線...

    (位於文件底部...)

      nohook查找主機名接口wlan0靜態ip_address = 192.168.0.53 / 24靜態路由器= 192.168.0.1靜態domain_name_servers = 8.8.8.8  

    /etc/wpa_supplicant/wpa_supplicant.conf

      ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdevupdate_config = 1country = USnetwork = {ssid =“路由器的SSID” psk =“ daPassword” scan_ssid = 1 key_mgmt = WPA-PSK}  
    Milliways
    2015-12-21 04:25:08 UTC
    view on stackexchange narkive permalink

    有關如何設置網絡的詳細信息,請參見我如何設置網絡/ WiFi /靜態IP

    您可以使用較舊的 / etc / network / interfaces 方法。不幸的是,列出的文件包含許多錯誤。您應該堅持使用一種標準配置。

    如果您確實要使用 / etc / network / interfaces (默認設置除外)​​,則需要禁用 dhcpcd

    對於本論壇來說, dhcpcd 的解釋太複雜了,但是鏈接 https://wiki.archlinux.org/index.php / dhcpcd提供了很好的摘要。

    EVictory
    2017-01-16 11:53:44 UTC
    view on stackexchange narkive permalink

    請注意,最新版本的Raspbian Jessie(2016年12月30日)在interfaces文件的第二行中包含一個缺陷。第二行缺少開頭的#符號,以將該行指定為註釋。此問題導致接口文件無法被系統讀取。在發現此錯誤之前,我花了很多時間試圖使wifi正常工作。

    要解決此問題,只需在行首添加#符號即可。



    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
    Loading...