У меня есть два интерфейса в данный момент wifi и проводной
когда я подключаю проводной, я не могу больше использовать wifi (wlp4s0), если я пытаюсь сделать curl --interface wlp4s0 (или 192.168.1.2) ifconfig.me
, например, это просто зависает, но
curl -интерфейс 192.168.8.100 ifconfig.me
работает нормально
Я наконец решил проблему. Некоторые выше предполагали, что вы просто не можете использовать несколько устройств одновременно, что явно неверно. Для этого необходимо выполнить 4 шага:
ip route удалить default dev
/ etc / iproute2 / rt_tables
файл, такой как 200 пример
правило ip добавляет из пример (мы только что создал это имя выше ничего магического)
-добавить маршрут по умолчанию в эту таблицу, чтобы ядро знало, куда отправлять вещи ip route добавить по умолчанию через <адрес маршрутизатора, такой как 192.168.1.1 или что-то еще> dev <устройство, такое как wlp4s0> table <имя таблицы, которое мы создали в этом примере case>
ip route flush cache
и все, после этих 4 шагов, вы можете использовать curl google.com --interface wlp4s0
Вы можете найти источник, в котором я узнал эти здесь . Предлагаю вам прочитать с начала, а не только этот раздел. в документе используется очень приятный язык и множество примеров
Приложенный вами снимок экрана уже содержит ответ:)
default via 192.168.8.1 dev enx001e101f0000 proto dhcp metric 100
default via 192.168.1.1 dev wlp4s0 proto dhcp metric 600
В вашей системе определены два шлюза по умолчанию. В этом случае ваша система будет использовать в основном шлюз с более низкой метрикой (в данном случае 192.168.8.1 с метрикой 100) и переключаться на второй только тогда, когда первый недоступен. Именно так работает сеть.
Таким образом, даже если вы принудительно отправите пакеты через 192.168.1.2, они будут отправлены в пункт назначения 192.168.8.1, который недоступен из этого интерфейса, и пакеты будут потеряны.