it-swarm-eu.dev

Jak zjistit, jaké rozhraní používám pro připojení k internetu?

Mám eth0 a wlan0 podle ifconfig a mohu ping google.com.

Jak zjistím (s běžným uživatelem, nikoli root), jaké rozhraní je aktivní, jako v jakém rozhraní používá ping (nebo cokoli, ping není povinný)?

Používám Ubuntu 11.04 nebo Fedora 14

56
LanceBaynes

Můžete použít route k nalezení výchozí trasy:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Ve sloupci Iface v řádku s cílem default je uvedeno, jaké rozhraní se používá.

55
Job

Moje verze, která je v zásadě založena na this a this :

route | grep '^default' | grep -o '[^ ]*$'

A to experimentálně pro MacOS:

route -n get default | grep 'interface:' | grep -o '[^ ]*$'
31
Ebrahim Byagowi

V systémech GNU/Linux:

#!/bin/sh

# Host we want to "reach"
Host=google.com

# get the ip of that Host (works with dns and /etc/hosts. In case we get  
# multiple IP addresses, we just want one of them
Host_ip=$(getent ahosts "$Host" | awk '{print $1; exit}')

# only list the interface used to reach a specific Host/IP. We only want the part
# between dev and src (use grep for that)
ip route get "$Host_ip" | grep -Po '(?<=(dev )).*(?= src| proto)'
11
Torgeir

Jedna vložka:

ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'

8
h0tw1r3

Získejte výchozí síťové rozhraní obvykle používané pro směrování na „zbývající“ internet na rozdíl od DMZ, privátní sítě, VM Host atd.), Které jsou obvykle směrovány explicitně.

$ ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)'
eth0
7
EugeneP

Spuštěním ifconfig získáte potřebné informace.

Aktivní rozhraní bude mít inet addr A zobrazí záznam přenášených dat, například:

RX bytes:1930741 (1.8 Mb)  TX bytes:204768 (199.9 Kb)

Můžete také použít příkaz ip addr A všechna neaktivní rozhraní budou označena jako s: NO-CARRIER.

6
jasonwryan

Příkaz ip route ls dá seznam aktivních tras a jejich zdrojů:

caleburn: ~/ >ip route ls
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.7 
default via 192.168.10.254 dev eth0 
2
Shadur

Použijte tento příkaz:

$ route | grep default | awk '{print $8}'
enp0s3
1
Larry Catt

použijte následující:

ip r | grep default
0
akash

Pokud má váš počítač více rozhraní (což předpokládám), neexistuje žádné rozhraní, které bude použito pro připojení k internetu.

V závislosti na cíli, ke kterému se připojujete, váš systém zkontroluje tabulku ip (ta, která se zobrazí, když zadáte příkaz route), aby našla další naději/router, když ji najde, použije rozhraní s tím spojené.

To znamená, prosím, podívejte se na @ torgeir's answer , protože to přesně dělá:

  1. Vzhledem k doméně (pevně zakódované jako google.com, což je jediný špatný bod v odpovědi)
  2. Vyřeší to ip
  3. Konzultuje tabulku ip pro cestu, kterou má použít (a tedy i rozhraní).
0
kdehairy

Různá distribuce systémů Linux, Unix, některých verzí systému Microsoft Windows a mnoha dalších operačních systémů se neomezují pouze na použití jediného síťového rozhraní pro přístup na internet. Mnoho operačních systémů bude detekovat více než jedno platné rozhraní, schopné dosáhnout internetu, a nastavit každé z nich pro přenos provozu na internet (konkrétně brány, které se nakonec připojí k internetu). Pokud se OS pokusí dosáhnout externí sítě a uspěje pomocí eth0, přidá toto rozhraní do směrovací tabulky a připojí jej k této síti. Pokud se OS pokusí dosáhnout stejné externí sítě a také uspěje pomocí eth1, také přidá toto rozhraní (eth1) do směrovací tabulky jako další způsob, jak dosáhnout stejné sítě. Ostatní plakáty dosud nezohledňovaly význam metrických hodnot ve směrovací tabulce. Moje směrovací tabulka níže ukazuje dvě různá rozhraní, eth0 a wlan0. Oba jsou nastaveny, oba byly operačním systémem nastaveny automaticky jako výchozí trasy k bráně 192.168.1.1, a oba měli trasu vytvořenou operačním systémem automaticky k 192.168.1.X síť. Celá tato směrovací tabulka byla automaticky napsána OS. Já to neudělal. Rozdíl je zde uveden v tom, že kabelové ethernetové rozhraní (eth0) má nižší metriku (202), a tak více mého provozu do uzlů za mým vlastním bude přes toto rozhraní směrováno (je to upřednostňováno nižším metrikem), zatímco zbytek mého provozu do uzlů nad mou vlastní vůlí být směrován přes bezdrátové rozhraní (wlan0) (má vyšší metriku 303, a proto je OS méně preferován).

[email protected]:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Obě rozhraní jsou používána k dosažení „internetu“ a jejich použití je váženo hodnotami „metrických“, jak je vidět ve statistikách bajtů a paketů pro eth0 a wlan0 níže:

[email protected]:~ $ ip -s address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:31:a2:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.195/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 80787sec preferred_lft 69987sec
    inet6 fe80::2f3f:3f1d:8c35:a05e/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    14341060   22393    0       0       0       971     
    TX: bytes  packets  errors  dropped carrier collsns 
    1190274    10745    0       0       0       0       
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether dc:a6:32:31:a2:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.193/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
       valid_lft 80787sec preferred_lft 69987sec
    inet6 fe80::4f31:5fcf:8f70:b5ca/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    4963408    7954     0       0       0       929     
    TX: bytes  packets  errors  dropped carrier collsns 
    49371      235      0       0       0       0       

Je snadné vidět, že operační systém eth0 dostává větší provoz. Mnoho operačních systémů poskytne nižší metriku kabelovému rozhraní, které má rychlejší připojení, a vyšší metriku kabelovému rozhraní s pomalejším připojením. Například, pokud eth0 a eth1 oba se připojují ke stejnému uzlu, ale eth0 sjednalo připojení o 100 mb a eth1 sjednalo pouze připojení 10 mb, eth0 dostane nižší metriku než eth1. Podobně mnoho operačních systémů poskytne nižší metriku kabelovému rozhraní a vyšší metriku bezdrátovému rozhraní.

Více než jedno rozhraní lze nastavit automaticky (v závislosti na operačním systému) nebo ručně tak, aby bylo dosaženo stejného externího uzlu provedením/úpravou položek ve směrovací tabulce.

0
Just Jeff