
Я новичок в сети и не знаю, как правильно настроить.
Я могу пинговать сервер
ping -I 192.168.42.1 42.112.178.185
но я не смог пинговать
ping 42.112.178.185
42.112.178.185 разрешен только для 192.168.42.0/24.
Как мне добавить таблицу маршрутизации? Я хотел бы использовать
ping 42.112.178.185
Вместо
ping -I 192.168.42.1 42.112.178.185
Я пытаюсь позвонитьhttp://42.112.178.185с curl и нужно направить из 192.168.42.1.
решение1
ОБНОВЛЯТЬПо вашему желанию, вот решение конкретной проблемы: используйте curl
правильный исходный IP-адрес при подключении, указав привязку к нему с помощью --interface
опции перед подключением.
--интерфейс
Выполнить операцию с использованием указанного интерфейса. Вы можете ввести имя интерфейса, IP-адрес или имя хоста.
Итак, проблему можно решить, просто используя эту curl
команду, чтобы добраться до 42.112.178.185 с правильным IP-адресом:
curl --interface 192.168.42.1 http://42.112.178.185/
Конечно, вы также можете указать интерфейс.
Я все же оставлю решение по маршрутизации ниже, возможно, оно кому-то поможет.
Действительно, можно добавить маршрут, который укажет использовать другой исходный IP-адрес, нежели IP-адрес по умолчанию (принадлежащий сети шлюза) при достижении цели.
примечание: поскольку некоторая необходимая информация не была предоставлена: IP шлюза по умолчанию и интерфейс для доступа к нему, требуется дополнительный скриптинг, чтобы узнать его значение. Также, поскольку может быть туннель, который, возможно, не заменил маршрут по умолчанию, но мог добавить два "полумаршрута по умолчанию" 0.0.0.0/1 и 128.0.0.0/1, я получу маршрут к 42.112.178.185, чтобы получить правильное значение.
Давайте назначим IP-адрес gw gw
:
gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')
Вот простая команда маршрутизации:
ip route add 42.112.178.185 src 192.168.42.1 via $gw
Например, если шлюз был 10.0.8.1, а предполагаемый IP-адрес Ubuntu tun0 — 10.0.8.2, то до изменения запрос маршрута к 42.112.178.185 даст:
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2
cache
После внесения изменений это станет:
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
cache
Команду ip route
можно изменить, чтобы она влияла не только на этот один IP-адрес, но то, что делать, зависит от других уже существующих маршрутов.