Fix: Gagal Tidak Ada Rute untuk Di-Host Di Ubuntu Dengan Banyak Jaringan
Ketika Anda memiliki pengaturan jaringan yang rumit, sangat sulit untuk memiliki No Rute to Host mulai muncul setelah membesarkan antarmuka baru. Ini sering disebabkan oleh rute default yang diubah atau diturunkan.
Untuk mengecek rute default Anda masuk
acara rute ip
Seperti ditunjukkan di atas saya memiliki tiga antarmuka fisik, satu menghadap ke luar dan dua ke jaringan internal. Rute default jatuh pada jaringan ketika koneksi direset, menyebabkan sisa jaringan saya beroperasi secara normal, dengan hanya mesin ini yang tidak mengetahui di mana untuk mencapai Internet.
Agar mesin dapat menjangkau Internet, ia harus memiliki rute default yang dapat ditambahkan dengan perintah berikut
sudo ip route menambahkan default melalui 136.63.176.1
Jika Anda memiliki masalah ini muncul lebih dari sekali atau dua kali, itu bisa menjadi gangguan, jadi saya telah menulis beberapa skrip shell untuk memperbaiki situasi dengan cepat.
Skrip pertama akan mengambil ip Anda saat ini untuk Anda. Saya memiliki $ INTF ditetapkan sebagai STDIN, Anda mengubahnya ke antarmuka khusus Anda jika Anda tidak ingin memasukkan nama antarmuka.
Menggunakan editor teks favorit Anda, saya suka vim dan memiliki folder sumber di direktori home saya
mkdir ~ / src && cd ~ / src
vim getip.sh
#! / bin / bash
#fetch alamat ip yang ditetapkan untuk perangkat yang diberikan
INTF = $ {1}
PTH = (~ / src /)
deklarasikan TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d -f6 | cut -d / -f1> $ {PTH} sekarang _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | potong -d -f6 | potong -d / -f1 | potong -d. -f1-3 | awk '{cetak $ 0 ″ .0 / 24 ″}'> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | potong -d -f6 | potong -d / -f1 | potong -d. -f1-3 | awk '{print $ 0 ″ .1 ″}'> $ {PTH} gw _ $ {INTF} .ip
deklarasikan TMP_IP
TMP_IP = $ (cat $ {PTH} saat ini _ $ {INTF} .ip)
TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Siniecho current wan ip $ TMP_IP
Simpan dan keluar, membuatnya dapat dieksekusi, lalu ujilah.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Dengan asumsi yang bekerja dengan benar untuk Anda pergi ke depan dan salin ke / usr / local / bin / untuk membuatnya dieksekusi secara global.
sudo cp getip.sh / usr / local / bin / getip
Sekarang saya cukup mengetik getip eth0.2 dan ip akan dikembalikan.
Skrip kedua akan menetapkan rute default, serta menjalankan skrip pertama.
vim setip.sh
#! / bin / bash
getip $ {1}
#fetch alamat ip yang ditetapkan untuk perangkat yang diberikan
PTH = (~ / src /)
deklarasikan RT_IP
RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)
ip route ubah default melalui $ RT_IP
ip route tambahkan default melalui $ RT_IP
echo ip route - default melalui $ RT_IP
Simpan dan keluar. Anda mungkin telah memperhatikan bahwa saya telah mengubah keduanya dan menambahkan rute default, ini adalah untuk kesempatan bahwa Anda memiliki set gateway yang salah.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Anda dapat memeriksa tabel routing lagi untuk memeriksa kembali apakah semuanya baik.
sudo ip route show
Anda dapat menyalin skrip ke / usr / local / bin / jika Anda ingin mereka dapat dieksekusi secara global. Ini masih membutuhkan sudo, karena Anda memodifikasi dan antarmuka.
sudo cp setip.sh / usr / local / bin / setip
TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini