Как узнать gateway в linux
Перейти к содержимому

Как узнать gateway в linux

  • автор:

Как узнать шлюз интерфейса? BASH

Задача на деле такая, нужно в переменные загнать значения шлюза, нетмаск и ип адрес.

с ип адресом задача решена таким образом:

IP="`ip addr list eth0 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1`"

теперь надо определить шлюз, и нетмаск в виде 192.168.0.0/24 Но вот познаний в Линукс терминале мало ( Выручайте.

Ph3nix
12.12.14 10:57:26 MSK
leave ★★★★★
( 12.12.14 11:14:26 MSK )

ip r | awk '/default/'

uspen ★★★★★
( 12.12.14 11:14:30 MSK )
Последнее исправление: uspen 12.12.14 11:15:17 MSK (всего исправлений: 1)

# ip r list match 0.0.0.0/0 | awk '' 

но дефолтных маршрутов может быть несколько

anonymous
( 12.12.14 11:17:31 MSK )

ip -o -4 a l eth0 | cut -d " " -f 7 | cut -d / -f 1 ip -o -4 a l eth0 | awk '' | cut -d / -f 1 

sin_a ★★★★★
( 12.12.14 11:30:17 MSK )

Вопрос к знатокам — а в /proc нигде нет файлов с ip и прочей инфой?

alozovskoy ★★★★★
( 12.12.14 14:43:48 MSK )

с ип адресом задача решена таким образом: (someshit)

На интерфейсе может быть (и часто бывает) более одного ip-адреса.

Что такое «шлюз интерфейса»? Тебя интересует default gateway? Если да — то их тоже может быть больше одного (с разной метрикой).

nbw ★★★
( 12.12.14 14:59:22 MSK )
Ответ на: комментарий от sin_a 12.12.14 11:30:17 MSK

Спасибо, помог. Слепил вроде ) Топорно, но под мои нужды сойдёт!

Ph3nix
( 12.12.14 15:10:39 MSK ) автор топика
Ответ на: комментарий от nbw 12.12.14 14:59:22 MSK

Да, нужен дефолтный, понятно что может быть несколько, я спрашивал по поводу как узнать его на определённом интерфейсе с условием что он там один, мне скрипт для своих нужд нужен! ) В общем слепил я динозавра, работает вроде, но если есть какие варианты ещё, я не откажусь )

Ph3nix
( 12.12.14 15:15:21 MSK ) автор топика
Ответ на: комментарий от sin_a 12.12.14 11:30:17 MSK

ip -o -4 a l eth0 | cut -d » » -f 7 | cut -d / -f 1

Device «eth0» does not exist.
/sbin/route -n | awk '$1=="0.0.0.0" '

А вообще смысл трэда непонятен. Таких тем в сети уже тысячи

snaf ★★★★★
( 13.12.14 18:50:17 MSK )
30 марта 2015 г.

Ребят, сам наткнулся на эту тему, решая аналогичную задачу. Рабочего решения для случаев, когда шлюз показывает ни одна из команд ip route, route -n и ifconfig, здесь так и не предложили, к сожалению. Попробую это исправить.

Объясню человекопонятным языком.

Для одних интерфейсов, ifconfig покажет destionation. Для других интерфейсов, ifconfig покажет broadcast, а вот текущий адрес шлюза — фиг. Подозреваю, что вопрос касался именно таких интерфейсов.

В ситуации, когда к компу подключены 10 usb-модемов (да, блин, 2g-gsm/edge местами рулит 🙁 ) с разными интерфейсами, где для одних есть destination, для других broadcast и необходимо агрегировать все соединения, надо обязательно узнать текущие адреса шлюзов всех интерфейсов, чтобы правильно прописать маршруты.Причем, сделать это нужно динамически, скриптом, чтобы не прописывать и не добавлять кучу маршрутов вручную каждый раз.

Собственно, сразу к результатам углубленного ковыряния данного вопроса, без скучного описания самого процессса.

Адреса сохраняются в кеше ARP, получить их можно так:

arp -i интерфейс
ip neigh show dev интерфейс

Ну и получение непосредственно адреса шлюза:

P2=`ip neigh show dev интерфейс | grep -E “REACHABLE|STALE” | awk ` #теперь $P2 присовено значение в виде IP шлюза интерфейса echo $P2

Методы получения адресов шлюза для других типов интерфейсов приводились выше — обычно, их можно молучить командами типа ifconfig, ip route и route -n. Меня же, интересовал вопрос о том, как получить адрес шлюза интерфейса, который не отображается командами ifconfig, ip route и route -n и надеюсь, что помог(у) этим сообщением хотябы одному человеку на земле 🙂

VictorAS
( 30.03.15 00:37:52 MSK )
28 сентября 2016 г.
Ответ на: комментарий от VictorAS 30.03.15 00:37:52 MSK

Подниму тему. И все-таки как вытащить адреса шлюзов, которые выдаются по DHCP на интерфейс. Пример такой. Имеем линукс машину в которую от двух провайдеров воткнуто по аплинку. Оба провайдера выдают адреса по DHCP. Нужно на сервере настроить балансировку трафика в оба канала. Делается это довольно изящно.

 route del default ip ro flush cache ip ro add default scope global nexthop via ip_gateway_1 dev eth0 weight 50 nexthop via ip_gateway_2 dev eth1 weight 50 

