it-swarm.com.de

Wie finde ich den Namen der aktuell aktiven Netzwerkschnittstelle?

Ich muss den Namen der Netzwerkschnittstelle (z. B. eth0, wlan0) abrufen, die gerade aktiv ist und Datenverkehr sendet und empfängt. Wenn es mit WiFi verbunden ist, wäre es wlan0, aber wenn es direkt verbunden ist, wäre es eth0. Oder etwas anderes, je nachdem, welche Netzwerkgeräte im System vorhanden und welche aktiv sind. Wie kann ich das herausfinden?

4
user779159

Öffnen Sie ein Terminal und führen Sie den Befehl aus:

ifconfig

Die aktive Schnittstelle hat eine IP-Adresse und sendet und empfängt Bytes. Hier ist ein Beispiel:

eth0  Link encap:Ethernet  HWaddr xx:a8:6b:fe:06:xx
      inet addr:192.168.1.14  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::eea8:6bff:fefe:696/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:449232 errors:0 dropped:0 overruns:0 frame:0
      TX packets:309483 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:633900275 (633.9 MB)  TX bytes:27944824 (27.9 MB)

Überprüfen Sie, ob die Ethernet-Schnittstelle verwendet wird:

ping -c3 -I eth0 www.google.com
ping: Warning: source address might be selected on device other than eth0.
PING www.google.com (74.125.228.145) from 192.168.1.100 eth0: 56(84) bytes of data.Wi-Fi
From Think410 (192.168.1.100) icmp_seq=1 Destination Host Unreachable
From Think410 (192.168.1.100) icmp_seq=2 Destination Host Unreachable
From Think410 (192.168.1.100) icmp_seq=3 Destination Host Unreachable

Stellen Sie sicher, dass die drahtlose Schnittstelle verwendet wird:

ping -c3 -I wlan0 www.google.com
PING www.google.com (74.125.228.148) from 192.168.1.100 wlan0: 56(84) bytes of data.
64 bytes from iad23s17-in-f20.1e100.net (74.125.228.148): icmp_seq=1 ttl=50 time=37.5 ms
64 bytes from iad23s17-in-f20.1e100.net (74.125.228.148): icmp_seq=2 ttl=50 time=36.8 ms
64 bytes from iad23s17-in-f20.1e100.net (74.125.228.148): icmp_seq=3 ttl=50 time=35.9 ms

Offensichtlich wird der Internetverkehr derzeit über wlan0, meine drahtlose Schnittstelle, geleitet.

Es ist möglich, Ethernet und WLAN gleichzeitig zu verbinden. Normalerweise lässt Network Manager dies nicht zu und bevorzugt Ethernet gegenüber WLAN, da es im Allgemeinen schneller und sicherer ist. Wenn man Ethernet für das LAN und WLAN für das WAN (Internet) verwenden möchte, würde man normalerweise NM entfernen und alle Details manuell in/etc/network/interfaces einstellen.

7
chili555

Es ist nicht nötig, dass ping jagt und pickt. Benutze ip link; Es enthält mehr wichtige Informationen als ifconfig. Jede Schnittstelle wird so etwas melden

  • LOOPBACK, dh aktiv, aber niemals extern (verkabelt oder drahtlos)
  • NO-CARRIER, dh es wird kein externes Signal erzeugt
  • BROADCAST bedeutet extern und ist aktiv
  • LOWER-UP, dh PHY ist aktiviert

Sie können zwei oder mehr externe Schnittstellen mit LOWER-UP haben, aber im Allgemeinen eine schlechte Idee. Hier ist mein Laptop mit Loopback (Bemerkung LOWER_UP), Down-Ethernet, WLAN0 auf und Erzeugen eines Signals, WLAN4 (USB-WLAN) auf, aber KEIN Signal, WLAN4.Monitor-Modus, der alle Stationen auf BSS beschnüffelt (Bemerkung LOWER-UP). wlan4.mon überträgt nicht.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 24:b6:fd:24:59:b9 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 4c:eb:42:32:0c:9e brd ff:ff:ff:ff:ff:ff
26: wlan4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:26:f2:b3:d7:93 brd ff:ff:ff:ff:ff:ff
27: wlan4.mon: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
    link/ieee802.11/radiotap 00:26:f2:b3:d7:93 brd ff:ff:ff:ff:ff:ffter code here
4
dturvene

Eine gute Möglichkeit, die Schnittstelle zu ermitteln, über die der bestimmte Datenverkehr übertragen wird, ist die Verwendung von ip route get. Verwenden Sie beispielsweise die DNS-Server von Google (8.8.8.8) oder Cloudflare (1.1.1.1), um herauszufinden, über welche Schnittstelle der Internetdatenverkehr übertragen wird:

$ ip route get 1.1.1.1
1.1.1.1 via 192.168.2.1 dev eth0 src 192.168.2.155 uid 0
    cache

Dann können Sie mit der Schnittstelle, die für das Internet verwendet wird, zum Beispiel eine Variable setzen:

LANIFACE=$(ip route get 1.1.1.1 | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' ')

Dann können Sie auch die IP-Adresse der Schnittstelle erhalten:

LANIP=$(ip addr show "$LANIFACE" | grep "inet " | cut -d '/' -f1 | cut -d ' ' -f6)

Vergessen Sie nicht, dass dieselbe Methode auch für andere Netzwerke funktioniert, nicht nur für solche im Internet.

3
rkantos

Wenn Sie ein bisschen mehr Details wünschen, versuchen Sie es mit jnettop. Dieses Tool zeigt Ihnen eine detaillierte Verkehrsüberwachung im Terminal.

Sudo apt-get install jnettop

einmal installiert, geben Sie einfach jnettop in das Terminal ein

1
A1 Computers