Debian Buster 无法设置静态 IP

Debian Buster 无法设置静态 IP

我有一台基于 NPI iMX6ULL ARM 的单板计算机,运行 Debian Buster。它有 2 个网络端口,分别列出ifconfigeth0eth1

它似乎忽略了我的网络配置/etc/network/interfaces

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet dhcp

iface eth1 inet static
  address 192.168.1.254
  netmask 255.255.255.0

iface usb0 inet static
    address 192.168.7.2
    netmask 255.255.255.252
    network 192.168.7.0
    gateway 192.168.7.1

启动上述配置并eth0连接到 dhcp 服务器后,ifconfig报告:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.4.10.131  netmask 255.255.192.0  broadcast 10.4.63.255
        inet6 fe80::d489:7cff:feec:e09e  prefixlen 64  scopeid 0x20<link>
        ether d6:89:7c:ec:e0:9e  txqueuelen 1000  (Ethernet)
        RX packets 478  bytes 42931 (41.9 KiB)
        RX errors 0  dropped 29  overruns 0  frame 0
        TX packets 30  bytes 2883 (2.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC>  mtu 1500
        ether d6:89:7c:ec:e0:9d  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

同样,在启动上述配置并eth1连接到 dhcp 服务器后,ifconfig会报告:

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether d6:89:7c:ec:e0:9e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 10.4.11.126  netmask 255.255.192.0  broadcast 10.4.63.255
        inet6 fe80::d489:7cff:feec:e09d  prefixlen 64  scopeid 0x20<link>
        ether d6:89:7c:ec:e0:9d  txqueuelen 1000  (Ethernet)
        RX packets 1234  bytes 118390 (115.6 KiB)
        RX errors 0  dropped 58  overruns 0  frame 0
        TX packets 38  bytes 3547 (3.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果我这样做,sudo ifdown eth1它会报告:

ifdown: interface eth1 not configured

sudo ifup eth1出现了:

debian@npi:~$ sudo ifup eth1
debian@npi:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.4.10.131  netmask 255.255.192.0  broadcast 10.4.63.255
        inet6 fe80::d489:7cff:feec:e09e  prefixlen 64  scopeid 0x20<link>
        ether d6:89:7c:ec:e0:9e  txqueuelen 1000  (Ethernet)
        RX packets 16846  bytes 1401257 (1.3 MiB)
        RX errors 0  dropped 856  overruns 0  frame 0
        TX packets 65  bytes 4551 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC>  mtu 1500
        inet 192.168.1.254  netmask 255.255.255.0  broadcast 192.168.1.255
        ether d6:89:7c:ec:e0:9d  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

什么在启动时控制我的网络配置。我怎样才能知道?

我确实发现了一些关于我的 MAC 地址问题的 Google 搜索,但这两个接口都会发生这种情况。我也尝试更改我的 MAC 地址,但没有任何改变。

答案1

感谢 Seamus 为我指明了正确的方向。关键是我正在使用的图像基于 BeagleBone 图像。

之前的问题是connman控制网络端口networkd。在一台设备上,我能够connman使用删除apt。之后,我的配置/etc/systemd/network/interfaces就被正确应用了。

我的研究表明这connman是未来的发展方向,所以我也想出了如何配置它。这提供了很多很棒的信息。 connmanctl可以直接用来设置静态IP。

root@npi:~# connmanctl
connmanctl> config ethernet_00142d259a48_cable --ipv4 manual 192.168.10.2 255.255.255.0 192.168.10.1
connmanctl> config ethernet_00142d259a48_cable --nameservers 8.8.8.8
connmanctl> exit

设备名称中间的十六进制字符串是设备的 MAC 地址。手册指定静态IP,数字是IP地址、网络掩码和网关(网关是可选的)。

这个页面也解释得很好。不幸的是,大多数文档都是针对配置 wifi 的。大多数网站只是顺便提及静态寻址。

希望这对下一个人有帮助。

相关内容