У меня есть два сетевых подключения - Wi-Fi и Ethernet. Как выбрать конкретную сеть для использования при использовании командной строки, например. пинг google.com.

PS: я упомянул пинг в качестве примера. Я могу запустить скрипт Python или curl, и он должен использовать один и тот же интерфейс для всех этих.

1 ответ1

0

Это может быть невозможно сделать без отключения одного из подключений, если у вас нет специальной настройки.

Вообще говоря, маршруты Linux контролируются таблицей маршрутов, и трафик будет отправляться по маршруту с наименьшей метрикой - вы можете увидеть, что это такое, с помощью команды "ip route" или "route". В этом случае самым простым решением было бы удалить нежелательный маршрут (используя ip route или route) или разрушить ненужный интерфейс (используя ifconfig или ip addr).

Если у вас более сложная маршрутизация, возможно, ваша система использует исходную маршрутизацию, а затем маршрутизирует пакеты на основе исходного или целевого IP-адреса через разные таблицы. В этом случае самый простой способ сделать это - указать команде (если она поддерживается) отправлять пакеты с указанным исходным IP-адресом или интерфейсом (используйте man COMMAND, чтобы увидеть, как это будет работать). В ping это будет ping -I INTERFACE, в mtr его mtr -a SOURCE.IP.ADDRESS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .