컴퓨터에서 사용중인 네트워크 인터페이스를 어떻게 알 수 있습니까?


24

MBP (OS X 10.6.2)에서 유선 이더넷 및 무선 공항 구성이 라우터에 동일한 정적 IP를 사용하도록 설정되어 있습니다 (예 : http://forums.macrumors.com/archive/index .php / t-708685.html ). 유선 연결이 공항보다 위에 있도록 서비스 주문도 설정했습니다 (예 : Mac OS X에 설명 된대로 이더넷 케이블이 연결되어 있으면 공항이 자동으로 꺼집니다 ).

이것은 "작동"하는 것 같습니다. 이더넷 케이블을 연결하고 뽑을 때 원격 위치에 대한 열린 ssh 연결이 유지됩니다. 그러나 유선 연결이 있는지 여부에 관계없이 공항 카드가 활성 상태를 유지하고 라우터에 연결되어 있으므로 유선 인터페이스가 사용 가능한 경우 실제로 "활성"연결임을 어떻게 알 수 있습니까? IP 주소는 둘 다 동일하므로 무선 인터페이스를 사용할 수 없다는 보장 입니까? 이 인터페이스가 사용 중인지 알 수있는 다른 방법이 있습니까?

추신. 이것을 작성하고 모든 사실을 확인하는 행동으로 인해 몇 가지 통찰력이 생길 수 있기 때문에 이것을 게시하자마자 (부분) 답변을 게시 할 것입니다. (더 흥미롭고 답이없는 부분은 위에 굵게 표시되어 있습니다.)

답변:


26

'어떤 인터페이스를 사용하여 호스트 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은 서비스 순서에서 첫 번째입니다. 이더넷을 분리하고 다른 변경을하지 않으면 동일한 명령이 제공됩니다.

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 

12

나는 이것을 사용한다 :

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

2
iface(){ route get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}'; }
mralexgray 8

8

ifconfig -a각 상황에 대한 덤프는 다음과 같습니다 (나중에 차이점을 강조하겠습니다).

이더넷 케이블이 연결되었습니다 :

lo0 : 플래그 = 8049mtu 16384
        inet6 :: 1 접두사 128
        inet6 xxxx :: 1 % lo0 접두사 64 scopeid 0x1
        inet 127.0.0.1 넷 마스크 0xff000000
gif0 : 플래그 = 8010 mtu 1280
stf0 : 플래그 = 0 mtu 1280
en0 : 플래그 = 8863 mtu 1500
        inet6 xxxx % en0 접두사 64 scopeid 0x4
        inet 192.168.0.110 넷 마스크 0xffffff00 브로드 캐스트 192.168.0.255
        에테르 xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 (100baseTX) 상태 : 활성
        지원되는 미디어 : 없음 자동 선택 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0 : 플래그 = 8863 mtu 4078
        laddr xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 상태 : 비활성
        지원되는 미디어 : 자동 선택 
en1 : 플래그 = 8863 mtu 1500
        inet6 xxxx % en1 prefixlen 64 범위 id 0x6
        inet 192.168.0.110 넷 마스크 0xffffff00 브로드 캐스트 192.168.0.255
        에테르 xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 상태 : 활성
        지원되는 미디어 : 자동 선택

이더넷 케이블이 분리되었습니다 :

lo0 : 플래그 = 8049mtu 16384
        inet6 :: 1 접두사 128
        inet6 xxxx :: 1 % lo0 접두사 64 scopeid 0x1
        inet 127.0.0.1 넷 마스크 0xff000000
gif0 : 플래그 = 8010 mtu 1280
stf0 : 플래그 = 0 mtu 1280
en0 : 플래그 = 8863 mtu 1500
        에테르 xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 상태 : 비활성
        지원되는 미디어 : 없음 자동 선택 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0 : 플래그 = 8863 mtu 4078
        laddr xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 상태 : 비활성
        지원되는 미디어 : 자동 선택 
en1 : 플래그 = 8863 mtu 1500
        inet6 xxxx % en1 prefixlen 64 범위 id 0x6
        inet 192.168.0.110 넷 마스크 0xffffff00 브로드 캐스트 192.168.0.255
        에테르 xx : xx : xx : xx : xx : xx
        미디어 : 자동 선택 상태 : 활성
        지원되는 미디어 : 자동 선택

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

1
부록 : 타사 확장 "MenuMeters"( ragingmenace.com/software/menumeters )를 통해 "active"인터페이스와 모든 인터페이스에서 사용중인 대역폭을 확인할 수있어 유선 연결을 꽂고 제거 할 때 인터페이스가 실제로 원하는대로 올바르게 전환됩니다 (필요한 경우).
Ether

6

몇 가지. Mac은 항상 "네트워크 연결"프로파일에 나열된 순서대로 네트워크 연결을 사용합니다. 예를 들어 이더넷이 무선 위에 있으면 이더넷이 대신합니다.

SSH가 어떻게 작동하는지 잘 모르겠지만 내 경험으로는 확실합니다. 한 연결이 실패하거나 연결이 끊어지면 SSH는 다른 연결을 사용합니다.

연결이 활성화되어 있는지 확인하려면 대역폭 모니터 유틸리티를 사용해야합니다. 가장 좋은 방법은 iStat ( http://www.islayer.com/apps/istatmenus/ )입니다.


1
실수로 너무 빨리 읽었습니다. 예 ... 제가 말한 것은 서비스 주문입니다. 모든 연결 사이에 어떤 일이 일어나고 있는지 보려면 대역폭 모니터를 살펴보십시오.
Steven Lu

ssh는 네트워크를 테스트하는 데 사용했지만 실제로는 모든 TCP (영구적) 세션이 수행합니다.
Ether

0

조언을 사용하여 이더넷 및 WiFi에 대해 IP 주소를 동일하게 만들고 제안 된 서비스 순서를 설정 한 다음 en0 및 en1의 네트워크 유틸리티> 정보를 사용했습니다.

TimeMachine 백업을 시작했고 네트워크 유틸리티> 정보> en0 이더넷에서 수천 개의 패킷이 이더넷 연결을 통해 이동하고 네트워크 유틸리티> 정보> en1 WiFi가 아무 것도 움직이지 않는 것을 볼 수있었습니다.

올바른 방향으로 안내해 주셔서 감사합니다. TimeMachine 백업이 완료되면 별도의 IP 주소로 되돌리고 Mac이 여전히 이더넷을 통해 모든 것을 자동으로 이동하는지 확인합니다.

원래 질문은 "컴퓨터에서 사용중인 네트워크 인터페이스를 어떻게 알 수 있습니까?"였습니다. 네트워크 유틸리티가 나를 위해 일했습니다.

Macbook Pro 17 "2010 년 중반, Mountain Lion

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.