Ar bandydami pasiekti serverį sistemoje „Linux“ susidūrėte su užrašu „No Route to Host“? Ši paslaugos ryšio klaida gali erzinti, tačiau nustatę priežastį galite ją ištaisyti.
„Nėra maršruto į pagrindinį kompiuterį“ reiškia tinklo problemą, dažniausiai tokią, kuri atsiranda, kai serveris arba pagrindinis kompiuteris nereaguoja. Taip gali nutikti dėl tinklo problemų arba dėl netinkamos sąrankos.
Šiame straipsnyje apžvelgsime, kaip pašalinti triktis ir ištaisyti tinklo situaciją.
Ar jūsų tinklo nustatymai teisingi?
Prieš nagrinėdami konkrečias šios problemos priežastis, įsitikinkite, kad tinklo nustatymai yra teisingi. Ar galite prisijungti prie interneto? Ar jūsų DNS tinkamai sukonfigūruotas?
- Pradėkime paleisdami šią komandą, kad sužinotume: systemd-resolve – būsena
- Jei ten pastebėsite kokių nors DNS problemų, grįžkite į tinklo konfigūraciją ir, jei reikia, pakartokite. Jei naudojate standartinį tinklą su dinaminiu IP, DNS numeriai turėtų būti atnaujinti automatiškai.
- Norėdami rankiniu būdu sukonfigūruoti DNS, eikite į Tinklo valdytojas ir rankiniu būdu įveskite IP adresą IPv4 skirtuke.
- Jei jūsų Linux distribucija neturi grafinio darbalaukio, eikite į „/etc/systemd/resolved.conf“, suraskite DNS eilutę ir pakeiskite skaičius norimais DNS numeriais ir, jei reikia, atlikite kitas konfigūracijas.
- Be to, jei nustatėte statinį IP, galbūt norėsite grįžti prie dinaminio IP ir leisti tinklui gauti ryšio informaciją per DHCP.
Nepamirškite iš naujo paleisti kompiuterio prieš bandydami vėl prisijungti prie pagrindinio kompiuterio. Jei vis dar gaunate pranešimą „No Route to Host“, skaitykite toliau.
Ar pagrindinis serveris prisijungęs?
Kitas žingsnis – patikrinti, ar priegloba, prie kurios bandote prisijungti, iš tikrųjų yra prisijungusi. Galų gale, viena iš dažniausiai pasitaikančių klaidos priežasčių yra ta, kad paslauga neveikia dėl priežiūros ar kitos problemos.
Jei paslauga neprisijungusi, patikrinkite, ar priegloba yra. Kartais paslauga gali būti sustabdyta arba nebuvo paleista, net jei pačiame serveryje nėra nieko blogo.
- Naudodami systemd paleiskite komandą: sudo systemctl būsenos paslaugos pavadinimas
Jei paslauga veikia, turite ieškoti kitos priežasties.
Ar jungiatės prie tinkamo prievado?
Dar kartą patikrinkite visus dokumentus, kuriuos galėjo pateikti šeimininkas. Įprasta serverių valdytojų praktika užrakinti prievadus, kurie nenaudojami serverio saugumui gerinti. Užpuolikai dažnai naudoja įprastus prievadus, kad galėtų taikyti „Linux“ paslaugas.
Jei bandote prisijungti prie savo serverio, galite atsekti paslaugą iki tinkamo prievado. Norėdami tai padaryti, turite įdiegti saugos įrankį, kuris gali padėti matyti atvirus prievadus – NMAP.
Štai komandos, skirtos NMAP diegti skirtinguose Linux platinimuose:
CentOS: yum įdiegti nmap
Debianas: apt-get install nmap
Ubuntu: sudo apt-get install nmap
Įdiegę NMAP, patikrinkite, ar matote atvirus prievadus naudodami šią komandą: sudo nmap -sS target-server-ip
Jei neturite tiesioginės prieigos prie serverio, turėsite susisiekti su priegloba. Tačiau prieš tai darydami pažvelkite į kai kurias kitas galimas „Linux“ klaidos „No Route to Host“ priežastis.
Ar teisingas pagrindinio kompiuterio pavadinimas?
Taip pat galite gauti klaidą „No Route to Host“, jei jūsų kompiuteris ir serveris, kurį bandote prisijungti, naudoja skirtingus pagrindinio kompiuterio pavadinimus. Abu įrenginiai turi būti sukonfigūruoti taip, kad būtų sujungti vienas su kitu.
Be įprastos prieglobos konfigūracijos, norite atkreipti dėmesį į hosts.deny ir hosts.allow failus, esančius „/etc“. Jei bandote prisijungti prie naujo serverio, įsitikinkite, kad gavote tinkamą serverio pagrindinio kompiuterio pavadinimą.
Ar iptables blokuoja ryšį?
iptables yra gana naudinga, kai norite sukonfigūruoti Linux branduolio ugniasienės lenteles. Suteikiama visapusiška srauto, patenkančio į kompiuterį ir iš jo, kontrolė yra puiki.
Tačiau dėl paprastos konfigūracijos klaidos „iptables“ gali užblokuoti ryšį su prievadu, kurį norite pasiekti, ir sukelti klaidą „Nėra maršruto į pagrindinį kompiuterį“.
- Pirmiausia įvesdami išspausdinkite savo iptables ir jų jungčių sąrašą sudo iptables -L ir pataikyti Įeikite.
- Norėdami patikrinti, ar iptables yra kaltas, paleiskite šią komandą: sudo iptables -S. Tai leis jums pamatyti, ar jūsų nustatytos iptables taisyklės blokuoja ryšį. Gali tekti pridėti priėmimo taisyklę prie numatytosios INPUT grandinės.
- Norėdami išvalyti išorinės ugniasienės užkardos taisykles, galite naudoti šią komandą: sudo iptables -F
Baigiančios mintys
Kaip matote, gali prireikti šiek tiek laiko, kol pasirodys klaida „Nėra maršruto į prieglobą“, tačiau anksčiau pateikti veiksmai turėtų jums padėti. Nors tai gali atrodyti kaip sudėtinga problema, dažnai tai yra prieštaringų konfigūracijų arba paprastų tinklo problemų rezultatas.
Ar susidūrėte su kitomis galimomis šios klaidos priežastimis ir pataisymais? Rašykite mums komentarą ir papasakokite apie tai.