Предпочитаю кабель по Wi-Fi в Mac на Mac для определенного IP

0

Можно ли настроить MacBook Pro на использование Ethernet-кабеля через Wi-Fi, когда он пытается получить доступ к определенному IP-адресу в файле .bashrc или в любом другом файле конфигурации?

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

export NO_PROXY=192.168.0.1

Можно ли попросить мой ноутбук использовать кабель Ethernet вместо соединения Wi-Fi для этого конкретного IP?

user862226
источник
Похоже, на этот вопрос ответили здесь
Тим Д

Ответы:

3

Здесь можно сделать две вещи.

Если вы хотите, чтобы весь ваш трафик проходил через встроенный Ethernet, если включены и Ethernet, и Wi-Fi, вы можете сделать его более предпочтительным в Системных настройках:

System Preferences -> Networkпокажет окно со всеми определенными сетевыми подключениями. В нижней части левой боковой панели (со списком интерфейсов) вы увидите три кнопки: +, - и зубчатое колесо. Нажмите на последний (зубчатое колесо), и вы увидите четвертый вариант сверху - «Установить сервисный заказ». Если вы перетащите Ethernet выше Wi-Fi после того, как нажмете эту опцию, тогда, если оба активны, предпочтение будет отдано Ethernet.

Однако если вы хотите, чтобы выбранный трафик проходил через Ethernet, а трафик по умолчанию - через Wi-Fi, то это немного сложнее и обычно включает использование командной строки и, в частности, route команды.

Здесь есть несколько сценариев, поэтому сейчас я задам несколько вопросов, которые могут указать вам верное направление или позволят мне помочь с лучшим ответом:

  1. Оба интерфейса WIFI и Ethernet находятся в одной локальной сети? т.е. у них будет IP-адрес из того же диапазона? они будут использовать тот же шлюз по умолчанию?

  2. IP-адрес назначения находится в той же локальной сети, где включен WIFI или Ethernet? или IP-адрес назначения "где-то в интернете"?

Сейчас я дам вам ответ для самого простого сценария, который заключается в том, что WIFI и Ethernet находятся в разных локальных сетях, а IP-адрес назначения находится в Интернете.

Допустим, WIFI получает IP-адрес 192.168.0.10/24, а шлюз по умолчанию для доступа в Интернет - 192.168.0.1. Скажем также, что Ethernet получает IP-адрес 192.168.1.10/24 и что шлюзом по умолчанию, который используется для выхода в Интернет через Ethernet, является 192.168.1.1.

Предположим также, что вы хотите маршрутизировать весь трафик через WIFI по умолчанию, но в то же время вы хотите, чтобы весь трафик на хост с IP 192.0.2.5 проходил через Ethernet.

В этом случае вам нужно пройти процедуру я описал в начале и убедитесь , что Wi - Fi является ВЫШЕ в Ethernet (поэтому является более предпочтительным).

Затем откройте Терминал и введите следующую команду:

sudo route add -host 192.0.2.5 192.168.1.1

Вам нужно будет ввести свой собственный пароль, когда его спросит команда sudo.

Если у вас есть несколько IP-адресов, к которым вы хотите добавить маршруты через Ethernet, вы можете запустить больше routeкоманд.

Теперь вы должны знать, что каждый раз, когда вы отключаете соединение Ethernet, маршруты исчезают, и вам придется вручную вводить их снова в Терминале. Если вы хотите, чтобы это было автоматизировано, вы можете посмотреть в launchdруководствах по терминалу routeи launchd.plist- просто наберите man routeи man launchd.plist. Одной из переменных, которые вас интересуют для launchd, является NetworkState. Обратите внимание, у меня не было необходимости делать что-то подобное автоматически (однако я иногда использовал это вручную), и поэтому у меня нет готового решения. Потребуются некоторые сценарии и т. Д., Но по крайней мере это должно помочь вам.

Майк
источник