Kapag mayroon kang isang kumplikadong pag-set up ng network, nakakabigo na magkaroon ng ' Walang Ruta sa Host ”Simulang lumitaw pagkatapos itaas ang isang bagong interface. Ito ay madalas na sanhi ng default na ruta na nabago o nahulog.
Upang suriin ang iyong default na ruta ipasok
ip ruta ipakita
Tulad ng palabas sa itaas mayroon akong tatlong mga pisikal na interface, isang panlabas na nakaharap at dalawa sa panloob na mga network. Ang default na ruta ay bumagsak sa network kapag ang isang koneksyon ay na-reset, na naging sanhi ng natitirang bahagi ng aking network na gumana nang normal, kasama lamang ang makina na ito na hindi alam kung saan maaabot ang Internet.
Para maabot ng makina ang Internet kinakailangan nito na magkaroon ng isang default na ruta na maaaring maidagdag sa sumusunod na utos
sudo ip ruta magdagdag ng default sa pamamagitan ng 136.63.176.1
Kung mayroon kang problemang ito na lumitaw nang higit sa isang beses o dalawang beses, maaari itong maging isang istorbo, kaya mayroon akong isang nakasulat na isang pares ng mga script ng shell upang mabilis na maitama ang sitwasyon.
Kukuha ng unang script ang iyong kasalukuyang ip para sa iyo. Mayroon akong $ INTF na itinakda bilang STDIN, binago mo ito sa iyong tukoy na interface kung hindi mo nais na ipasok ang pangalan ng interface.
Gamit ang iyong paboritong text editor, gusto ko ang vim at magkaroon ng isang folder ng mapagkukunan sa aking direktoryo sa bahay
mkdir ~ / src && cd ~ / src
Dumating ako getip.sh
#! / bin / bash
#fetch ip address na nakatakda para sa naibigay na aparato
INTF = $ {1}
PTH = (~ / src /)
ideklara ang TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '” -f6 | cut -d “/” -f1> $ {PTH} kasalukuyang _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | putol -d '” -f6 | gupitin -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | putol -d '” -f6 | gupitin -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
ideklara ang TMP_IP
TMP_IP = $ (cat $ {PTH} kasalukuyang _ $ {INTF} .ip)
echo “kasalukuyang wan ip $ TMP_IP”
I-save at lumabas, gawin itong maisakatuparan, at pagkatapos ay subukan ito.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Ipagpalagay na gumana nang maayos para sa iyo na magpatuloy at kopyahin ito sa / usr / local / bin / upang ito ay maipatupad sa buong mundo.
sudo cp getip.sh / usr / local / bin / getip
Ngayon ay maaari ko nang mai-type ang getip eth0.2 at ibabalik ang ip.
Ang pangalawang script ay magtatalaga ng default na ruta, pati na rin ang pagpapatakbo ng unang script.
Galing ako sa setip.sh
#! / bin / bash
makakuha ng $ {1}
#fetch ip address na nakatakda para sa naibigay na aparato
PTH = (~ / src /)
ideklara ang RT_IP
RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)
ip ruta baguhin ang default sa pamamagitan ng $ RT_IP
ip ruta magdagdag ng default sa pamamagitan ng $ RT_IP
echo “ip ruta - default sa pamamagitan ng $ RT_IP”
I-save at mag-quit. Maaaring napansin mo na pareho akong nagbago at nagdagdag ng default na ruta, ito ay para sa mga okasyon na mayroon kang maling itinakdang gateway.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Maaari mong suriin muli ang talahanayan ng pagruruta upang i-double check na ang lahat ay mabuti.
ipakita ang ruta ng sudo ip
Maaari mong kopyahin ang mga script sa / usr / local / bin / kung nais mo silang maipatupad sa buong mundo. Mangangailangan pa rin ito ng sudo, habang nagbabago ka at interface.
2 minuto basahinsudo cp setip.sh / usr / local / bin / setip