VPN ద్వారా SSH ServerAliveInterval: ప్రోబ్ను ఏ చివర పంపుతుంది?
ServerAliveInterval అనేది జవాబు రాని ప్రోబ్లను లెక్కించే క్లయింట్ వైపు టైమర్, సెకన్లు కాదు. ఏ చివర దాన్ని పంపుతుంది, Host బ్లాక్ల క్రమం ఎందుకు గెలుస్తుంది, ఎలా ధృవీకరించాలో చూడండి.
SSH సెషన్ను సజీవంగా ఉంచే చాలా సలహాలు «ServerAliveInterval 30 జోడించండి» వద్ద ఆగిపోయి ఉపయోగకరమైన భాగాలను వదిలేస్తాయి. కీవర్డ్ క్లయింట్ వైపు ఉన్న టైమర్, అది ఛానెల్ నిశ్శబ్దంగా ఉన్నప్పుడే మండుతుంది, సెకన్లను కాదు జవాబు రాని ప్రోబ్లను లెక్కిస్తుంది, మొదట సరిపోలే విలువ గెలిచే ఫైల్లో నివసిస్తుంది. ఈ మూడు లక్షణాల్లో తప్పు చేస్తే ఆరోగ్యకరమైన VPN సెషన్ కూడా పడిపోతుంది, మృత సెషన్ వేలాడుతూనే ఉంటుంది.
రెండు దిశలు వేర్వేరు డీమన్లకు చెందుతాయి
ServerAliveInterval ను మీ ssh క్లయింట్ చదువుతుంది. ClientAliveInterval ను దూరపు చివర sshd చదువుతుంది, అది వ్యతిరేక దిశలో, సర్వర్ నుండి క్లయింట్ వైపు ప్రోబ్ చేస్తుంది. అవి పర్యాయ నామాలు కావు, కలిసి పని చేయవు, కాబట్టి ఒకదాన్ని సెట్ చేయడం మరో చివర ప్రవర్తనపై ఎలాంటి ప్రభావం చూపదు. వాటిని కలిపేయడమే ఒక హోస్ట్లో సరిదిద్దడం పని చేసినట్లు, తర్వాత దానిలో కాకుండా అనిపించడానికి సాధారణ కారణం.
రెండూ సున్నాను అంగీకరిస్తాయి. సున్నా వద్ద క్లయింట్ ఏమీ పంపదు, సర్వర్ వైపు సున్నా ClientAliveCountMax జవాబు రాని తనిఖీల తర్వాత వచ్చే డిస్కనెక్ట్ను నిలిపివేస్తుంది.
ప్రోబ్ ఏమి నిరూపిస్తుంది, ఏమి నిరూపించదు
నిర్ణయించిన విరామం సర్వర్ నుండి డేటా రాకుండా గడిచిన తర్వాత, క్లయింట్ ఉన్న ఎన్క్రిప్ట్ చేసిన ఛానెల్ ద్వారా చిన్న అభ్యర్థన పంపి జవాబు కోసం వేచి ఉంటుంది. సెషన్ ముగిసే ముందు వాటిలో ఎన్ని జవాబు లేకుండా ఉండవచ్చో ServerAliveCountMax నిర్ణయిస్తుంది. విరామం 60, లెక్క 3 ఉన్నప్పుడు క్లయింట్ సుమారు మూడు నిమిషాల నిశ్శబ్దం తర్వాత వదిలేస్తుంది, ఆ సంఖ్య నెట్వర్క్ ప్రమాణం కాదు, మీ కాన్ఫిగరేషన్ లక్షణం. విరామాన్ని దాని డిఫాల్ట్ 0 వద్ద ఉంచితే ఏ ప్రోబ్ కూడా ఎప్పుడూ పంపబడదు, అందుకే సాధారణ క్లయింట్ మృత కనెక్షన్పై అనిశ్చితంగా కూర్చోగలదు.
మార్పిడి SSH రవాణా లోపల జరుగుతుంది కాబట్టి, జవాబు ఆ చివర SSH ప్రక్రియ ఇంకా చదువుతూ రాస్తూ ఉందని నిరూపిస్తుంది. ఆ సెషన్లో మీరు ప్రారంభించిన ప్రోగ్రామ్ గురించి అది ఏమీ చెప్పదు: డేటాబేస్ క్లయింట్, ఫార్వర్డ్ చేసిన పోర్ట్ లేదా దీర్ఘకాలం నడిచే స్క్రిప్ట్ ఇరుక్కుపోవచ్చు, రవాణా సంతోషంగా ప్రోబ్లకు జవాబిస్తూ ఉండగా.
TCPKeepAlive ఒక పొర కింద ఉన్న ప్రత్యేక యంత్రాంగం. దాన్ని కర్నెల్ నిర్వహిస్తుంది, అది ఎన్క్రిప్ట్ కాలేదు, SSH డీమన్ ఇరుక్కున్న ఆ చివర కూడా దాన్ని తీర్చగలదు. అందుకే సాకెట్ కాకుండా సెషన్ ముఖ్యమైనప్పుడు SSH స్థాయి ప్రోబ్ మరింత అర్థవంతమైన సంకేతం.
ఏ విలువ నిలిచి ఉంటుందో క్రమం నిర్ణయిస్తుంది
OpenSSH ప్రతి పరామితికి లభించిన మొదటి విలువను వర్తింపజేస్తుంది, కాబట్టి నిర్దిష్ట Host బ్లాక్ సరిపోలే ఏదైనా విస్తృత బ్లాక్కు ముందే రావాలి. వైల్డ్కార్డ్ డిఫాల్ట్లను ఫైల్ దిగువన ఉంచండి, పైన కాదు, కింద ఉన్న Match బ్లాక్ ఇప్పటికే సెట్ చేసిన విలువను రద్దు చేయలేదని గుర్తుంచుకోండి. OpenSSH క్లయింట్ కాన్ఫిగరేషన్ సూచన మొదటి-విలువ నియమాన్ని నేరుగా చెబుతుంది, భాగస్వామ్య కాన్ఫిగరేషన్ను పునర్వ్యవస్థీకరించే ముందు ఒకసారి చదవడం విలువైనది.
కమాండ్ లైన్ ఎంపికలు ఫైల్ను గెలుస్తాయి, ఇది తాత్కాలిక ప్రయోగాన్ని చవకగా చేస్తుంది:
ssh -o ServerAliveInterval=15 -o ServerAliveCountMax=4 office-shellమీరు రాశారని అనుకున్నది కాకుండా క్లయింట్ నిజంగా ఏమి పరిష్కరించిందో చూడటానికి, దాన్ని ప్రభావవంతమైన కాన్ఫిగరేషన్ డంప్ చేయమని అడగండి. అవుట్పుట్లో ఆ హోస్ట్నేమ్ కోసం విలీనమైన విలువలు ఉంటాయి, దారి తప్పిన మునుపటి బ్లాక్ను పట్టుకోవడానికి ఇదే వేగవంతమైన మార్గం:
ssh -G office-shell | grep -i aliveటన్నెల్ మీద కీప్అలైవ్లు ఏమి చేస్తాయి
నియత ట్రాఫిక్ స్థితి కలిగిన NAT లేదా ఫైర్వాల్ మ్యాపింగ్ గడువు ముగియకుండా నిరోధిస్తుంది, కొన్ని నిమిషాల తర్వాత నిష్క్రియ ప్రవాహాలను పారవేసే VPN లో ఇది నిజమైన ప్రయోజనం. ప్రతి 60 సెకన్లకు వచ్చే ప్రోబ్లు ఏ యాప్లికేషన్ డేటా తీసుకోకుండానే ఆ మ్యాపింగ్ను తాజా చేస్తాయి.
పోయిన మార్గాన్ని అవి మళ్లీ నిర్మించలేవు. టన్నెల్ ఇంటర్ఫేస్ మాయమైనప్పుడు మిగతావన్నీ లాగానే ప్రోబ్లు విఫలమవుతాయి, లెక్క తీరినప్పుడు సెషన్ ముగుస్తుంది. జీవ చైతన్య గుర్తింపు మరియు మార్గ పునరుద్ధరణ వేర్వేరు సమస్యలు, ssh_config లో కాన్ఫిగర్ చేయగలిగేది మొదటిది మాత్రమే. విరామం, లెక్క నిజంగా ఇచ్చేది క్లయింట్ ఎంత త్వరగా గమనిస్తుందో అనేదే, వినియోగదారు దాన్నే నిలిచిపోవడంగా అనుభవిస్తాడు.
మల్టీప్లెక్స్ కనెక్షన్లు ఒక మడతను జోడిస్తాయి. ControlMaster ఆటలో ఉన్నప్పుడు ప్రోబ్లు ప్రధాన కనెక్షన్కు చెందుతాయి, ఉన్న ప్రధానం మీద కొత్త సెషన్ ఆ ప్రధానం చర్చించినది వారసత్వంగా పొందుతుంది. mux ప్రధానం ఇరుక్కుపోతే మరో విండో తెరవడం మార్గాన్ని మళ్లీ పరీక్షించదు.
సెట్టింగ్ను మొదటి నుండి చివరి వరకు నిర్ధారించడం
సర్వర్లో ఫైల్ చదివి ఏ include గెలిచిందో ఊహించడం బదులు ప్రభావవంతమైన డీమన్ కాన్ఫిగరేషన్ డంప్ చేయండి:
sshd -T | grep -i clientaliveతర్వాత డీబగ్ అవుట్పుట్ ఆన్లో ఉన్న నిజమైన సెషన్ను గమనించండి. లెక్క తీరినప్పుడు క్లయింట్ టైమ్అవుట్ పంక్తిని ముద్రిస్తుంది, దాని చుట్టూ ఉన్న టైమ్స్టాంప్లు నిశ్శబ్దం నిరంతరంగా ఉందో లేదా ప్రోబ్లే పంపబడలేదో చూపుతాయి. ప్రోబ్ ట్రాఫిక్ లేకుండా చనిపోయే సెషన్ సాధారణంగా ఎప్పుడూ సరిపోలని బ్లాక్లో కీవర్డ్ను ఉంచుతుంది.
టన్నెల్ ద్వారా మాత్రమే చేరే ఏ హోస్ట్కైనా రెండు తనిఖీలు జోడించడం విలువైనది: పరిష్కరించిన విరామం మీరు ఉద్దేశించినదేనని నిర్ధారించండి, ఆ విరామాన్ని లెక్కతో గుణిస్తే VPN గేట్వేపై నిష్క్రియ టైమ్అవుట్ కంటే తక్కువ అని కూడా నిర్ధారించండి. రెండో సంఖ్య పెద్దగా ఉంటే గేట్వే ముందుగా నిశ్శబ్దంగా ప్రవాహాన్ని పారవేస్తుంది, SSH ప్రోబ్కు ఏదైనా నివేదించే అవకాశమే దొరకదు.