我在/ 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?


评论

很好的问题,我想问#raspbian问题。作为多年的Un * x管理员,我发现这种根本性的变化令人困惑,而绝对缺乏文档。经过一个小时的反复试验,我碰巧发现了这个问题。我希望能找到raspberrypi.stackexchange.com/questions/37920/…早些时候

我认为应该在评论中问到eth0到底是怎么失败的? ip addr输出和systemctl status网络输出是什么?因为如果OP尝试通过ssh并使用eth0 ip进行ssh转换,那么修改后的eth0 ip将被分配为eth0的辅助ip,以保持正在进行的ssh会话不中断,因此我尝试将eth0 ip更改为OP提到但通过wlan0进行切入,并且它比dhcp起作用,并且优先于dhcp,在我的情况下,它是Stretch上的dhclient,但是通过eth0进行切入,前面提到的情况发生了。

是的,dhcpcd也已经过测试,没有人会优先于/ etc / network / interfaces设置。

#1 楼

该问题的所有答案都有其优点,但是我认为在一定范围内可以直接解决您的特定问题。



何时使用哪个文件?



随着介绍的开始,我将假设您目前(在更广泛的Raspberry Pi社区中)正遭受普遍的困惑。 Debian'Jessie'代替Debian'Wheezy'的图片。此更改使大量教程过时且充其量也令人困惑。

问题的答案是,使用Wheezy时,出于设置网络接口的目的而对/etc/network/interfaces文件进行更改是正常的(见图)。使用Jessie时,有必要对'/etc/dhcpcd.conf'进行更改。但是,如果要更改无线连接(wlan0),则还需要对/etc/wpa_supplicant/wpa_supplicant.conf进行更改,这是在其中添加网络ssid和密码的原因。



为什么wifi可以与/ etc / network / interfaces一起使用,但是eth0不能使用吗?



由于缺少一些信息,我不确定wifi连接如何工作从您的文件(至少为ssid)。正如janos所指出的那样,在wlan0详细信息之后出现的etho连接详细信息的优先级可能使它们可操作(因为在读取文件的过程中它们会最后被看到)。

dhcpcd是否比/ etc / network / interface具有优先级?




不,它们是不同的,旨在根据Jessie的不同目的进行设计。为了以一种非常简单的方式使用Jessie,您几乎可以忽略interfaces文件,并使用dhcpcd.confwpa_supplicant.conf




如何检查哪个服务具有优先权或点什么?哪个服务使用/ etc / network / interface?



再次,我将假设该问题更多是“我使用哪个文件,是否必须使用优先级高的文件?”题。答案是,随着从Wheezy到Jessie的改变(从更广泛的意义上讲,随着systemd的采用),“ dhcpcd.conf”和“ wpa_supplicant.conf”的配置将成为标准配置,而“ interfaces”文件将被保留到自己的设备。

这对您意味着什么?

(再次)假设您正在尝试建立硬线(eth0)和无线(wlan0)连接使用静态IP地址,您希望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的Just Just Raspberry Pi。

评论


没事如果我们通过两个接口来启动两个接口,例如,将ifconfig eth0向上ping到外部并从外部ssh无法正常工作。如果我们将其中一个接口放入dhcp,则一切正常。

–朱塞佩
16-10-7在9:55

希望有人能够协助您解决问题

– d3noob
16-10-7在18:58

对于我没有用,有几个原因。首先,这个问题是笼统的,如果答案是杰西,那是很久以前的事了,我们已经大范围地进行了扩展,仅在本周,它就破灭了。我的接口文件没有您提到的内容。

–布赖恩·博尔科夫斯基(Brian Bulkowski)
19年7月11日在19:52

#2 楼

优先级与您的init或systemd配置有关。关于dhcp:如果您具有静态或手动配置的接口,并且dhcp随后开始请求地址,它将覆盖您已经拥有的地址。在Debian上,为指定了dhcp的接口启动了dhcp,而不仅仅是靠魔术本身。如果您有意外的行为,则可能在后台运行了另一个系统,例如NetworkManager。
,您没有eth0允许热插拔线路。
如果dhcpcd在网络连接后启动,并且您已将其设置为接管接口,它将进行连接。
检查启动这些服务的顺序。


#3 楼


无线静态IP有效,但是eth0无效。从eth0开始:


以“ auto”开头的行用于标识在使用-a选项运行ifup时要启动的物理接口。 (系统引导脚本使用此选项。)物理接口名称应在同一行上的单词“ auto”之后。可以有多个“自动”节。 ifup以列出的顺序启动命名接口。


更改此行:

auto lo


此:

auto lo eth0


然后它应该起作用。

其他答案已经解决了您的其他问题。希望对您有所帮助。

评论


这就是答案。 OP也有其他问题,但是对于像我这样遵循其他指南的人,这些指南仅向/ etc / network / interfaces添加了静态信息,所以缺少的只是auto eth0并重新启动网络或重新启动!

–亚当·卡普兰(Adam Kaplan)
16年7月17日在22:14



#4 楼

有关如何设置网络的详细信息,请参见如何设置网络/ WiFi /静态IP。

如果需要,可以使用旧的/etc/network/interfaces方法。
不幸的是,您列出的文件包含许多错误。您应该坚持使用一种标准配置。

如果您确实要使用/etc/network/interfaces(默认设置除外),则需要禁用dhcpcd

dhcpcd的说明对于这个论坛来说太复杂了,但是链接
https://wiki.archlinux.org/index.php/dhcpcd提供了很好的摘要。

#5 楼

首先,将/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
}


#6 楼

请注意,最新版本的Raspbian Jessie(12/30/2016)在interfaces文件的第二行中包含一个缺陷。第二行缺少开头的#符号,以将该行指定为注释。此问题导致接口文件无法被系统读取。在发现此错误之前,我花了很多时间试图使wifi正常工作。

要解决此问题,只需在行首添加#符号即可。