Что такое GNU / Linux-эквивалент BSD «route get…»?


16

Команда BSD routeимеет функцию, которая покажет, какой маршрут будет выбран для данного хоста. Например:

/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 

Иногда я нахожу это полезным, если я вручную связываюсь с таблицами маршрутизации, чтобы убедиться, что правила маршрутизации работают должным образом.

GNU-версия route не имеет такой же подкоманды get. Есть ли какой-то эквивалент или альтернатива для GNU / Linux?


1
Я искал / BSD / эквивалент ip ro, но этой страницы все еще достаточно :)
Бенджамин Гудэйкр

Ответы:


21

Есть

ip route get 74.125.137.100

но это не делает разрешение имени хоста (что я считаю хорошей вещью). Команда обычно доступна из пакетов iproute или iproute2.


3
ip route get "$(dig google.com +short)"для разрешения имени хоста.
Иордания

5
@jordanm, Больше похоже на:dig google.com +short | xargs -tn1 ip route get
Стефан Шазелас

1
@ StéphaneChazelas, пожалуйста, дайте мне знать, что для этой команды linux требуется интернет или она извлекает результат из любой таблицы / кэша маршрутизации?
kd12

Команда 'dig' выполняет поиск DNS. Для этого может потребоваться доступ к сети, если запись DNS не находится в локальном кэше.
WillW

> но это не делает разрешение имени хоста (что я думаю, что это хорошо) - хотите прояснить, почему вы думаете, что доставленные неудобства действительно чего-то стоят?
августа
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.