Karmaşık bir ağ kurulumunuz olduğunda, ' Barındıracak Rota Yok ”Yeni bir arayüz oluşturduktan sonra görünmeye başlar. Bunun nedeni genellikle varsayılan rotanın değiştirilmesi veya düşürülmesidir.
Varsayılan rotanızı kontrol etmek için girin
ip rota gösterisi
Yukarıda gösterildiği gibi, biri dışa bakan ve ikisi dahili ağlara bakan üç fiziksel arayüzüm var. Bir bağlantı sıfırlandığında varsayılan yol ağda düştü ve ağımın geri kalanının normal şekilde çalışmasına neden oldu, yalnızca bu makine İnternet'e nereden erişeceğini bilmiyordu.
Makinenin İnternete erişebilmesi için aşağıdaki komutla eklenebilecek varsayılan bir rotaya sahip olması gerekir.
sudo ip yolu, 136.63.176.1 aracılığıyla varsayılan ekle
Eğer bu problem bir veya iki defadan fazla ortaya çıkarsa, bu bir sıkıntıya dönüşebilir, bu yüzden durumu hızlı bir şekilde düzeltmek için birkaç kabuk komut dosyası yazdım.
İlk komut dosyası sizin için mevcut ipinizi alacaktır. $ INTF'i STDIN olarak ayarladım, arayüz adını girmek istemiyorsanız kendi arayüzünüze değiştirin.
Favori metin düzenleyicinizi kullanarak, vim'i seviyorum ve ana dizinimde bir kaynak klasörüm var
mkdir ~ / src && cd ~ / src
Getip.sh geldim
#! / bin / bash
#fetch verilen cihaz için ip adresi ayarlandı
INTF = {1} ABD doları
PTH = (~ / src /)
TMP_IP2'yi beyan et
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d ”” -f6 | cut -d “/” -f1> $ {PTH} mevcut _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | kesim -d ”” -f6 | kes -d “/” -f1 | kesim -d ”.” -f1-3 | awk '{baskı $ 0 ″ .0 / 24 ″}'> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | kesim -d ”” -f6 | kes -d “/” -f1 | kesim -d ”.” -f1-3 | awk '{baskı $ 0 ″ .1 ″}'> $ {PTH} gw _ $ {INTF} .ip
TMP_IP beyan et
TMP_IP = $ (cat $ {PTH} mevcut _ $ {INTF} .ip)
echo 'mevcut wan ip $ TMP_IP'
Kaydedin ve çıkın, çalıştırılabilir hale getirin ve ardından test edin.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Bunun sizin için düzgün çalıştığını varsayarak devam edin ve bunu / usr / local / bin / içine kopyalayın ve global olarak yürütülebilir hale getirin.
sudo cp getip.sh / usr / local / bin / getip
Şimdi basitçe getip eth0.2 yazabilirim ve ip geri dönecektir.
İkinci komut dosyası, ilk komut dosyasını çalıştırmanın yanı sıra varsayılan yolu atayacaktır.
Setip.sh'den geldim
#! / bin / bash
getip $ {1}
#fetch verilen cihaz için ip adresi ayarlandı
PTH = (~ / src /)
RT_IP beyan et
RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)
$ RT_IP üzerinden ip yolu varsayılanını değiştir
$ RT_IP ile ip yolu varsayılanı ekle
echo 'ip yolu - varsayılan $ RT_IP üzerinden'
Kaydet ve çık. Hem varsayılan yolu değiştirdiğimi hem de eklediğimi fark etmiş olabilirsiniz, bu, ağ geçidi ayarınızın yanlış olduğu durumlar içindir.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Her şeyin yolunda olup olmadığını iki kez kontrol etmek için yönlendirme tablosunu tekrar kontrol edebilirsiniz.
sudo ip yol gösterisi
Komut dosyalarını global olarak çalıştırılabilir olmasını istiyorsanız / usr / local / bin / içine kopyalayabilirsiniz. Değiştirirken ve arayüz oluştururken yine de sudo gerektirecektir.
2 dakika okundusudo cp setip.sh / usr / local / bin / setip