Perintah apa yang dapat Anda gunakan untuk menemukan Gateway IP Address (mis. Alamat router rumah) untuk eth0 di Linux?
Saya perlu mendapatkan alamat IP dari aplikasi baris perintah untuk digunakan dalam skrip shell.
Perintah apa yang dapat Anda gunakan untuk menemukan Gateway IP Address (mis. Alamat router rumah) untuk eth0 di Linux?
Saya perlu mendapatkan alamat IP dari aplikasi baris perintah untuk digunakan dalam skrip shell.
Jawaban:
Untuk mencetak hanya IP gw default:
route -n | grep 'UG[ \t]' | awk '{print $2}'
Untuk mencetak informasi rute pada semua antarmuka:
route -n
atau
netstat -rn
route -n | awk '{if($4=="UG")print $2}'
route -n|awk '$4~/G/{print $2; exit(0)}'
untuk gateway pertama, tetapi ip route get IP
lebih baik, karena mencantumkan rute yang akan benar-benar dibawa ke IP yang diberikan, yang sulit ditemukan dengan route
sendirian
ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3
adalah entri saya :)
cut
~ 20 kali lebih ringan dari biner awk
.
Anda bisa mendapatkan gateway default sistem dari output netstat -r
atauroute
$ 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 adalah gateway default Anda, menunjuk ke 192.168.1.254 di tempat saya.
Saya lebih suka paket 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}'
Adakah yang lebih pendek dari ini? =)
ip r | awk '/^def/{print $3}'
ip r | awk 'END{print $3}'
tiga karakter lebih pendek.
read x x i x< <(ip r g 1)
, hasilnya dalam variabel $ i untuk penggunaan lebih lanjut
netstat -rn |awk '{if($1=="0.0.0.0") print $2}'
ini akan mencetak IP gateway dengan bersih. (Apa yang akan menjadi scripting linux tanpa awk ?)
netstat -rn|sed -n '/^0.0.0.0/{ s/^[0. ]*//; s/ .*$//; p; }
Buka Terminal di OS Linux Anda Biasanya terletak di bar bagian atas atau bawah, tergantung pada distribusi Linux yang Anda gunakan Setelah Anda membuka jendela Terminal, masukkan perintah berikut “ip route | grep default ”Sekarang tunggu sebentar untuk output dan catat alamat gateway default Anda di layar. Alamat gateway Anda akan terlihat seperti 192.168.1.1. Setelah Anda mengetahuinya, Anda dapat mulai mengkonfigurasi router Anda melalui panel admin webnya.
Jika ini tidak memperbaiki jaringan Anda, Anda mungkin perlu router baru.