启动时添加 IP 路由和规则

Zad*_*den 2 networking linux startup route

I\xe2\x80\x99m 当前通过 路由一些标记的数据包eth0。但是,每次系统重新启动时我都必须应用路由规则。我总是需要重新输入的两个命令是

\n\n
ip rule add fwmark 3 table 3\nip route add default via 192.168.0.1 table 3\n
Run Code Online (Sandbox Code Playgroud)\n\n

eth0I\xe2\x80\x99的网关192.168.0.1尝试将这些命令放在 和 中/etc/rc.local/etc/network/interfaces并且在这两种情况下我仍然必须手动运行它们。有人建议在每次启动时在哪里/如何运行这些命令吗?

\n

use*_*517 6

将命令放入 shell 脚本中,例如 /usr/local/sbin/myrouting 并使其可执行。

\n\n

您可以在 /etc/crontab 或 root crontab 例如 /etc/crontab 中使用 cron 和 @reboot 目标

\n\n
@reboot root /usr/local/sbin/myrouting\n
Run Code Online (Sandbox Code Playgroud)\n\n

或根 crontab

\n\n
@reboot /usr/local/sbin/myrouting \n
Run Code Online (Sandbox Code Playgroud)\n\n

您也可以使用 systemd 来完成此操作。

\n\n

创建 systemd 单元文件 /etc/systemd/system/myrouting.service

\n\n
[Unit]\nafter=network\n\n[Service]\nExecStart=/usr/local/sbin/myrouting\n\n[Install]\nWantedBy=default.target\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后启用它

\n\n
systemctl enable myrouying.service\nCreated symlink /etc/systemd/system/default.target.wants/myrouting.service \xe2\x86\x92 /etc/systemd/system/myrouting.service.\n
Run Code Online (Sandbox Code Playgroud)\n