Med nastavitvijo SSH vežete na naslov tunela, deluje, po naslednjem ponovnem zagonu pa se nihče ne more prijaviti, dokler nekdo storitve ne zažene ročno. Poverilnice niso težava. Demon je jedro prosil za naslov, ki še ni obstajal, vezava ni uspela, sporočilo pa je v dnevniku zagona odplavalo mimo. Kar je videti kot težava z overjanjem, je težava z vrstnim redom zagona.

Kaj napaka vezave v resnici pove

Poslušajoči socket mora biti ustvarjen na naslovu, ki v tistem trenutku obstaja. Ko se vmesnik VPN pojavi pozneje, demon, nastavljen za vezavo samo na naslov tunela, nima na kaj pritrditi se. Konfiguracija ostane sintaktično veljavna; okolje preprosto ni bilo pripravljeno. Storitev, ki teče od ročnega zagona, nikoli ne preide zagonske poti, zato se napaka pokaže šele ob naslednjem ponovnem zagonu. Primerjajte časovni žig neuspešne vezave s časovnim žigom dodelitve naslova in vrstni red postane očiten.

Veljavnost konfiguracije in pripravljenost med delovanjem sta ločeni lastnosti. Preizkusite obe, ker ena od njiju odpove, ne da bi karkoli rekla.

Kateri proces ima vrata

Demon ni vedno komponenta, ki ustvari poslušalca. Aktivacija socketov to odgovornost prenese na enoto, in takrat ponovni zagon demona ne spremeni ničesar.

ss -ltnp 'sport = :22'
systemctl cat ssh.socket

Seznam socketov pokaže, kateri proces drži vrata in na katerem naslovu, medtem ko izpis enote pokaže, ali socketna enota sploh obstaja. Ko je aktivacija v igri, naslov pripada socketni enoti in datoteka demona ni merodajna. Berite dnevnik zagona za resnično napako vezave, namesto da bi jo sklepali iz simptoma. Manjkajoča socketna enota preprosto pomeni klasično ureditev, pri kateri se demon veže neposredno.

Naredite pripravljenost eksplicitno, ne spanje

Fiksna zakasnitev je ugibanje, ki hitro strojno opremo in počasna omrežja obravnava enako. Namesto tega izrazite odvisnost: počakajte na naslov in nato zaženite.

ip -4 addr show dev tun0
systemctl edit ssh.service

Dodajte ukaz ExecStartPre, ki se ponavlja, dokler se naslov ne pojavi, ali razvrstite enoto za določenim omrežnim ciljem, ki mu vmesnik pripada. Oba pristopa zabeležita odvisnost nekje, kjer jo lahko prebere naslednji skrbnik. Zanka potrebuje časovno omejitev, sicer neuspešen VPN pusti enoto, ki visi, namesto da bi sporočil napako. Nato potrdite, da demon veže naslov tunela, medtem ko običajni vmesnik ostaja pod upravljanjem vaših pravil filtriranja.

Preizkusite čist zagon in ponovno povezavo

Ročni ponovni zagon, ko je vse na spletu, ne dokazuje ničesar o vrstnem redu zagona. Znova zaženite stroj s tunelom, nastavljenim za samodejni zagon, in opazujte, ali se poslušalec pojavi brez posredovanja.

systemctl status ssh.service
ss -ltnp 'sport = :22'

Nato spustite in znova vzpostavite tunel, ker lahko ponovna povezava spremeni naslov in trdo kodirana vezava mu ne bo sledila. Med preizkušanjem ohranite zunajpasovno pot za obnovitev, da vas slaba sprememba vrstnega reda ne more zakleniti iz gostitelja.

Merilo uspeha je poslušalec, ki se pojavi pod svojo dokumentirano odvisnostjo, ne pa tisti, ki se ga je kdo spomnil znova zagnati.

Sorodni članki