Ich verfüge sowohl über eine kabelgebundene (enp59s0u2u1i5) als auch eine kabellose Schnittstelle zum Internet und verwende darüber hinaus ein VPN (wg-mullvad).
Wie kann ich erkennen, welche dieser Schnittstellen (kabelgebunden oder drahtlos) von der VPN-Schnittstelle zum Weiterleiten des Datenverkehrs verwendet wird?
Dies ist die Ausgabe von ip link
:
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: enp59s0u2u1i5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
6: wg-mullvad: <POINTOPOINT,UP,LOWER_UP> mtu 1380 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/none
Ausgabe von netstat -r
:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 enp59s0u2u1i5
default _gateway 0.0.0.0 UG 0 0 0 wlan0
10.64.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg-mullvad
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp59s0u2u1i5
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Antwort1
Verwenden Sie es ip route get
mit den genauen Parametern, also der Remote-IP-Adresse des Tunnelendpunkts und insbesondere der von wg-mullvad verwendeten FW-Marke, wenn diese vom wg
Befehl angezeigt wird.
# wg show wg-foo
interface: wg-foo
fwmark: 0x52
peer:
endpoint: 1.2.3.4
# ip r get 1.2.3.4 mark 0x52
1.2.3.4 via 192.168.10.1 dev rtl0 table 82 mark 0x52
(Sie können hinzufügen, fibmatch
um den tatsächlich verwendeten Routeneintrag direkt anzuzeigen.)
Verwenden Sie es im Allgemeinen, ip route
um Routingtabellen unter Linux aufzulisten, da es mehr als eine geben kann – die von WireGuard gesetzte Paketmarkierung wird verwendet, um ip rule
eine alternative Tabelle für den verschlüsselten Datenverkehr auszuwählen. Sie könnten es manuell herausfinden, aber einige VPN-Clients generieren etwas komplexere Regeln und es ist einfacher, es zu verwenden ip r get
und den Kernel die Antwort liefern zu lassen.
# ip rule
501: from all fwmark 0x52 lookup 82 proto static
# ip r ls table 82
default via 192.168.10.1 dev rtl0 proto dhcp
(Aber selbst für die Haupttabelle würde ich es netstat -r
unter Linux grundsätzlich vermeiden, da es nicht weiß, wie es über die einfachsten Routeneinträge hinaus angezeigt werden soll.)
Vergessen Sie nicht, dass tcpdump
Ihnen buchstäblich die Pakete angezeigt werden können, die über jede Schnittstelle gesendet werden.