Parandus: ebaõnnestus Mitme võrguga Ubuntu hostimise marsruut puudub



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Kui teil on keeruline võrgu häälestus, on masendav, kui teil on Hostini pole marsruuti ”Hakkavad ilmuma pärast uue liidese tõstmist. Selle põhjuseks on vaikemarsruudi kas muutmine või mahajätmine.



Vaikimisi marsruudi kontrollimiseks sisestage



ip marsruudi saade



pole marsruuti host-1

Nagu eespool näidatud, on mul kolm füüsilist liidest, üks väljapoole suunatud ja kaks sisevõrkudega. Vaikimisi marsruut langes ühenduse taastamisel võrku, mistõttu ülejäänud mu võrk toimis normaalselt, ainult see masin ei teadnud, kuhu Internetti jõuda.

Selleks, et masin saaks Internetti pääseda, peab sellel olema vaikimisi marsruut, mille saab lisada järgmise käsuga



sudo ip marsruut lisab vaikimisi 136.63.176.1 kaudu

Kui teil tekib selline probleem rohkem kui üks või kaks korda, võib see osutuda häirivaks, nii et mul on kirjutatud paar shelliskripti, et olukorda kiiresti parandada.

Esimene skript toob teie jaoks teie praeguse ip-i. Mul on $ INTF seatud STDIN-iks. Kui te ei soovi liidese nime sisestada, muutke see oma konkreetseks liideseks.

Teie lemmiktekstiredaktorit kasutades meeldib mulle vim ja minu kodukataloogis on allikakaust

mkdir ~ / src && cd ~ / src

Tulin getip.sh

#! / bin / bash

#fetch ip-aadress määratud seadmele

INTF = $ {1}

PTH = (~ / src /)

deklareerige TMP_IP2

TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '” -f6 | cut -d “/” -f1> $ {PTH} praegune _ $ {INTF} .ip)

ip a | grep $ {INTF} | grep inet | lõika -d ”” -f6 | lõika -d “/” -f1 | lõika -d ”.” -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip

ip a | grep $ {INTF} | grep inet | lõika -d ”” -f6 | lõika -d “/” -f1 | lõika -d ”.” -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip

deklareerige TMP_IP

TMP_IP = $ (kass $ {PTH} praegune _ $ {INTF} .ip)

kaja 'praegune wan ip $ TMP_IP'

Salvestage ja väljuge, muutke see käivitatavaks ja testige seda.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

pole marsruuti host-2

Eeldades, et see teie jaoks korralikult töötas, kopeerige see globaalselt käivitatavaks muutmiseks kataloogi / usr / local / bin /.

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

Nüüd saan lihtsalt kirjutada getip eth0.2 ja ip tagastatakse.

Teise skripti abil määratakse vaikimisi marsruut, samuti käivitatakse esimene skript.

Tulin aadressilt setip.sh

#! / bin / bash

saada $ {1}

#fetch ip-aadress määratud seadmele

PTH = (~ / src /)

deklareerida RT_IP

RT_IP = $ (kass $ {PTH} gw _ $ {1} .ip)

ip marsruudi muutmine vaikimisi $ RT_IP kaudu

ip marsruut lisab vaikimisi $ RT_IP kaudu

kaja 'ip marsruut - vaikimisi $ RT_IP kaudu'

Salvestage ja lõpetage. Võib-olla olete märganud, et mul on nii vaikemarsruut muutmine kui ka lisamine, see on juhuks, kui teil on vale lüüs määratud.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

pole marsruuti host-3

Võite uuesti kontrollida marsruutimistabelit, et kontrollida, kas kõik on korras.

sudo ip marsruudi saade

Skriptid saate kopeerida kataloogi / usr / local / bin /, kui soovite, et need oleksid ülemaailmselt käivitatavad. See nõuab endiselt sudot, kuna muudate ja liidestate.

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

2 minutit loetud