使用 if-up 和 if-down 脚本在 eth1 插入时禁用无线

使用 if-up 和 if-down 脚本在 eth1 插入时禁用无线

我正在尝试配置我的网络接口。我想在插入以太网电缆时禁用我的无线接口。当我拔出以太网电缆时,我的无线接口应该再次启用。

我已经创建了/etc/network/if-up.d/wlan-down:

#!/bin/sh

[ "$IFACE" != "eth1" ] || exit 0
ifdown wlan0

exit 0

和 /etc/network/if-down.d/wlan-up:

#!/bin/sh

[ "$IFACE" != "eth1" ] || exit 0
ifup wlan0
wpa_cli -i wlan0 reassociate

exit 0

但它似乎根本不起作用。WPA 仍然一直尝试连接。我可以看到 wlan0 一直出现和消失。我的问题是:

  1. 我如何调试这些脚本,例如发生了什么以及执行了什么?
  2. 实现我所追求的目标的正确方法是什么?
  3. 另外,当我断开以太网电缆时似乎什么也没有发生。接口已启动,并且已分配 IP 地址。在这种情况下,我想将其关闭,以便我可以使用无线连接。

我使用的是 Debian 不稳定版

答案1

这是用于桌面系统吗?你考虑过使用网络管理器或者威克德。这些工具会自动帮您处理很多此类事情。

我如何调试这些脚本,例如发生了什么以及执行了什么?

你可能想要使用类似记录器将调试信息提交给 syslog。或者,您可以简单地在此处或那里输入一些 echo 命令,将信息写入某个文件。

答案2

看起来ifplugd软件包里有我需要的所有脚本!安装后:

apt-get install ifplugd

并将 eth1 添加到配置文件后,/etc/default/ifplugd一切都开始按我想要的方式工作,无需添加任何额外的脚本(我将所有内容清理到初始状态)。

感谢大家的帮助

答案3

这是一个可能的“未经测试”的解决方案,

在你的 /etc/network/interfaces

allow-hotplug eth0
iface eth1 inet dhcp

down ifconfig wlan0 up
down wpa_cli -i wlan0 reassociate

up ifconfig wlan0 down

allow-hotplug wlan0
iface wlan0 inet dhcp

up ifconfig eth0 down
down ifconfig eth0 up

好吧,这是我的意见,我使用上述设置根据我的服务器上的接口启动/关闭来修改路由,它可能也适用于你,我使用接口文件执行此操作的原因是即使使用 755,我的脚本似乎也无法从 /ifup.d 目录执行。

如果它有效请告诉我不幸的是我没有带 wifi 卡的 debian 机器可以测试 :(

答案4

您想要在 /etc/network/ 子树中设置某些内容,也许像 womble 建议的那样,通过增加 wifi 路由的度量,或者也许通过其他方式,包括涉及 /etc/network/if-up.d/ 中的自定义脚本,如果以太网接口出现,该脚本将关闭 wifi 接口。

有关为 /etc/network/if-up.d/ 制作脚本的信息位于接口手册页的“IFACE OPTIONS”部分下。

相关内容