配置 IP 地址的替代方法

配置 IP 地址的替代方法

我正在设置一个嵌入式 Linux 设备,它应该在启动时从文件系统中的文件获取其 IP 地址和 MAC 地址。假设有一个文件/root/ipaddress,其内容仅有 "192.168.10.10" 和/root/macaddress"02:02:02:02:02:02" 。其余配置不应是可配置的。

目前,网络配置是通过 完成的ifup -i /etc/interfaces -a,其中 IP 地址在以下节中定义:

# The loopback network interface
#auto lo
#iface eth0 inet loopback

# The primary network interface
auto eth0

iface eth0 inet static
    address 192.168.10.10
    netmask 255.255.255.0

我尝试在 /etc/interfaces 文件中使用环境变量但没有成功。

我可以使用命令构建一个脚本ip,在其中再次关闭接口,配置 IP 和 MAC 地址,然后再次启动。然而,这似乎效率很低。

答案1

ifupdown脚本集并非旨在以这种方式工作。

相反,您可以:

  1. 停止使用ifupdown并设法在专用脚本中自行配置网络。 (我可能会选择这个选项)
  2. 使用post-up的功能ifupdown,这样:
iface eth0 inet static
  pre-up ifconfig eth0 hw ether `cat /root/macaddress`
  address 0.0.0.0
  netmask 255.255.255.0
  post-up ifconfig eth0 `cat /root/ipaddress`

请注意,我没有测试 post-up 是否能够管理反引号构造。 ..

也许您还可以挖掘manual方法(而不是static)......

相关内容