如何配置树莓派以获得静态IP而不自动分配DHCP IP?

如何配置树莓派以获得静态IP而不自动分配DHCP IP?

我的网络中有一个树莓派,所有客户端都会自动分配一个 DHCP IP 地址。 DHCP-IP 为“192.168.0.X”,子网掩码为“255.255.255.0”

但对于我的树莓派(和其他设备),我想在另一个网络中使用固定的 IP 地址。所需 IP“192.168.XY”,子网掩码“255.255.0.0”

树莓派应该获得 IP“192.168.20.104”,子网掩码“255.255.0.0”。

我的“/etc/network/interfaces”看起来像

auto lo
iface lo inet loopback

iface eth0 inet static
  address 192.168.20.104
  netmask 255.255.0.0
  gateway 192.168.0.252

到目前为止,一切正常,我的树莓派获得了地址“192.168.20.104”,但它也获得了分配的 DHCP 地址(在我的例子中为“192.168.0.173”)。

“sudo ip addr show”的输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:37:1d:30 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.104/16 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.0.173/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe37:1d30/64 scope link
       valid_lft forever preferred_lft forever

但我希望覆盆子用我的仅静态地址。应该有无 DHCP地址。

我的“interfaces”文件中有错误吗?有人可以解释为什么我配置了静态地址却获得了 DHCP 地址吗?

我必须在配置文件中更改哪些内容才能获得 DHCP 地址?

答案1

您正在运行的dhcpcd服务无论您的配置如何,都会为您提供 IP 地址。

在我看来,你甚至不应该像dhclient通常那样安装它。 (我假设这里是 Debian,也许我有点偏离)您可能是替代安装的,所以我们不会卸载它,以防将来您定义启用 dhcp 的接口。

因此,我们将把它从启动配置中删除,并停止它。

apt-get install chkconfig
chkconfig dhcpcd off
service dhcpcd stop

您可以将 /etc/network/interfaces 更改为:

auto eth0
iface eth0 inet static
    address 192.168.20.104
    netmask 255.255.0.0
    network 192.168.0.0
    broadcast 192.168.255.255
    gateway 192.168.0.252

然后做一个:

sudo service networking restart

答案2

我找到了另一个解决方案,只需修改接口文件:

只需在文件末尾添加以下行:

iface default inet dhcp

相关内容