你好,我正在设置一台有无线网卡和以太网卡的服务器。我希望只有 eth0 连接可以工作。但是,如果 eth0 由于某种原因失败,我希望它打开 wlan0 并尝试连接。有办法吗?
我正在想象一个 cron 作业,它会不时检查 eth0 是否连接到路由器,如果失败,它将运行“sudo ifup wlan0”,然后向我发送一封电子邮件。
但如果有更优雅的解决方案,我也会感兴趣。谢谢!
答案1
您可以在/etc/network/if-down.d/
和 中创建脚本/etc/network/if-up.d/
。类似这样。使脚本script
以执行权限调用755
。
例如eth0
网络接口的名称
为了/etc/network/if-down.d/
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Do something
sudo ifup wlan0
为了/etc/network/if-up.d/
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Do something
sudo ifdown wlan0
Demon 会在eth0
下降时将其提升wlan0
,eht0
上升时将其下降wlan0
答案2
2707974 个答案整体解决方案是正确的,但是脚本逻辑是错误的:它们在应该采取行动时退出,在应该退出时采取行动;
我们还应该把脚本放进去/etc/network/if-post-down.d/
,因为根据这里 /etc/network/if-down.d/
脚本在接口关闭之前运行。
正确答案是:
在/etc/network/if-post-down.d/script
# Check for specific interface if desired
[ "$IFACE" = "eth0" ] || exit 0
# Do something
sudo ifup wlan0
在/etc/network/if-up.d/script
# Check for specific interface if desired
[ "$IFACE" = "eth0" ] || exit 0
# Do something
sudo ifdown wlan0
当 eth0 发生故障时,启动 wlan0;当 eht0 发生故障时,关闭 wlan0