Какую команду вы можете использовать, чтобы найти IP-адрес шлюза (т.е. адрес домашнего маршрутизатора) для eth0 в Linux?
Мне нужно получить IP-адрес из приложения командной строки для использования в сценарии оболочки.
Какую команду вы можете использовать, чтобы найти IP-адрес шлюза (т.е. адрес домашнего маршрутизатора) для eth0 в Linux?
Мне нужно получить IP-адрес из приложения командной строки для использования в сценарии оболочки.
Ответы:
Чтобы распечатать только gw IP по умолчанию:
route -n | grep 'UG[ \t]' | awk '{print $2}'
Чтобы распечатать информацию о маршруте на всех интерфейсах:
route -n
или
netstat -rn
route -n | awk '{if($4=="UG")print $2}'
route -n|awk '$4~/G/{print $2; exit(0)}'
первого шлюза, но ip route get IP
лучше, потому что в нем указан маршрут, по которому действительно можно перейти к данному IP, который трудно найти в route
одиночку
ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3
это моя запись :)
cut
в ~ 20 раз легче двоичного файла, чем awk
.
Вы можете получить системный шлюз по умолчанию с выхода 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 на моем месте.
Я предпочитаю пакет 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}'
ip r | awk 'END{print $3}'
на три символа короче.
read x x i x< <(ip r g 1)
, результат находится в переменной $ i для дальнейшего использования
netstat -rn |awk '{if($1=="0.0.0.0") print $2}'
это будет чисто распечатать IP-адрес шлюза. (что бы сценарии linux были без awk ?)
netstat -rn|sed -n '/^0.0.0.0/{ s/^[0. ]*//; s/ .*$//; p; }
Открытый терминал в вашей ОС Linux. Обычно он находится в верхней или нижней панели, в зависимости от используемого дистрибутива Linux. После того, как вы открыли окно «Терминал», введите следующие команды: «ip route | grep default ”Теперь подождите секунду для вывода и запишите ваш адрес шлюза по умолчанию на экране. Ваш адрес шлюза должен выглядеть примерно как 192.168.1.1. Как только вы это узнаете, вы можете приступить к настройке маршрутизатора через его панель администратора.
Если это не помогло исправить вашу сеть, вам может понадобиться новый маршрутизатор.