SIGKILL తర్వాత OpenVPN DNS మిగిలిపోతుంది: మొదట యజమానిని తనిఖీ చేయండి
SIGKILL OpenVPN యొక్క down హుక్ను అమలు చేయలేదు, కానీ systemd-resolved ప్రతి లింక్ DNS ను ఏదో విధంగా విడిచిపెట్టగలదు. ఏమి బయటకు వెళ్ళింది, రిజాల్వర్ ఎవరిది, ఏమి మిగిలిందో నిర్ణయించండి.
OpenVPN క్లయింట్ చంపబడిన తర్వాత DNS పరిష్కరించడం ఆగిపోతుంది, మరియు మొదటి ప్రవృత్తి /etc/resolv.conf ను తిరిగి రాయడం. ఆ మార్పు పనిచేస్తున్న రిజాల్వర్ను పాడుచేయగలదు, అసలు పాత స్థితి మరెక్కడో ఉంటుంది. మొదట పరిష్కరించాల్సిన ప్రశ్న ఏమిటంటే టన్నెల్ ఇన్స్టాల్ చేసిన DNS సెట్టింగ్ల యజమాని ఎవరు, మరియు శుభ్రతను దాటవేసిన నిష్క్రమణ నిజంగా ముఖ్యమైందా.
మూడు షరతులు మరమ్మతును నిర్ణయిస్తాయి: ప్రక్రియను ముగించిన సిగ్నల్, సెట్టింగ్లను స్వీకరించిన రిజాల్వర్ భాగం, మరియు టన్నెల్ లింక్ ఇంకా ఉందా అనేది. ఆ క్రమంలో సమాధానం ఇవ్వండి, సరిదిద్దడం సాధారణంగా గ్లోబల్ ఫైల్ను తాకకుండా వస్తుంది.
ఎలాంటి నిష్క్రమణ జరిగిందో నిర్ణయించండి
Community సంచికలో OpenVPN లో SIGINT మరియు SIGTERM రెండూ ప్రశాంత నిష్క్రమణ అభ్యర్థనలు. SIGKILL ను పట్టుకోలేము: దాన్ని నిరోధించలేము లేదా నిర్వహించలేము, కాబట్టి ఏ షట్డౌన్ రొటీన్ కూ నడవడానికి అవకాశం లభించదు. ముందు టెర్మినల్లో సాధారణ Ctrl+C SIGINT ను ఉత్పత్తి చేస్తుంది, వేచి ఉండటం వదిలేసిన పర్యవేక్షకుడు సాధారణంగా SIGKILL కు పెరుగుతాడు. తేడా ముఖ్యం ఎందుకంటే రెండో సందర్భం మాత్రమే హుక్లు దాటవేయబడ్డాయని హామీ ఇస్తుంది.
screen లేదా tmux లోపల నడపడం Ctrl+C ఏ సిగ్నల్ పంపుతుందో మార్చదు. టెర్మినల్ సాధారణంగా ఏమి చేస్తుందో కాదు, ప్రక్రియ నిజంగా ఏమి పొందిందో తనిఖీ చేయండి.
సేవ లేదా కనెక్షన్ మేనేజర్ టన్నెల్ నడిపినప్పుడు, pid ను చంపడం బదులు ఆ ఒక కనెక్షన్ను దాని యజమాని ద్వారా ఆపండి. మేనేజర్ ప్రక్రియను మళ్లీ పైకి తేగలదు, దాంతో మీకు కొత్త టన్నెల్ మరియు గందరగోళ రిజాల్వర్ స్థితి మిగిలిపోతాయి. స్వతంత్ర ప్రక్రియకు శుభ్రత నడవడానికి సాధారణ ముగింపు అభ్యర్థన మాత్రమే సరిపోతుంది.
రిజాల్వర్ ఎవరిదో నిర్ణయించండి
systemd-resolved, resolvconf శైలి స్క్రిప్ట్ మరియు సాధారణ ఫైల్ పునఃరచన మూడు వేర్వేరు యజమానులు. మొదటిది ప్రతి లింక్ సెట్టింగ్లను మెమొరీలో ఉంచి ఇంటర్ఫేస్ మాయమైనప్పుడు వాటిని విసిరేస్తుంది. రెండోది ఏదో తొలగించే వరకు నిలిచే రికార్డులను ఉంచుతుంది. మూడోది ఫైల్ రాసి పునరుద్ధరణను రాసిన వారికి వదిలేస్తుంది.
మరమ్మతు ఆదేశాన్ని ఎంచుకునే ముందు యజమానిని గుర్తించండి. ఏది వాడుకలో ఉందనే దాన్ని బట్టి అదే లక్షణానికి మూడు వేర్వేరు సరైన సమాధానాలు ఉన్నాయి.
NetworkManager నిర్వహించే VPN ఇప్పటికే రిజాల్వర్ మార్పులకు యజమాని కావచ్చు. దానిపై రెండో సహాయకుడిని జోడిస్తే ఒకే లింక్ కోసం పోటీపడే ఇద్దరు యజమానులు ఏర్పడతారు, ఓడిపోయిన వారి స్థితి తదుపరి పునఃకనెక్షన్లో మళ్లీ కనిపిస్తుంది. మేనేజర్ బాధ్యత వహిస్తే, సెట్టింగ్ను స్క్రిప్ట్లో కాదు, మేనేజర్లో సరిచేయండి.
down హుక్ ఏమి చేయగలదు, ఏమి చేయలేదు
స్క్రిప్ట్ down TUN/TAP పరికరం మూసివేయబడిన తర్వాత ఒకసారి నడుస్తుంది. జోడిస్తే down-pre ఆ క్రమాన్ని తిరగబెడుతుంది మరియు పరికరం ఇంకా ఉన్నప్పుడే స్క్రిప్ట్ను నడుపుతుంది, సజీవ లింక్ అవసరమయ్యే సహాయకులు దీన్ని కోరుతారు.
ఏ సూచనా SIGKILL తర్వాత హుక్ను నడపదు. అనుమతులు కూడా down-pre ద్వారా పునరుద్ధరించబడవు: డెమన్ user లేదా group స్థాయికి దిగినా లేదా chroot లోకి ప్రవేశించినా, హుక్ అది విడిచిపెట్టే యాక్సెస్తో నడుస్తుంది. పిలిచిన హుక్ అయినా రిజాల్వర్ను అప్డేట్ చేయడంలో విఫలం కావచ్చు. OpenVPN సూచిక సిగ్నల్లు మరియు కాల్బ్యాక్ జీవితచక్రాన్ని కవర్ చేస్తుంది.
ప్రక్రియ నిష్క్రమణ స్థితి పక్కన హుక్ స్వంత లోపాన్ని తనిఖీ చేయండి. తప్పిపోయిన శుభ్రత మరియు విఫలమైన శుభ్రత రిజాల్వర్లో ఒకేలా, లాగ్లలో భిన్నంగా కనిపిస్తాయి.
నిజంగా మిగిలిన స్థితిని తనిఖీ చేయండి
systemd-resolved ఉపయోగించే వ్యవస్థలో, resolvectl status ఏ లింక్ ఇంకా VPN DNS సర్వర్లు లేదా రూటింగ్ డొమైన్లను మోస్తోందో చూపిస్తుంది. ఆ లింక్ వెళ్ళిపోయిన కనెక్షన్కు లేదా ఇంకా పైకి ఉన్న మరో టన్నెల్కు చెంది ఉండవచ్చు.
మాయమయ్యే ఇంటర్ఫేస్ తన ప్రతి లింక్ కాన్ఫిగరేషన్ను తనతో తీసుకెళ్తుంది, కాబట్టి దాటవేసిన హుక్ శుభ్రమైన DNS తో కలిసి ఉండవచ్చు. లింక్ ఇంకా నమోదై ఉండి ఆపివేసిన కనెక్షన్ మాత్రమే దాన్ని కలిగి ఉంటే, యజమాని మేనేజర్ దాన్ని తీసివేయాలి. పాత స్క్రిప్ట్ గ్లోబల్ రిజాల్వర్ ఫైల్ను తిరిగి రాసి ఉంటే, బదులుగా ఆ స్క్రిప్ట్ యొక్క నమోదిత పునరుద్ధరణ దశను వెతకండి.
మరో లింక్ను దొంగిలించకుండా పునరుద్ధరించండి
ప్రతి లింక్ సెట్టింగ్లు మీ నిర్వహణలో ఉన్నప్పుడు, resolvectl revert లింక్ పేరును తీసుకుని ఆ ఇంటర్ఫేస్ కోసం రన్టైమ్ DNS కాన్ఫిగరేషన్ను తుడిచివేస్తుంది. ఇది ప్రొఫైల్ సవరణ కాదు, రన్టైమ్ చర్య, కాబట్టి శాశ్వత కనెక్షన్ కాన్ఫిగరేషన్ తాకబడకుండా ఉంటుంది. తప్పు లింక్ను పేర్కొంటే నడుస్తున్న టన్నెల్ DNS ను తుడిచివేస్తారు, అందుకే పేరు స్థితి అవుట్పుట్ నుండి వస్తుంది.
సవరించే ముందు /etc/resolv.conf నిర్వహిత సింబాలిక్ లింక్ అని నిర్ధారించుకోండి, తర్వాత క్లయింట్ను మరోసారి సాధారణంగా ఆపి DNS ను మళ్లీ చూడండి. రెండో ఆపడం శుభ్రం చేస్తే, మునుపటి సమస్య కాన్ఫిగరేషన్ కాదు, బలవంతపు నిష్క్రమణ.