/etc/dhcpcd.confと/ etc / network / interfacesの違いは?


63

/ etc / network / interfacesにこの設定があります

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

ワイヤレスの静的IPは機能しましたが、eth0は機能しませんでした。

そこで、/etc / dhcpcd.confで設定をしようとしました:

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

そしてそれは働いた。私は混乱しており、ここにいくつかの質問があります:

  1. どのファイルをいつ使用するか?

  2. なぜwifiは/ etc / network / interfacesで機能したのに、eth0は機能しなかったのですか?

  3. dhcpcdのは何とかより優先持ち の/ etc /ネットワーク/インタフェースを

  4. どのサービスが優先または何らかのサービスを持っているかを確認する方法は?また、どのサービスが/ etc / network / interfaceを使用していますか?


4
すばらしい質問と私が尋ねようとしていたこと#raspbian。長年のUn * x管理者として、この根本的な変更の困惑は、文書の絶対的な不足によって複雑になっていることに気付きました。1時間試行錯誤を繰り返した結果、この質問を見つけました。私はraspberrypi.stackexchange.com/questions/37920/を見つけたと思います… 以前
Alastair McCormack

質問は、eth0がどのくらい正確に失敗したかというコメントで尋ねられるべきだったと思う。ip addr出力とsystemctl status networking出力は何ですか?OPがssh経由でeth0 ipを使用してsshを実行しようとした場合、変更されたeth0 ipがeth0にセカンダリIPとして割り当てられ、進行中のsshセッションが中断されないようにするため、eth0 ipをOPとして変更しようとしました言及されていますが、wlan0を介してsshし、dhcpより優先して動作します。私の場合は、Stretchのdhclientでしたが、eth0を介してsshします。前述のケースが発生します。
パベルサイカット

はい、dhcpcdもテストされており、/etc/network/interfaces設定より優先されるものはありません。
パベルセイカット

回答:


65

この質問へのすべての答えには良い点がありますが、特定の質問に直接対処するための範囲があると思います。

  1. どのファイルをいつ使用するか?

Debian 'Wheezy'の代わりにDebian ' Jessie 'を導入することで、現在(一般的なRaspberry Piコミュニティで)起こっている一般的な混乱に苦しんでいると仮定します。この変更により、多くのチュートリアルが最悪の時代遅れになり、混乱を招きます。

質問への答えは、Wheezyを使用する場合/etc/network/interfaces、ネットワークインターフェイスを設定するためにファイルを変更するのが普通だったということです(図を参照)。Jessieを使用する場合、「/ etc / dhcpcd.conf」を変更する必要があります。ただし、ワイヤレス接続(wlan0)を変更する/etc/wpa_supplicant/wpa_supplicant.conf場合は、ネットワークssidとパスワードを追加する場所も変更する必要があります。

  1. なぜwifiは/ etc / network / interfacesで機能したのに、eth0は機能しなかったのですか?

ファイルから情報が欠落しているため(少なくともssid)、wifi接続がどのように機能したのかわかりません。janosが指摘したように、wlan0の詳細の後に来るetho接続の詳細の優先度は、おそらくファイルを読み取るプロセスによって最後に表示されるため、それらを有効にした可能性があります。

  1. dhcpcdは/ etc / network / interfaceよりも何らかの優先順位がありますか?

いいえ、それらは異なり、ジェシーの下で異なる目的に合うように設計されています。あなたはほとんど無視することができますかなり単純な方法で、ジェシーを使用する目的のためにinterfacesファイルをしてと協力dhcpcd.confしてwpa_supplicant.conf

  1. どのサービスが優先または何らかのサービスを持っているかを確認する方法は?また、どのサービスが/ etc / network / interfaceを使用していますか?

繰り返しますが、質問は「どのファイルを使用するのか、優先するファイルを使用する必要があるの」という質問であると仮定します。' 質問。答えは、WheezyからJessieへの変更(およびsystemdの採用により広い意味で)では、「dhcpcd.conf」と「wpa_supplicant.conf」の設定が標準になり、「interfaces」ファイルが残るということです。それ自身のデバイスに。

これはあなたにとって何を意味しますか?

(もう一度)静的IPアドレスを使用して有線(eth0)および無線(wlan0)接続をセットアップしようとしていると仮定すると、interfacesファイルは最初にインストールされたときのデフォルトになります。

