我想从网页更改树莓派 4 上接口 eth0 的静态 IP 地址。我正在运行没有桌面的buster lite 4.19。据我了解,我需要修改 /etc/dhcpcd.conf 文件中的“static ip_address=”行以使更改永久生效。
我可以执行以下命令,并且在重新启动控制器之前它可以正常工作。
ifconfig eth0 192.168.1.10 netmask 255.255.255.0
我发现这个链接在命令行中效果很好。 使用 sed 更改 dhcpcd.conf 文件中的 IP 地址
我尝试使用 exec() 命令来执行 php 脚本中的命令。读取工作正常,但 sed 操作不写入任何内容。我假设存在权限问题,但不确定如何解决这个问题。我在代码中使用以下命令。
$newIPcidr = "192.168.1.10/24";
$cmd = "cat /etc/dhcpcd.conf | grep -e '^static ip_address=' | cut -d= -f2";
$curIP = exec($cmd);
$cmd = "sudo sed -i -e \"s@^static ip_address=" . $curIP . "\b@static ip_address=" . $newIPcidr . "@g\" /etc/dhcpcd.conf";
$output = exec($cmd);
有一个更好的方法吗?
预先感谢您对此的任何帮助!
一只名叫tom的猫