Но для этого нужно знать, что выдается по DHCP. Из этого вопрос где, в том же Debian, хранится эта информация? Нужно это для скрипта.

bredis
( 28.09.16 21:06:00 MSK )
Ответ на: комментарий от bredis 28.09.16 21:06:00 MSK

Сразу скажу не Debian, но вроде на него можно накатить dhcpcd, который выдаст например по dhcpcd -T eth0 полную инфу

Как найти IP шлюза по умолчанию в Linux 2 мин для чтения

Как найти IP шлюза по умолчанию в Linux

Э тот быстрый совет по Linux показывает вам различные методы для определения IP-адреса шлюза вашего маршрутизатора в командной строке Linux.

В предыдущей статье мы рассказывали вам о поиске IP-адреса в командной строке Linux. В этом кратком совете мы покажем вам, как найти IP-адрес шлюза по умолчанию в командной строке Linux.

Шлюз работает как вход или дверь между двумя сетями. Маршрутизатор является примером шлюза. Весь ваш трафик идет к маршрутизатору, а затем к остальной части Интернета.

Иногда вам нужно знать IP-адрес вашего маршрутизатора. IP-адрес шлюза — это IP-адрес вашего маршрутизатора при обычной настройке.

Мы собираемся использовать команду IP, чтобы показать IP шлюза в Linux.

Откройте терминал и используйте следующую команду:

ip route

Вы должны увидеть результат вроде этого:

[gn_note note_color=»#88a5f9″ text_color=»#000000″ radius=»6″]default via 192.168.0.1 dev wlp58s0 proto dhcp metric 600
169.254.0.0/16 dev wlp58s0 scope link metric 1000
192.168.0.0/24 dev wlp58s0 proto kernel scope link src 192.168.0.106 metric 600[/gn_note]

Сосредоточьтесь на строке, которая начинается с default. Это даст IP-адрес шлюза по умолчанию.

В качестве альтернативы и удобства вы можете использовать вышеуказанную команду в сочетании с командой grep:

ip route | grep default

Это просто даст IP-адрес шлюза по умолчанию в выходных данных:

[gn_note note_color=»#88a5f9″ text_color=»#000000″ radius=»6″]default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600[/gn_note]

И, как вы можете видеть, 192.168.0.1 является IP-адресом шлюза по умолчанию в нашем случае.

Другие способы найти IP-адрес шлюза в Linux

Команда IP в Linux обеспечивает большинство ваших основных сетевых потребностей. Но, как вы уже заметили, в Linux существует несколько способов сделать определенные вещи.

Чтобы узнать IP шлюза, вы также можете использовать другие сетевые инструменты командной строки. Позвольте нам показать их вам.

Читать Как получить код возврата из процесса при выполнении подпроцесса Python?

Найти шлюз в Linux с помощью команды route

Вы можете использовать опцию -n с командой route для отображения таблицы маршрутизации с IP-адресами.

route -n

Пример вывода должен быть таким:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp58s0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp58s0 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp58s0

Обратите внимание на флаги U и G? U означает, что маршрут «вверх», а G означает, что это шлюз.

Показать шлюз в Linux с помощью команды netstat

Чтобы отобразить информацию о шлюзе, вы можете использовать команду netstat и отобразить таблицу маршрутизации, которая также составляет шлюз.

netstat -r -n

Вывод должен быть идентичен тому, что вы видели с командой route:

Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp58s0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlp58s0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp58s0

Вы можете идентифицировать шлюз с флагом G.

Заключение

Мы надеемся, что этот быстрый совет по Linux помог вам найти IP-адрес шлюза по умолчанию в командной строке Linux. Добавьте этот веб-сайт в ваш ридер для таких регулярных советов и руководств по Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Форум русскоязычного сообщества Ubuntu

Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

  • Форум русскоязычного сообщества Ubuntu »
  • Поддержка »
  • Настройка системы »
  • Сети и интернет (Модераторы: Дмитрий Бо, www777) »
  • Как узнать шлюы соединений?

Страницы: [1] 2 Все Вниз

Автор Тема: Как узнать шлюы соединений? (Прочитано 21003 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страницы: [1] 2 Все Вверх

  • Форум русскоязычного сообщества Ubuntu »
  • Поддержка »
  • Настройка системы »
  • Сети и интернет (Модераторы: Дмитрий Бо, www777) »
  • Как узнать шлюы соединений?

Страница сгенерирована за 0.029 секунд. Запросов: 25.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

VS Web School

Gateway — адрес для связи с другими сетями (например, локальной и глобальной). Может быть любым свободным, но, по традиции его выбирают идущим за ip-адресом сети.

Ниже вывод показывает мой шлюз по умолчанию 192.168.0.1.

UG: U означает сеть UP и G означает Gateway.

Откройте ваш терминал и введите следующие команды, чтобы увидеть шлюз по умолчанию:

С помощью команды route
$ route -n

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan2
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan2

С помощью команды ip route

$ ip route show
default via 192.168.0.1 dev wlan2 proto static
192.168.0.0/24 dev wlan2 proto kernel scope link src 192.168.0.82 metric 9

С помощью команды netstat
$ netstat -rn

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan2
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan2

Чтобы узнать имя Gateway хоста введите следующую команду route
В моем примере PK5000Z.PK5000Z является шлюзом

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default PK5000Z.PK5000Z 0.0.0.0 UG 0 0 0 wlan2
192.168.0.0 * 255.255.255.0 U 9 0 0 wlan2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *