我无法让静态 IP 正常工作。我运行的是无头模式,因此没有网络管理器(必须通过命令行完成)。此外,通过路由器配置静态 IP 对我来说不是一个选择,因为让网络管理员配置地址需要 2 周时间,而我需要能够在 2 分钟内从已批准的 IP 列表中配置设备。
我已将其分配/etc/network/interfaces
如下:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.4.123
netmask 255.255.255.0
network 192.168.4.0
gateway 192.168.4.1
broadcast 192.168.4.255
但是,当我运行时ifconfig
它继续动态分配地址:
root@BBG1:~# ifconfig
eth0 Link encap:Ethernet HWaddr ec:24:b8:f6:d6:0b
inet addr:192.168.4.26 Bcast:192.168.4.255 Mask:255.255.255.0
inet6 addr: fe80::ee24:b8ff:fef6:d60b/64 Scope:Link
inet6 addr: 2601:681:303:b10:ee24:b8ff:fef6:d60b/64 Scope:Global
UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1
RX packets:4974 errors:0 dropped:0 overruns:0 frame:0
TX packets:886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:719167 (702.3 KiB) TX bytes:93681 (91.4 KiB)
Interrupt:175
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1683 (1.6 KiB) TX bytes:1683 (1.6 KiB)
如果我运行,我可以ifconfig
显示新的IP /etc/init.d/networking restart
,但是
- 另一个 IP 保持活动状态(我可以继续通过 SSH 与设备通信,并同时使用两个 IP 对设备进行 ping 操作)
ifconfig
继续显示DYNAMIC
- 当我重新启动时,它会回到动态 IP
192.168.4.26
有人能看到我忽略了什么吗?
答案1
我发现了这个问题。我的系统正在使用 ConnMan 来管理以太网连接,因此对 所做的更改/etc/network/interfaces
被忽略了。为了配置接口,首先我必须通过键入 来找到接口的 mac 地址connmanctl services
。然后我使用此命令来配置接口:
connmanctl config ethernet_<mac_address>_cable --ipv4 manual <ip_address> <netmask> <gateway> --nameservers <ip_address>
对我来说,它看起来像这样:
connmanctl config ethernet_ec24b8f6d60b_cable --ipv4 manual 192.168.4.123 255.255.255.0 192.168.4.1 --nameservers 8.8.8.8
这似乎会通过重启并保留 IP 持续存在。