将“ifconfig wlan0:avahi ...”命令转换为使用 ip 而不是 ifconfig

将“ifconfig wlan0:avahi ...”命令转换为使用 ip 而不是 ifconfig

我目前正在使用设置无线网状网络巴贝尔德作为路由算法。文档非常稀疏,我在网上看到的大多数配置指南都使用已弃用的 ifconfig 命令。

显然我可以ifconfig按原样安装并运行命令。但是,如果可能的话,我宁愿不创建对 的不必要的依赖ifconfig,而只使用基于内置的iproute2命令。所以我一直在将ifconfig遇到的命令转换为相应的ip版本(例如ifconfig eth0 up--> ip link set eth0 up

然而,今天我遇到了以下情况babeld 配置脚本:

ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc essid reseaulibre.ca ap 02:CA:FF:EE:BA:BE channel 9
ifconfig wlan0 up
avahi-autoipd wlan0
ifconfig wlan0:avahi netmask 255.255.255.255
babeld -D wlan0:avahi wlan0

...而且我不明白如何将以下行转换为相应的ip命令:

ifconfig wlan0:avahi netmask 255.255.255.255

ip在上述配置脚本的上下文中使用 的等效命令是什么?

答案1

这似乎是无法直接替代 with 的一件事ip

一种解决方案是:

IPNM=$(ip a sh dev wlan0:avahi scope global | awk  '/inet / {print $2}')
IP=${IPNM/\/*})
ip a add $IP/32 dev wlan0:avahi
ip a del $IPNM dev wlan0:avahi

首先从输出中提取包括网络掩码的 IP 地址ip addr show并将其存储在 $IPNM 中。之后,子网部分被剥离并存储在 $IP 中。

现在,您可以将具有所需网络掩码的 IP 地址添加到设备,然后从设备中删除旧的 IP/网络掩码。

相关内容