我有一堆在只读文件系统中运行的 RP,它们无法修改 /etc/network/interfaces 文件。
截至目前,他们从 U 盘加载配置并用于ifconfig eth0 <ipaddress>
更改 IP 地址。这在大多数情况下都有效,但每隔一段时间,IP 更改就不会“坚持”。我的启动脚本运行后,IP 更改为配置的地址,然后大约一分钟后,它更改为错误的地址。
我的接口文件设置为 DHCP:iface eth0 inet dhcp
因为如果出现问题,我仍然希望能够在网络上找到 Pi。
因此,我认为 DHCP 正在慢慢地在启动后一分钟左右覆盖我的 IP 更改。
如何在不更改任何文件系统文件的情况下禁用 DHCP?
答案1
在您的情况下,您可能可以通过运行来并使用killall dhclient
终止所有正在运行的 DHCP 客户端守护程序,dhclient -r
优雅地停止 DHCP 客户端守护程序*。通常不会推荐这样做,但如果修改基本系统是不可能的,并且您需要依赖启动脚本,那么我的建议是终止 dhclient 进程。
但是,如果 USB 记忆棒是非持久性实时 USB,它仍应允许在实时系统上编辑文件,但更改不会在重新启动后持续存在。在这种情况下,我的建议是 ifdown 接口,使用适当的配置回显 /etc/network/interfaces 文件,然后在脚本中 ifup 接口。这样做的好处是,如果界面在任何时候重新启动或重置,您的自定义配置更有可能保留,而否则可能不会(虽然我承认我没有测试过这种情况,但我只是有点谨慎)。
*编辑感谢金凤花在评论中的建议
答案2
ifdown eth0
只需在设置自己的地址之前运行即可。
ifdown eth0
ifconfig eth0 inet <ipaddress>
route add default gw <gwaddress>