在 Linux 中设置 IP 地址的规则已经改变,现在有了 connman 的东西。我使用 Beaglebone 黑色:
Linux beaglebone 4.19.94-ti-rt-r72 #1buster SMP PREEMPT RT Tue Mar 8 23:22:50 UTC 2022 armv7l GNU/Linux
我看到有一个文件,
cat /var/lib/connman/default.config
[service_eth0]
Type = ethernet
IPv4 = 192.168.1.132/24
- 我是否可以通过更改此文件来更改我的 IP 地址?例如,如果我希望我的 IP 地址为 192.168.42.42,我是否只需在该 IPv4 行中更改它?
- 如果我想将其更改为由路由器分配(dhcp?),我该怎么办?
- 更改何时生效?我是否必须重新启动和/或停止并重新启动某些服务?
答案1
长话短说:connmanctl services
找到您要修改的卡,connmanctl config <service> --ipv4 manual <IP address> <netmask> <gateway>
设置静态IP地址,connmanctl config <service> --ipv4 dhcp
改为使用DHCP。
在 Linux 中设置 IP 地址的规则已经改变,现在有了 connman 的东西。我使用 Beaglebone 黑色:
幸运的是,事实并非如此:connman 已经存在了 13 年,并且在嵌入式世界中非常流行,与台式机/笔记本电脑系统相比,您经常希望有一个更精简的系统管理系统,尽管对于图形用户来说更难使用,大多数 Linux 发行版都采用了 NetworkManager(由于旧的静态 /etc/network/ifupdown 基础设施刚刚失效,因为支持“插入带有网络端口的扩展坞”或“启用 wifi ”之类的事情非常复杂)笔记本电脑侧面的开关”;Linux 早期根本没有看到这种用例;网卡在人们办公桌下的 PC 中集成了 ISA 或 PCI 卡,而不是笔记本电脑。所以,事情变得有点复杂,因为,现实世界有点混乱:)但这就是为什么会有这样的社区!)
所以,这并不新鲜——它只是与您习惯的桌面式 Linux 系统不同。对不起!不同的用例需要不同的工具:)
您可以connman
自己更改配置文件,但我认为您不应该这样做;记住一个可以为您(正确地)执行此操作并且附带功能的命令可能会更容易help
。这些天我记住的东西很少——我只是在阅读正确的帮助信息方面做得更好了。
在你的情况下,该命令被称为connmanctl
(ctl
我认为这是“控制器”的缩写)。它有子命令,其中之一被调用config
并处理配置。 (其他子命令包括connman disable
,例如禁用 wifi,如果您有的话,connman disable wifi
例如。
connmanctl services
将列出您拥有的以太网卡。您可能正在寻找类似的东西ethernet_MACADDRESSINHEX_cable
;我们$SERVICE
以后就这样称呼它吧。有了这些知识:
我是否可以通过更改此文件来更改我的 IP 地址?例如,如果我希望我的 IP 地址为 192.168.42.42,我是否只需在该 IPv4 行中更改它?
connmanctl config $SERVICE --ipv4 manual ${IP_address} ${netmask} ${gateway}
其中${netmask}
和${gateway}
是设置界面时需要确定的另外两件事
如果我想将其更改为由路由器分配(dhcp?),我该怎么办?
connmanctl config $SERVICE --ipv4 dhcp
更改何时生效?我是否必须重新启动和/或停止并重新启动某些服务?
connmanctl connect $SERVICE