Düzeltme: Birden Çok Ağ ile Ubuntu'da Barındırmak İçin Rota Yok Başarısız



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

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



ana bilgisayar-1

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

ana bilgisayar-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

ana bilgisayar-3

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.

sudo cp setip.sh / usr / local / bin / setip

2 dakika okundu