ServerAliveInterval SSH dros VPN: pa ben sy'n anfon y prawf?
Mae ServerAliveInterval yn amserydd ar yr ochr cleient sy'n cyfrif profion heb ateb, nid eiliadau. Gwelwch pa ben sy'n ei anfon, pam mae trefn Host yn ennill, a sut i'w wirio.
Mae'r rhan fwyaf o gyngor ynglŷn â chadw sesiwn SSH yn fyw yn stopio ar «ychwanegwch ServerAliveInterval 30» ac yn gadael y rhannau defnyddiol allan. Amserydd ar ochr y cleient yw'r gair allweddol, sy'n tanio dim ond pan fo'r sianel wedi bod yn dawel, mae'n cyfrif profion heb ateb yn hytrach nag eiliadau, ac mae'n byw mewn ffeil lle mae'r gwerth cyntaf sy'n cyfateb yn ennill. Camgymerwch y tri phriodwedd hynny ac fe fydd sesiwn VPN iach yn dal i gwympo, tra bydd un farw yn aros yn hongian.
Mae'r ddau gyfeiriad yn perthyn i wahanol ddemoniaid
Mae ServerAliveInterval yn cael ei ddarllen gan eich cleient ssh. Mae ClientAliveInterval yn cael ei ddarllen gan sshd yr ochr bell ac yn profi'r ffordd arall, o'r gweinydd i'r cleient. Nid ydynt yn aliasau ac nid ydynt yn cydweithio, felly nid oes gan osod un unrhyw effaith ar ymddygiad y pen arall. Cymysgu'r ddau yw'r rheswm arferol pam mae atgyweiriad yn ymddangos yn gweithio ar un gwesteiwr ac yn peidio ar y nesaf.
Mae'r ddau yn derbyn sero. Ar sero nid yw'r cleient yn anfon dim o gwbl, ac ar ochr y gweinydd mae ClientAliveCountMax o sero yn analluogi'r datgysylltiad a fyddai fel arall yn dilyn profion heb ateb.
Beth mae prawf yn ei brofi, a beth nad yw
Ar ôl i'r cyfwng a ffurfweddwyd basio heb i unrhyw ddata gyrraedd o'r gweinydd, mae'r cleient yn anfon cais bach trwy'r sianel amgryptiedig bresennol ac yn aros am ateb. Mae ServerAliveCountMax yn pennu faint o'r rhain a gaiff aros heb ateb cyn i'r sesiwn gael ei thorri i lawr. Gyda chyfwng o 60 a chyfrif o 3 mae'r cleient yn rhoi'r gorau iddi ryw dri munud o dawelwch, ac mae'r ffigur hwnnw'n briodwedd o'ch ffurfweddiad chi yn hytrach na safon rwydwaith. Gadewch y cyfwng ar ei werth diofyn o 0 ac ni anfonir prawf byth, a dyna pam y gall cleient safonol eistedd ar gysylltiad marw yn ddi-ben-draw.
Gan fod y cyfnewid yn rhedeg y tu mewn i gludiant SSH, mae ateb yn profi bod proses SSH y pen arall yn dal i ddarllen ac ysgrifennu. Nid yw'n dweud dim am y rhaglen a gychwynnoch o fewn y sesiwn honno: gall cleient cronfa ddata, porth a anfonwyd ymlaen neu sgript hir ei chwrs fod yn sownd tra bo'r cludiant yn ateb profion yn fodlon.
Mae TCPKeepAlive yn fecanism ar wahân un haen yn is i lawr. Y cnewyllyn sy'n ei drin, nid yw wedi'i amgryptio, a gall pen y mae ei ddemoniad SSH yn sownd ei fodloni o hyd. Dyna pam mae'r prawf ar lefel SSH yn arwydd mwy ystyrlon pan fo'r sesiwn o bwys gennych yn hytrach na'r soced.
Mae'r drefn yn penderfynu pa werth sy'n goroesi
Mae OpenSSH yn cymhwyso'r gwerth cyntaf y mae'n ei gael ar gyfer pob paramedr, felly rhaid i floc Host penodol ymddangos cyn unrhyw floc ehangach a fyddai hefyd yn cyfateb. Rhowch y gwerthoedd diofyn â nodau gwyllt ar waelod y ffeil, nid ar y top, a chofiwch na all bloc Match ymhellach i lawr wrthdroi gwerth sydd eisoes wedi'i osod. Mae'r cyfeirlyfr ffurfweddu cleient OpenSSH yn nodi'r rheol gwerth cyntaf yn syth, ac mae'n werth ei ddarllen unwaith cyn aildrefnu ffurfweddiad a rennir.
Mae opsiynau'r llinell orchymyn yn ennill dros y ffeil, sy'n gwneud arbrawf dros dro yn rhad:
ssh -o ServerAliveInterval=15 -o ServerAliveCountMax=4 office-shellI weld beth a ddatrysodd y cleient mewn gwirionedd yn hytrach na'r hyn rydych chi'n meddwl a ysgrifennoch, gofynnwch iddo ddympio'r ffurfweddiad effeithiol. Mae'r allbwn yn dal y gwerthoedd cyfunol ar gyfer yr enw gwesteiwr hwnnw ac ef yw'r ffordd gyflymaf i ddal bloc cynharach crwydrol:
ssh -G office-shell | grep -i aliveBeth mae cadw'n fyw yn ei wneud dros dwnnel
Mae traffig cyfnodol yn cadw mapiad NAT neu wal dân cyflwr rhag dod i ben, sy'n fudd gwirioneddol ar VPN y mae ei giât yn gollwng ffrydiau segur ar ôl ychydig funudau. Mae profion sy'n cyrraedd bob 60 eiliad yn adnewyddu'r mapiad hwnnw heb gario unrhyw ddata cymhwysiad.
Ni allant ailadeiladu llwybr sydd wedi mynd. Pan fo rhyngwyneb y twnnel yn diflannu mae'r profion yn methu fel popeth arall, ac mae'r sesiwn yn gorffen unwaith y bydd y cyfrif wedi'i ddiweddu. Mae canfod bywoledd a adfer y llwybr yn broblemau gwahanol, a dim ond y cyntaf sy'n ffurfweddadwy yn ssh_config. Yr hyn y mae'r cyfwng a'r cyfrif yn ei brynu i chi mewn gwirionedd yw pa mor gyflym y mae'r cleient yn sylwi, a dyna'r rhan y mae defnyddiwr yn ei phrofi fel hongian.
Mae cysylltiadau amlblethu yn ychwanegu crych. Gyda ControlMaster ar waith mae'r profion yn perthyn i'r brif gysylltiad, ac mae sesiwn newydd dros brif gysylltiad presennol yn etifeddu'r hyn a drafododd y prif un hwnnw. Os yw prif un mux yn sownd, ni fydd agor ffenestr arall yn profi'r llwybr eto.
Cadarnhau'r gosodiad o'r dechrau i'r diwedd
Ar y gweinydd, dympiwch ffurfweddiad effeithiol y demoniad yn hytrach na darllen y ffeil a dyfalu pa gynnwys a enillodd:
sshd -T | grep -i clientaliveYna gwyliwch sesiwn go iawn gydag allbwn dadfygio wedi'i alluogi. Mae'r cleient yn argraffu llinell terfyn amser pan fydd y cyfrif wedi darfod, ac mae'r stampiau amser o'i chwmpas yn dangos a oedd y tawelwch yn barhaus neu a anfonwyd y profion byth o gwbl. Mae sesiwn sy'n marw heb unrhyw draffig prawf fel arfer yn cadw'r gair allweddol mewn bloc na chyfatebodd byth.
Mae dau wiriant yn werth eu hychwanegu ar gyfer unrhyw westeiwr y gyrrwch ato trwy dwnnel yn unig: cadarnhewch mai'r cyfwng a ddatryswyd yw'r un a fwriadwyd gennych, a chadarnhewch fod y cyfwng hwnnw wedi'i luosi â'r cyfrif yn fyrrach nag amser segur y giât VPN. Pan fo'r ail rif yn fwy, mae'r giât yn gollwng y ffrwd yn dawel yn gyntaf ac nid yw'r prawf SSH byth yn cael cyfle i adrodd dim.