22

На MBP (OS X 10.6.2) у меня есть настройки проводной сети Ethernet и беспроводного аэропорта, настроенные на использование одного и того же статического IP-адреса для моего маршрутизатора (например, как описано на http://forums.macrumors.com/archive/index). .php/t-708685.html). Я также настроил сервисный заказ так, чтобы проводное соединение находилось выше аэропорта (например, как описано в Mac OS X, автоматически отключите аэропорт, если подключен кабель Ethernet).

Кажется, это "работает": открытое соединение SSH с удаленным местоположением остается, когда я подключаю и отключаю кабель Ethernet. Однако, поскольку плата Airport остается активной (и подключенной к маршрутизатору) независимо от наличия проводного соединения, как я могу сказать, что проводной интерфейс на самом деле является "активным" соединением, когда оно доступно? Поскольку IP-адрес одинаков для обоих, это гарантия того, что беспроводной интерфейс не может быть использован? Есть ли другой способ узнать, используется ли этот интерфейс?

PS. Я собираюсь опубликовать (частичный) ответ, как только я опубликую это, поскольку сам процесс написания этого и проверки всех моих фактов приводит меня к некоторой мысли. (Более интересная и неотвеченная часть выделена жирным шрифтом выше.)

5 ответов5

24

Точная ссылка на такие вопросы, как «Какой интерфейс будет использоваться для доступа к хосту wxyz?для любого данного времени или ситуации, чтобы обратиться к таблице маршрутизации.

[mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en0
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

Я включил en0 и en1, и en0 является первым в сервисном заказе. Отключив мой Ethernet, не внося никаких других изменений, эта же команда дает:

mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en1
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 
11

Я использую это:

if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')

if [ -n "$if" ]; then
    echo "Default route is through interface $if"
else
    echo "No default route found"
fi
7

Вот дамп ifconfig -a в каждой ситуации (я выделю различия позже):

Кабель Ethernet подключен:

lo0: flags=8049 mtu 16384
        inet6 ::1 prefixlen 128
        inet6 xxxx::1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010 mtu 1280
stf0: flags=0 mtu 1280
en0: flags=8863 mtu 1500
        inet6 xxxx%en0 prefixlen 64 scopeid 0x4
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        ether xx:xx:xx:xx:xx:xx
        media: autoselect (100baseTX ) status: active
        supported media: none autoselect 10baseT/UTP  10baseT/UTP  10baseT/UTP  10baseT/UTP  100baseTX  100baseTX  100baseTX  100baseTX  1000baseT  1000baseT  1000baseT 
fw0: flags=8863 mtu 4078
        lladdr xx:xx:xx:xx:xx:xx
        media: autoselect  status: inactive
        supported media: autoselect 
en1: flags=8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: active
        supported media: autoselect

Кабель Ethernet отключен:

lo0: flags=8049 mtu 16384
        inet6 ::1 prefixlen 128
        inet6 xxxx::1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010 mtu 1280
stf0: flags=0 mtu 1280
en0: flags=8863 mtu 1500
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: inactive
        supported media: none autoselect 10baseT/UTP  10baseT/UTP  10baseT/UTP  10baseT/UTP  100baseTX  100baseTX  100baseTX  100baseTX  1000baseT  1000baseT  1000baseT 
fw0: flags=8863 mtu 4078
        lladdr xx:xx:xx:xx:xx:xx
        media: autoselect  status: inactive
        supported media: autoselect 
en1: flags=8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: active
        supported media: autoselect

diff plugged unplugged показывает, что проводное соединение становится активным, когда оно доступно:

8,9d7
<   inet6 xxxx%en0 prefixlen 64 scopeid 0x4 
<   inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
11c9
<   media: autoselect (100baseTX <full-duplex,flow-control>) status: active
---
>   media: autoselect status: inactive
6

Пара вещей. Mac всегда будет использовать сетевые подключения в порядке, указанном в вашем профиле "Сетевые подключения". Например, если Ethernet поверх Wireless, Ethernet вступит во владение.

Я не уверен, как работает SSH, но по своему опыту. Если одно соединение не удается или отключается, SSH будет использовать другое соединение.

Если вы действительно хотите посмотреть, активны ли соединения, вы должны использовать утилиту мониторинга пропускной способности. Отличным примером является iStat (http://www.islayer.com/apps/istatmenus/).

0

Я воспользовался советом, чтобы сделать IP-адреса одинаковыми для Ethernet и WiFi, установил порядок обслуживания, как предложено, и просто использовал Network Utility> Info на en0 и en1.

Я запустил резервное копирование TimeMachine и в разделе «Сетевая утилита»> «Информация»> «en0 Ethernet» я увидел, что через сетевое соединение проходили тысячи пакетов, а в «Сетевой утилите»> «Информация»> en1 WiFi ничего не двигалось.

Спасибо, что указали мне правильное направление. Когда резервное копирование TimeMachine будет завершено, я вернусь к отдельным IP-адресам и посмотрю, все ли по-прежнему Mac автоматически перемещает все через Ethernet.

Первоначальный вопрос был «Как узнать, какой сетевой интерфейс использует мой компьютер?«У меня работала сетевая утилита.

Macbook Pro 17 "середина 2010 года, Горный лев

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