В настоящее время я маршрутизирую некоторые отмеченные пакеты через eth0
. Однако мне приходится применять правила маршрутизации каждый раз при перезагрузке системы. Две команды, которые мне всегда приходится вводить повторно:
ip rule add fwmark 3 table 3
ip route add default via 192.168.0.1 table 3
Шлюз для eth0
будучи 192.168.0.1
Я попытался разместить эти команды в обоих /etc/rc.local
и /etc/network/interfaces
, и в обоих случаях мне все равно пришлось запускать их вручную. Есть ли у кого-нибудь предложения относительно того, где / как запускать эти команды при каждом запуске?
Вы можете сделать это, используя /etc/network/interfaces
только файл.
Вам просто нужно положить add route
под нужным интерфейсом и поместите post-up
или pre-down
ключевые слова перед этой командой.
post-up
ключевое слово добавит этот маршрут в таблицу маршрутизации после того, как вы вызовете этот интерфейс и pre-down
ключевое слово удалит его до того, как вы отключите этот интерфейс.
Например:
Чтобы добавить статический маршрут на eth0
интерфейс, /etc/network/interfaces
файл должен быть
auto eth0
iface eth0 inet static
...
...
post-up ip route replace default via 192.168.0.1
pre-down ip route delete default via 192.168.0.1 || true
Поместите свои команды в сценарий оболочки, например. / usr / local / sbin / myrouting и сделайте его исполняемым.
Вы можете использовать cron и цель @reboot в / etc / crontab или корневом crontab, например. / etc / crontab
@reboot root /usr/local/sbin/myrouting
или root crontab
@reboot /usr/local/sbin/myrouting
Вы также можете сделать это с помощью systemd.
Создайте файл модуля systemd /etc/systemd/system/myrouting.service
[Unit]
after=network
[Service]
ExecStart=/usr/local/sbin/myrouting
[Install]
WantedBy=default.target
Затем включите его
systemctl enable myrouying.service
Created symlink /etc/systemd/system/default.target.wants/myrouting.service → /etc/systemd/system/myrouting.service.
вы также можете добавить эту команду в /etc/rc.local и не забудьте сделать ее исполняемой:
touch stagingfile.txt
echo "ip rule add fwmark 3 table 3" >> stagingfile.txt
echo "ip route add default via 192.168.0.1 table 3" >> stagingfile.txt
sudo mv stagingfile.txt /etc/rc.local
chmod +x /etc/rc.local
должно сработать