如何为有线和无线网卡分配相同的静态IP?

如何为有线和无线网卡分配相同的静态IP?

我有一台机器(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 - 在给定时间内只有一个处于活动状态。

相关内容