Was ist das GNU / Linux-Äquivalent zu BSDs "route get ..."?


16

Der BSD- routeBefehl verfügt über eine Funktion, die anzeigt, welche Route für einen bestimmten Host ausgewählt wird. Beispielsweise:

/Users/mhaase $ route get google.com
   route to: iad23s07-in-f8.1e100.net
destination: iad23s07-in-f8.1e100.net
    gateway: 10.36.13.1
  interface: en0
      flags: <UP,GATEWAY,HOST,DONE,WASCLONED,IFSCOPE,IFREF>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

Ich finde dies gelegentlich nützlich, wenn ich manuell mit Routingtabellen experimentiere, um sicherzustellen, dass die Routingregeln wie erwartet funktionieren.

Die GNU-Version von route hat nicht denselben Unterbefehl "get". Gibt es ein Äquivalent oder eine Alternative für GNU / Linux?


1
Ich habe nach / BSD / äquivalent von ip ro gesucht, aber diese Seite reicht immer noch :)
Benjamin Goodacre

Antworten:


21

Es gibt

ip route get 74.125.137.100

Aber es löst keine Hostnamen auf (was ich für eine gute Sache halte). Der Befehl ist normalerweise in iproute- oder iproute2-Paketen verfügbar.


3
ip route get "$(dig google.com +short)"für die Auflösung von Hostnamen.
Jordanien

5
@jordanm, eher wie:dig google.com +short | xargs -tn1 ip route get
Stéphane Chazelas

1
@ StéphaneChazelas, bitte lassen Sie mich wissen, dass für diesen obigen Linux-Befehl ein Internet erforderlich ist oder er das Ergebnis aus einer beliebigen Routing-Tabelle / einem Cache abruft.
kd12

Der Befehl 'dig' führt eine DNS-Suche durch. Dies erfordert möglicherweise einen Netzwerkzugriff, es sei denn, der DNS-Eintrag befindet sich im lokalen Cache.
WillW

> aber es löst keine Hostnamen auf (was ich für eine gute Sache halte) - ist es Ihnen wichtig zu erklären, warum Sie der Meinung sind, dass die dadurch verursachten Unannehmlichkeiten wirklich etwas wert sind?
Poige
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.