Como encontrar o endereço IP do gateway no Linux

6

Qual comando você pode usar para encontrar o endereço IP do gateway (ou seja, endereço do roteador residencial) para a eth0 no Linux?

Eu preciso obter o endereço IP de um aplicativo de linha de comando para usar em um script de shell.

    
por J. Polfer 24.06.2009 / 20:22

11 respostas

14

Para imprimir apenas o IP gw padrão:

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

Para imprimir informações de rota em todas as interfaces:

route -n

ou

netstat -rn
    
por 24.06.2009 / 20:31
8
ip route show 0.0.0.0/0 dev eth0 | cut -d\  -f3

é minha entrada:)

    
por 24.06.2009 / 21:26
5

Você pode obter o gateway padrão do sistema a partir da saída de netstat -r ou route

    
por 24.06.2009 / 20:25
3
$ 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

O 0.0.0.0 é o seu gateway padrão, apontando para 192.168.1.254 na minha casa.

    
por 24.06.2009 / 20:30
2

A saída da rota -n ou netstat -rn e procura o destino 0.0.0.0.

    
por 24.06.2009 / 20:26
2

Eu prefiro o pacote 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}'
    
por 24.06.2009 / 20:40
2

alguém menor que isso? =)

ip r | awk '/^def/{print $3}'
    
por 20.12.2011 / 07:32
1

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

isto imprimirá de forma limpa o IP do gateway. (o que seria o script do linux sem o awk ?)

    
por 14.10.2009 / 09:48
0

Se você deseja obter o gateway do arquivo de interfaces:

#!/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
    
por 07.09.2017 / 16:18
0

Meu comando one liner para obter o endereço IP do gateway padrão:

route | grep default | awk '{print $2}'
    
por 06.11.2017 / 06:51
-2

Abra o Terminal no seu sistema operacional Linux Geralmente, ele está localizado na barra superior ou na barra inferior, dependendo da distribuição do Linux que você usa Depois de abrir a janela do Terminal, digite os seguintes comandos “Rota ip | grep default ” Agora espere um segundo pela saída e anote seu endereço de gateway padrão na tela Seu endereço de gateway deve ser algo como 192.168.1.1. Depois de saber, você pode começar a configurar seu roteador por meio do painel de administração da web.

Se isso não corrigir sua rede, talvez seja necessário um novo roteador.

    
por 22.06.2018 / 16:23