# 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

あなたは、あなたの望むdhcpcd.confインタフェースおよび追加エントリの両方のために、ファイルの末尾に接続の詳細は、おそらくビットのようになり含めるファイルを。

# 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

最後wpa_supplicant.confに、wifiネットワークのssidとパスワードが含まれるようにファイルを編集します。おそらく次のようになります。

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

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

これでカバーされることを願っています。私の仮定が間違っている可能性は非常にありますが、最近同じような学習曲線を経験したので、データが役立つことを望んでいます。

実際にこれを書いたので、無料の電子ブックLeanpubからちょうど十分なRaspberry Piで情報を入手できます。


1
動作しません。両方のインターフェースを.egで起動した場合、ifconfig eth0 up ping to outside and ssh from outsideが機能しません。インターフェイスの1つをdhcpに入れると、すべて機能します。
ジュゼッペ

誰かがあなたの質問
-d3noob

いくつかの理由で、私にとってはうまくいきませんでした。まず、質問は一般的なものであり、答えがジェシーに対するものである場合、それはかなり前のことであり、私たちはほとんどストレッチに移りました。私のインターフェースファイルには、あなたが言及しているものは何もありません。
ブライアン・バルコウスキー

6

優先順位は、initまたはsystemdの構成に関係しています。dhcpに関して:静的または手動で構成されたインターフェイスがあり、その後dhcpがアドレスの要求を開始すると、すでに持っているものが上書きされます。Debianでは、dhcpは、魔法のように単独でではなく、dhcpを指定したインターフェイスに対して開始されます。予期しない動作が発生した場合、NetworkManagerなどの別のシステムがバックグラウンドで実行されている可能性があります。

ポイントごと:

  1. dhcpcd.confを使用しないでください。そのままにしておきます。
  2. eth0許可ホットプラグ回線がありません。
  3. ネットワーキング後にdhcpcdが起動され、インターフェイスを引き継ぐように設定されている場合は、起動します。
  4. これらのサービスを開始する順序を確認してください。

4

ワイヤレスの静的IPは機能しましたが、eth0は機能しませんでした。

eth0それは上でリストされていないため、インターフェイスはおそらく、システム起動時に育っていなかったautoライン。からman interfaces

「auto」という単語で始まる行は、-aオプションを指定してifupを実行したときに起動する物理インターフェイスを識別するために使用されます。(このオプションは、システムブートスクリプトで使用されます。)物理インターフェイス名は、同じ行の「auto」という語に続く必要があります。複数の「自動」スタンザが存在する場合があります。ifupは、指定されたインターフェースをリストされている順に起動します。

この行を変更します。

auto lo

これに:

auto lo eth0

そして、それは動作するはずです。

他の回答は、他の質問に対応しています。これがお役に立てば幸いです。


2
これが答えです。OPにも他の問題がありますが、静的情報を追加した他のガイドに従っている私のような人々にとって/etc/network/interfaces、欠落している部分はちょうどでauto eth0、ネットワークを再起動するか再起動します!
アダムカプラン

2

ネットワークの設定方法の詳細については、「ネットワーク/ WiFi /静的IPを設定するにはどうすればよいですか」を参照してください。

/etc/network/interfaces必要に応じて、古い方法を使用できます。残念ながら、リストしたファイルには多くのエラーが含まれています。標準構成のいずれかに固執する必要があります。

/etc/network/interfaces (デフォルト以外の)本当に使用したい場合は、無効にする必要がありますdhcpcd

dhcpcdこのフォーラムには説明が複雑すぎますが、https://wiki.archlinux.org/index.php/dhcpcdのリンクから 概要を確認できます。


2

まず、/etc/network/interfacesファイルを元のバージョンに戻します...

# 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

次に、/etc/dhcpcd.confファイルへの変更をシンプルでワイヤレスのみに保つ...

(ファイルの下部に...)

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の最新バージョン(12/30/2016)には、interfacesファイルの2行目に欠陥があることに注意してください。2行目には、行をコメントとして指定するための先頭の#記号がありません。この問題により、interfacesファイルがシステムで読み取れなくなります。このエラーを見つけるまで、Wi-Fiを機能させるために何時間も費やしました。

これを修正するには、行の先頭に#記号を追加するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.