Qual comando você pode usar para encontrar o Endereço IP do Gateway (por exemplo, endereço do roteador doméstico) para eth0 no Linux?
Preciso obter o endereço IP de um aplicativo de linha de comando para usar em um script de shell.
Qual comando você pode usar para encontrar o Endereço IP do Gateway (por exemplo, endereço do roteador doméstico) para eth0 no Linux?
Preciso obter o endereço IP de um aplicativo de linha de comando para usar em um script de shell.
Respostas:
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
route -n | awk '{if($4=="UG")print $2}'
route -n|awk '$4~/G/{print $2; exit(0)}'
para o primeiro gateway, mas ip route get IP
é melhor, porque ele lista a rota que seria realmente levado para o determinado IP, que é difícil de encontrar com route
sozinho
ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3
é a minha entrada :)
cut
é ~ 20 vezes mais binário do que awk
.
Você pode obter o gateway padrão do sistema a partir da saída netstat -r
ouroute
$ 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.
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}'
alguém mais baixo que isso? =)
ip r | awk '/^def/{print $3}'
ip r | awk 'END{print $3}'
é três caracteres mais curto.
read x x i x< <(ip r g 1)
, Resultado está em variável $ i para uso posterior
netstat -rn |awk '{if($1=="0.0.0.0") print $2}'
isso imprimirá claramente o IP do gateway. (o que seria o script linux sem o awk ?)
netstat -rn|sed -n '/^0.0.0.0/{ s/^[0. ]*//; s/ .*$//; p; }
Abrir o terminal no sistema operacional Linux Geralmente, ele está localizado na barra superior ou na barra inferior, dependendo da distribuição do Linux usada. Depois de abrir a janela do Terminal, digite os seguintes comandos “ip route | Agora, espere um segundo pela saída e anote o endereço de gateway padrão na tela. O endereço de gateway deve se parecer com 192.168.1.1. Depois de conhecê-lo, você pode começar a configurar seu roteador através do painel de administração da web.
Se isso não corrigiu sua rede, você pode precisar de um novo roteador.