web-dev-qa-db-ja.com

コンピューターが使用しているネットワークインターフェイスを確認するにはどうすればよいですか?

MBP(OS X 10.6.2)では、ルーターに同じ静的IPを使用するように有線イーサネットと無線空港の構成を設定しました(例: http://forums.macrumors.com /archive/index.php/t-708685.html )。有線接続が空港より上になるようにサービスオーダーを設定しました(例: イーサネットケーブルが接続されている場合、Mac OS Xは自動的に空港をオフにします )。

これは「機能」しているようです。イーサネットケーブルを接続したり取り外したりしても、リモートロケーションへのオープンssh接続は維持されます。ただし、有線接続が存在するかどうかに関係なく、Airportカードはライブ(およびルーターに接続)されたままなので、有線インターフェイスが使用可能なときに実際に「アクティブ」接続であることをどのように確認できますか? 両方のIPアドレスが同じであるため、これは無線インターフェースが使用できないことの保証ですか?このインターフェイスが使用中かどうかを確認する他の方法はありますか?

PS。これを投稿してすべての事実を確認するという行為からいくつかの洞察が得られるので、これを投稿したらすぐに(部分的な)回答を投稿します。 (より興味深く未回答の部分は上記の太字で示されています。)

25
Ether

これは、各状況でのifconfig -aのダンプです(後で違いを強調します)。

イーサネットケーブルが接続されている:

 lo0:flags = 8049 mtu 16384 
 inet6 :: 1 prefixlen 128 
 inet6 xxxx :: 1%lo0 prefixlen 64 scopeid 0x1 
 inet 127.0.0.1ネットマスク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 
サポートされるメディア:なし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ネットマスク0xffffff00ブロードキャスト192.168.0.255 
 ether xx:xx:xx:xx:xx:xx 
 media:autoselect status:active 
 supported media:autoselect 

イーサネットケーブルが接続されていません:

 lo0:flags = 8049 mtu 16384 
 inet6 :: 1 prefixlen 128 
 inet6 xxxx :: 1%lo0 prefixlen 64 scopeid 0x1 
 inet 127.0.0.1ネットマスク0xff000000 
 gif0:flags = 8010 mtu 1280 
 stf0:flags = 0 mtu 1280 
 en0:flags = 8863 mtu 1500 
 ether xx:xx:xx:xx: xx:xx 
メディア:自動選択ステータス:非アクティブ
サポートされるメディア:なし自動選択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 
メディア:自動選択ステータス:アクティブ
サポートされるメディア:autoselec t 

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
8
Ether

「どのインターフェイスを使用してホストw.x.y.zに到達するか」などの質問の決定的なリファレンス特定の時間または状況でルーティングテーブルを参照することです。

[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 
27
Nevin Williams

私はこれを使います:

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
12
mivk

いくつかのこと。 Macは常に「ネットワーク接続」プロファイルにリストされている順序でネットワーク接続を使用します。たとえば、イーサネットがワイヤレスの上にある場合、イーサネットが引き継ぎます。

SSHがどのように機能するかはわかりませんが、私の経験からです。 1つの接続が失敗または切断すると、SSHは他の接続を使用します。

接続がアクティブかどうかを本当に確認したい場合は、帯域幅監視ユーティリティを使用する必要があります。すばらしいのはiStat( http://www.islayer.com/apps/istatmenus/ )です。

6
Steven Lu

私はアドバイスを使用してイーサネットとWiFiのIPアドレスを同じにし、提案されたようにサービス注文を設定し、en0とen1でNetwork Utility> Infoを使用しました。

TimeMachineバックアップを開始したところ、ネットワークユーティリティ>情報> en0イーサネットで、ネットワーク接続>情報> en1 WiFi何も移動していないのに、数千のパケットがイーサネット接続を通過していることがわかりました。

私を正しい方向に向けてくれてありがとう。 TimeMachineのバックアップが完了したら、別のIPアドレスに戻し、Macがすべてを自動的にイーサネット経由で移動するかどうかを確認します。

元の質問は「自分のコンピューターが使用しているネットワークインターフェイスを確認するにはどうすればよいですか?」ネットワークユーティリティは私のために働いた。

Macbook Pro 17インチ2010年中期、マウンテンライオン

0
Gigapig