我有一台机器(18.04,某个时候会是 20.04),它有一个有线网卡以及一个带无线网卡的 USB 卡。它通常通过电缆连接,但有时电缆会断开(机械断开、被人断开、出于各种原因)。
我想确保静态IP 192.168.10.1
始终可达:
- 插入电缆时,
- 否则,通过 Wi-Fi 连接。
是否有标准(或至少合理)的方法来做到这一点?
我看到了一个问题的答案建议将此 IP 分配给接口lo
:
ip address add IP/32 dev lo
但我不确定这是否是一个合理的方法?
答案1
解决方案是使用网络调度程序。它可以通过安装apt install networkd-dispatcher
但它已经安装在我的系统上。
它创造了/usr/lib/networkd-dispatcher
并在那里(等等)
no-carrier.d
→ 这是打开 wifi 的脚本的存放位置在routable.d
→ 这是打开 wifi 的脚本的存放位置离开
我写了两个脚本
#!/bin/bash
# must be /bin/bash, for some reasons /bin/sh does not work
# br0 should be replaced by the interface that goes up and down when the cable is plugged in/out
# wlx1cbfce22a2cc to be replaced by the name of the wifi interface
if [ "$IFACE" == "br0" ]
then
echo "disabling wifi because cable is in"
/sbin/ifconfig wlx1cbfce22a2cc down
fi
我将无线网卡的 IP 固定为与有线网卡相同的 IP - 在给定时间内只有一个处于活动状态。