Назад | Перейти на главную страницу

Как узнать IP-адрес шлюза в Linux

Какую команду можно использовать, чтобы найти IP-адрес шлюза (например, адрес домашнего маршрутизатора) для eth0 в Linux?

Мне нужно получить IP-адрес из приложения командной строки для использования в сценарии оболочки.

Чтобы распечатать только IP-адрес gw по умолчанию:

route -n | grep 'UG[ \t]' | awk '{print $2}'

Чтобы распечатать информацию о маршруте на всех интерфейсах:

route -n

или

netstat -rn
ip route show 0.0.0.0/0 dev eth0 | cut -d\  -f3

это моя запись :)

Вы можете получить шлюз системы по умолчанию из вывода netstat -r или route

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.199.0   0.0.0.0         255.255.255.240 U         0 0          0 virbr1
192.168.200.0   0.0.0.0         255.255.255.240 U         0 0          0 virbr2
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 wlan0

0.0.0.0 - ваш шлюз по умолчанию, указывающий на 192.168.1.254 у меня.

Вывод из маршрута -n или netstat -rn и поиск пункта назначения 0.0.0.0.

Я предпочитаю iproute пакет:

# get the default route
ip route list | awk ' /^default/ {print $3}'
# get the default route but limit on eth0 (output may be empty)
ip route list dev eth0 | awk ' /^default/ {print $3}'

кто-нибудь короче этого? знак равно

ip r | awk '/^def/{print $3}'

netstat -rn |awk '{if($1=="0.0.0.0") print $2}'

это чисто напечатает IP шлюза. (что бы сценарий linux был без awk?)

Если вы хотите получить шлюз из файла интерфейсов:

#!/bin/bash
gateway=$(grep -P '^\tgateway' /etc/network/interfaces)
gateway=$(echo ${gateway:9})    # Remove "  gateway "   
echo "gateway = $gateway"
if [ $gateway == "" ]; then
    echo "gateway is blank"
    exit -1
fi

Моя единственная команда для получения IP-адреса шлюза по умолчанию:

route | grep default | awk '{print $2}'

Откройте терминал в вашей ОС Linux. Обычно он находится на верхней или нижней панели, в зависимости от используемого вами дистрибутива Linux. Открыв окно терминала, введите следующие команды «ip route | grep default ”Теперь подождите секунду, пока вы не получите результат, и обратите внимание на ваш адрес шлюза по умолчанию на экране. Адрес вашего шлюза должен выглядеть примерно как 192.168.1.1. Как только вы это узнаете, вы можете приступить к настройке маршрутизатора через его веб-панель администратора.

Если это не помогло вашей сети, вам может потребоваться новый маршрутизатор.