Bilgisayarımın hangi ağ arayüzünü kullandığını nasıl anlayabilirim?


24

MBP'de (OS X 10.6.2) Yönlendiricime aynı statik IP'yi kullanmak için ayarlanmış kablolu ethernet ve kablosuz havaalanı yapılandırmaları var (örneğin, http://forums.macrumors.com/archive/index adresinde açıklandığı gibi) .php / t-708685.html ). Kablolu bağlantının Havalimanının üstünde olması için Servis Siparişini de ayarladım (örn. Mac OS X'te açıklandığı gibi, ethernet kablosu takılıysa otomatik olarak Havalimanı'nı kapatır ).

Bu "çalışıyor" gibi görünüyor: Ethernet kablosunu takıp çıkarırken uzaktaki bir yere açık bir ssh bağlantısı kalıyor. Bununla birlikte, Havaalanı kartı canlı kaldığından (ve yönlendiriciye bağlı olduğundan), kablolu bağlantının mevcut olup olmadığına bakılmaksızın, kablolu arabirimin gerçekten mevcut olduğunda "etkin" bağlantı olduğunu nasıl söyleyebilirim? IP adresi ikisi için aynı olduğundan, bu kablosuz arayüz bir garantisidir olamaz kullanılabilir? Bu arayüzün kullanımda olup olmadığını söylemenin başka bir yolu var mı?

PS. Bunu gönderir göndermez (kısmi) bir cevap göndereceğim, bunu yazma ve tüm gerçekleri kontrol etme eylemi beni bazı içgörülere götürür. (Daha ilginç ve cevapsız kısım yukarıda koyu olarak belirtilmiştir.)

Yanıtlar:


26

'Wxyz ana bilgisayarına ulaşmak için hangi arabirim kullanılacak?' Gibi sorular için kesin referans. Herhangi bir zaman veya durum için yönlendirme tablosuna başvurmaktır.

[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 

Hem en0 hem de en1 etkinken, en0 Servis Siparişinde ilk sırada. Ethernetimi çıkartmak, başka hiçbir değişiklik yapmamak, aynı komutu verir:

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

Bunu kullanıyorum:

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

İşte ifconfig -aher durumda bir dökümü (Daha sonra farklılıkları vurgulayacağım):

Ethernet kablosu takılı:

lo0: bayraklar = 8049 mtu 16384
        inet6 :: 1 öneki 128
        inet6 xxxx :: 1% lo0 prefixlen 64 kapsamı 0x1
        127.0.0.1 giriş ağ maskesi 0xff000000
gif0: bayraklar = 8010 mtu 1280
stf0: flags = 0 mtu 1280
en0: bayraklar = 8863 mtu 1500
        inet6 xxxx% en0 öneki 64 kapsam büyüklüğü 0x4
        giriş 192.168.0.110 ağ maskesi 0xffffff00 yayın 192.168.0.255
        eter xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim (100baseTX) durumu: etkin
        desteklenen ortam: hiçbiri otomatik seçim 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: bayraklar = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim durumu: etkin değil
        desteklenen medya: otomatik seçim 
en1: bayraklar = 8863 mtu 1500
        inet6 xxxx% en1 öneki 64 kapsam büyüklüğü 0x6
        giriş 192.168.0.110 ağ maskesi 0xffffff00 yayın 192.168.0.255
        eter xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim durumu: etkin
        desteklenen medya: otomatik seçim

Ethernet kablosu takılı değil:

lo0: bayraklar = 8049 mtu 16384
        inet6 :: 1 öneki 128
        inet6 xxxx :: 1% lo0 prefixlen 64 kapsamı 0x1
        127.0.0.1 giriş ağ maskesi 0xff000000
gif0: bayraklar = 8010 mtu 1280
stf0: flags = 0 mtu 1280
en0: bayraklar = 8863 mtu 1500
        eter xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim durumu: etkin değil
        desteklenen ortam: hiçbiri otomatik seçim 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: bayraklar = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim durumu: etkin değil
        desteklenen medya: otomatik seçim 
en1: bayraklar = 8863 mtu 1500
        inet6 xxxx% en1 öneki 64 kapsam büyüklüğü 0x6
        giriş 192.168.0.110 ağ maskesi 0xffffff00 yayın 192.168.0.255
        eter xx: xx: xx: xx: xx: xx
        ortam: otomatik seçim durumu: etkin
        desteklenen medya: otomatik seçim

diff plugged unplugged mevcut olduğunda kablolu bağlantının etkin olduğunu gösterir:

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
Zeyilname: "MenuMeters" üçüncü parti uzantısı aracılığıyla ( ragingmenace.com/software/menumeters ), hangisinin "aktif" arayüz olduğunu ve aynı zamanda tüm arayüzlerde kullanılan bant genişliğini görmek mümkündür; Kablolu bağlantı takılıp çıkarıldığında, arabirim gerçekten de (istendiği gibi) düzgün şekilde geçiş yapar.
Eter

6

Birkaç şey. Mac, her zaman "Ağ Bağlantıları" profilinizde listelenen sırayla ağ bağlantılarını kullanır. Örneğin, Ethernet Kablosuz’un üstündeyse, Ethernet devralacak.

SSH’nin bu kadar nasıl çalıştığından emin değilim, ancak deneyimlerime göre. Bir bağlantı koparsa veya bağlantı kesilirse, SSH diğer bağlantıyı kullanır.

Bağlantıların etkin olup olmadığını gerçekten görmek istiyorsanız, bir bant genişliği izleme yardımcı programı kullanmalısınız. En iyisi iStat ( http://www.islayer.com/apps/istatmenus/ ).


1
Yanlışlıkla çok hızlı okudum, evet ... söylediğim şey servis emriydi. Tüm bağlantılarınız arasında neler olup bittiğini görmek için gerçekten bant genişliği monitörüne bir göz atmalısınız.
Steven Lu

ssh, ağı test etmek için kullandığım şeydi, ancak gerçekten herhangi bir TCP (kalıcı) oturumu yapacaktı.
Ether

0

IP adreslerini Ethernet ve WiFi için aynı yapmak, Tavsiye Edilen Servis Siparişini Ayarlamak için tavsiyeyi kullandım ve en0 ve en1'deki Ağ Yardımcı Programı> Bilgileri kullandım.

Bir TimeMachine yedeği başlattım ve Ağ Yardımcı Programı> Bilgi> tr0 Ethernet altında Ethernet paketinde binlerce paketin hareket ettiğini, Ağ Yardımcı Programı> Bilgi> en1 WiFi ise hiçbir şeyin hareket etmediğini gördüm.

Beni doğru yöne çevirdiğin için teşekkürler. TimeMachine yedekleme işlemi tamamlandığında IP adreslerini ayırmak için geri döneceğim ve Mac'in otomatik olarak her şeyi Ethernet üzerinden taşımaya devam edip etmediğini göreceğim.

Asıl soru "Bilgisayarımın hangi ağ arayüzünü kullandığını nasıl söyleyebilirim?" İdi. Ağ yardımcı programı benim için çalıştı.

Macbook Pro 17 "2010 Ortası, Dağ Aslanı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.