每当网络管理器服务重新启动时(手动以及从挂起/休眠恢复时),我需要持久启动以下路由。
ip route change default via 10.0.0.1 dev wlo1 proto static metric 600 initcwnd 10 initrwnd 10
ip route change 10.0.0.0/24 dev wlo1 proto kernel scope link src 10.0.0.5 metric 600 initcwnd 10 initrwnd 10
ip route change 169.254.0.0/16 dev wlo1 scope link metric 1000 initcwnd 10 initrwnd 10
我已经在系统启动/重新启动时受到影响,从 /etc/rc.d/rc.local 可以正常工作。
但是我发现,当网络管理器在系统挂起/休眠后重新启动时,initcwnd 10 和 initwnd 10 的 ip 路由设置不再存在。 此时,我只需手动运行 /etc/rc.d/rc.local 脚本即可再次应用设置。
希望有人可以提供一种更自动化的方法来在我上面提到的情况下完成此操作。
更有用的是,initcwnd/initrwnd 值可以永久编译到内核中吗?
答案1
要使任何脚本/命令与 NetworkManager 一起运行,您可以在下面创建一个脚本NetworkManager/dispatcher.d/
并包含所需的命令。每次重新启动 NetworkManager 或在启用 NetworkManager 服务的情况下重新启动主机时,都会读取并执行该文件。例如,您可以10-initcwnd
在目录下创建一个文件调用并使用如下脚本:
#!/bin/bash
if [ "$1" = "wlo1" ] && [ "$2" = "up" ]; then
ip route change 169.254.0.0/16 dev wlo1 scope link metric 1000 initcwnd 10 initrwnd 10
fi
dispatcher.d
可以找到有关的 Ubuntu 联机帮助页这里以供参考。