如果有线网络可用,Systemd 可以禁用 WLAN 吗?

如果有线网络可用,Systemd 可以禁用 WLAN 吗?

如果以太网电缆已插入,我想关闭 wlan0。我使用的是 Ubuntu 系统 - 它使用 systemd。因此,我想要一种 systemd 友好的方式来执行此操作。

我也想做相反的事情。我想在拔掉以太网电缆时启动 wlan0。

与此相关的问题 - 我还需要更新路由表吗?


答案1

经典解决方案:

对于像 ubuntu 这样基于 debian 的系统,基于网络状态的命令可以设置为以下规则/etc/network/interfaces:这个答案演示了两个接口的情况eth0wlan0

  1. 使用 sudo,/etc/network/interfaces使用文本编辑器打开(该文件包含网络接口的规则和设置,还请注意网络管理器不应管理此文件中列出的接口)
    sudo notepadqq /etc/network/interfaces
  1. 根据您的需要使用, (pre-uppre-up) 或 (post-downpost-up) 当网络线插/拔时关闭 wlan0 接口您可以使用ifconfig wlan0 downip link set wlan0 down(示例是使用 ifconfig)...示例:
    auto eth0
    allow-hotplug eth0
    iface eth0 inet static
        address 192.168.1.7
        netmask 255.255.255.0
        gateway 192.168.1.1
        post-up ifconfig wlan0 down
        post-down ifconfig wlan0 up

Systemd 替代解决方案:

官方文档这里解释 systemd 支持什么,以及像经典解决方案一样直接简单的解决方案截至 05/2019 尚未实施

Systemd 替代解决方案:

也可以使用调度程序来触发脚本,如上所述这个答案,那个或者本文

Systemd 替代解决方案:

正如您在评论中链接的那样这个答案可以是通过服务实现的替代解决方案

有关的:

网络目标这里这里可用于根据网络状态运行其他服务

答案2

这些可能会有所帮助: 关联 链接2。您的脚本可能是一行(某行ip link set yourIface down)。路由表应该自动更新,除非您使用一些静态路由,否则您可能必须更新它。

相关内容