私はこの構成を/ 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
そしてそれはうまくいった。私は混乱していて、ここにいくつかの質問があります:
どのファイルをいつ使用しますか?
なぜwifiは/ etc/network/interfacesで動作しましたが、eth0は動作しませんでしたか?
dhcpcdは/ etc/network/interfaceよりも何とか優先されますか?
どのサービスが優先または何かを持っているかを確認する方法は?そして、どのサービスが使用しますか/ etc/network/interface?
Wi-Fiが/ etc/network/interfacesで機能したのに、eth0が機能しなかったのはなぜですか?
ネットワークインターフェイス名からすると、RaspbianJessie以前について話していると思います。これらはStretch以降では異なります。
起動時に開始する(auto eth0
を使用)か、ネットワークハードウェアが検出されるたびに開始する(allow-hotplug eth0
を使用)ように指示していません。
これらの行のどちらも/etc/network/interfaces
に存在しない場合、インターフェースeth0
は、明示的な手動ifup eth0
コマンドが使用された場合にのみ開始されます。
Dhcpcdは/ etc/network/interfaceよりもどういうわけか優先されますか?
Debianおよび関連するディストリビューションでは、/etc/network/interfaces
は通常、ネットワークインターフェイスを手動で構成するための主要な場所となることを目的としています。そこにリストされていないインターフェースは、インストールされている場合、NetworkManager
によって制御されます。
ただし、dhcpcd5
のデフォルトの起動には、作業可能なインターフェイスの確定リストが含まれていないようで(ホットプラグを可能にするため)、トップレベルを回避するために使用できるようです。代わりに/etc/network/interfaces
で構成を提供することによる/etc/dhcpcd.conf
の制御。
Raspbian Stretchは、実際にはそれを標準的な方法として使用しています。
私は特にRaspbianに精通していませんが、彼らの解決策は理にかなっていると思います。最小限のリソースを持つシステムでは、GUI/TUI構成ツールが解析できる必要があるさまざまな構文の数を最小限に抑えたいと思うかもしれません。 。 dhcpd.conf
のような構文が他の構成ファイルですでに使用されている場合、それを使用して標準化することを決定すると、構成パーサーコンポーネントをより効率的に再利用できる可能性があります。
どのファイルをいつ使用しますか?
通常のDebianシステムでは、主に/etc/network/interfaces
を使用し、/etc/dhcpcd.conf
では達成できないことに対してのみ/etc/network/interfaces
を使用することをお勧めします。要求/受信するDHCPオプションを追加または操作します。
ただし、Raspbian Stretch以降の場合は、/etc/dhcpcd.conf
が推奨ファイルのようです。
1)質問への回答に基づいて 「ネットワーク/ WiFi /静的IPを設定するにはどうすればよいですか」 :dhcpcdを実行している場合は、dhcpcd.confを編集します。dhcpcdを使用する場合の/ etc/network/interfacesの適切な構成については、 link を参照してください。
2)/ etc/network/interfacesの変更が、eth0ではなくwifiインターフェースに影響を与えた理由は不明です。いくつかのサブシステムが関係しているので、デバッグするのは負担になる可能性があります。
3)私が知る限り、dhcpcdは/ etc/network/interfacesを効果的に無視します。
4)dhcpcdまたは/ etc/network/interfacesのどちらも優先されるとは思いません。むしろ、衝突が発生し、予期しない動作が発生します。 ifupdownは/ etc/network/interfacesを使用し、(IIRC)NetworkManagerは「手動」および「静的」エントリを尊重します。/lib/udevのクイックスキャンは、udevがifupを直接呼び出すか、systemd ifup @ .interfacesがifupを呼び出すことを示しています。
私の意見では、任意のインターフェースで静的アドレスを使用する場合、dhcpcdが古いifupdownメソッドよりも優れている点は明らかではありません。コマンドSudo apt-get remove dhcpcd5
を使用して予測できない動作を解決しました
@ Rui F Riberiro's eth0とwlan0のアドレスが同じサブネットにあることについてのコメント:Linuxは、2つのインターフェースが同じサブネットにあるかどうかを気にしません。ほとんどのホームルーター/アクセスポイントは有線LANと無線LANをブリッジするため、構成は機能する可能性があります。 Linuxはルーティングテーブルの最初のデフォルトルートを使用するため、イーサネットが接続されている場合でも、コンピューターがWi-Fiインターフェイスを使用する場合があることに注意してください。