Причины:
- В таблице маршрутизации Linux отсутствует или неактивен статический маршрут для целевого диапазона.
- Приоритет маршрутов по метрике или маске не соответствует требуемому пути.
Решение:
1. Добавление постоянного статического маршрута:
bash
sudo ip route add via dev [metric ]Пример:
bash
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth12. Проверка применённого маршрута:
bash
ip route show | grep 3. Сохранение маршрута после перезагрузки (в зависимости от дистрибутива):
- Debian/Ubuntu:
Добавить в `/etc/network/interfaces` секцию интерфейса:
bash
up ip route add 10.0.0.0/24 via 192.168.1.1 dev eth1- RHEL/CentOS/Fedora:
Создать файл `/etc/sysconfig/network-scripts/route-` (например, `route-eth1`):
bash
10.0.0.0/24 via 192.168.1.1 dev eth1- systemd-networkd:
В файле `.network` для интерфейса добавить секцию:
ini
[Route]
Destination=10.0.0.0/24
Gateway=192.168.1.14. Удаление ненужного маршрута (если конфликтует):
bash
sudo ip route del default via Примечание:
- Шлюз (`via`) должен принадлежать той же подсети, что и интерфейс (`dev`).
- Для выхода через туннель (VPN) часто достаточно указать `dev tun0` без шлюза (если шлюз уже задан как точка назначения туннеля).