పాత పరిష్కారం OpenVPN అమలయ్యే ఫైల్ను మరొక చోటికి తరలించి అసలు మార్గంలో shell ర్యాపర్ను వదిలివేసింది. కొన్ని నెలల తర్వాత నవీకరణ వస్తుంది, ఆ పరిష్కారాన్ని వెనక్కి తీసుకోవడం ఏ ఫైల్ నిజంగా క్లయింట్ అనే ఊహాగాన ఆటగా మారుతుంది. ఆదేశం పేరు, సేవలో కాన్ఫిగర్ చేసిన అమలయ్యే ఫైల్ మరియు ప్యాకేజీ సొంత ఫైల్ జాబితా అన్నీ వేర్వేరు వస్తువులను సూచించవచ్చు, మిగతావి లేకుండా ఒకదాన్ని సరిచేయడం సరిచేసినట్లు కనిపించి ఇంకా దారుణంగా ప్రవర్తించే హోస్ట్ను సృష్టిస్తుంది.

సేవ ప్రారంభించే మార్గంతో ప్రారంభించండి

టెర్మినల్ మరియు systemd యూనిట్ అమలయ్యే ఫైళ్లను ఒకే విధంగా పరిష్కరించవు. shell PATH లో వెతుకుతుంది; యూనిట్ మార్గాన్ని పేర్కొంటుంది, drop-in ఓవర్రైడ్లు మీరు చదువుతున్న ఫైల్ను తాకకుండా దాన్ని భర్తీ చేయగలవు. ఆ భేదమే ఈ పనిలో చాలా గందరగోళాన్ని వివరిస్తుంది. మీ మరమ్మత్తు ఏ ఫైల్ను లక్ష్యంగా చేసుకోవాలో కూడా అదే నిర్ణయిస్తుంది.

యూనిట్ను అది ఏమి అమలు చేస్తుందో అడగండి, దాన్ని మార్చే drop-inతో సహా, మరియు మీరు అధికారికమని భావించే భాగానికి బదులుగా వచ్చే ExecStart పంక్తిని చదవండి. ఆ తర్వాత ఆ మార్గాన్ని ఏదైనా సాంకేతిక లింక్ ద్వారా చివరి ఫైల్ వరకు అనుసరించండి. దాచిన డైరెక్టరీలోకి exec తో ముగిసే ర్యాపర్ ఈ పాత సవరణల సాధారణ అమరిక.

ఏదైనా మార్చే ముందు పరిష్కరించిన మార్గాన్ని రాసి పెట్టుకోండి.

systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"

ఆదేశం పేరును సేవ మార్గంతో పోల్చండి

రెండు సమాధానాలు తరచుగా భిన్నంగా ఉంటాయి, ఆ భేదం దానంతటదే లోపం కాదు. NetworkManager ప్లగిన్ తన సొంత మార్గాన్ని ప్రారంభించవచ్చు, కంటైనర్ మరొకదాన్ని మౌంట్ చేయవచ్చు.

ముఖ్యమైనది ట్రాఫిక్కు సేవ చేసే ప్రక్రియను ఏ యజమాని ప్రారంభిస్తాడో తెలుసుకోవడం. యూనిట్ /usr/local/sbin/openvpn-wrapper ను అమలు చేస్తుండగా మీ shell /usr/sbin/openvpn ను పరిష్కరిస్తే, రెండో ఫైల్ను సరిచేయడం సేవలో ఏమీ మార్చదు.

ప్రతి అభ్యర్థి ఏ ప్యాకేజీకి చెందుతుందో అడగండి, ఆపై ఫైల్ ప్యాకేజీ నిర్వహణలో ఉందా లేదా స్థానికంగా ఉంచబడిందా నిర్ణయించండి. యజమాని ప్యాకేజీ లేని ఫైల్ ఎవరో ఉద్దేశపూర్వకంగా అక్కడ పెట్టిన ఫైల్, అది తొలగించబడే ముందు పేరు, యజమాని మరియు కారణానికి అర్హం. వ్యతిరేక పొరపాటు కూడా సాధారణం: ఒక ఫోరమ్ పోస్ట్ అదే డైరెక్టరీని ఉపయోగించినందున పాత సేవ్ చేసిన బైనరీతో ప్యాకేజీ ఫైల్ను ఓవర్రైట్ చేయడం.

ప్యాకేజీ ఫైళ్ల గురించి ప్యాకేజీ డేటాబేస్ను మాట్లాడనివ్వండి

సాఫ్ట్వేర్ Debian ప్యాకేజీ నుండి వచ్చినప్పుడు, దాని ఫైళ్లు ఇప్పటికీ ఇన్స్టాల్ చేసిన దానితో సరిపోతున్నాయా అని ప్యాకేజీ డేటాబేస్ చెప్పగలదు. ఇది సమగ్రత గురించిన సన్నని ప్రశ్న, భద్రతా తీర్పు కాదు, ఏమి సరిచేయాలో నిర్ణయించేటప్పుడు ఈ భేదం ముఖ్యం. సరిపోకపోవడం అంటే ఇన్స్టాలేషన్ తర్వాత ఫైల్ మారిందని, అది మీ పాత పరిష్కారం లేదా చట్టబద్ధమైన స్థానిక సవరణ కావచ్చు. ఏది అని అవుట్పుట్ నిర్ణయించదు, కాబట్టి దాన్ని ముగింపు కాకుండా సూచనగా చదవండి.

ధృవీకరణను అమలు చేసి, ఖాళీ ఫలితాన్ని ఏదో ఒకదానికి రుజువుగా భావించకుండా అవుట్పుట్ను చదవండి.

dpkg -S /usr/sbin/openvpn
dpkg --verify openvpn

dpkg మాన్యువల్ నమోదు చేసినదాని ప్రకారం, ధృవీకరణ ఇన్స్టాల్ చేసిన ఫైళ్లను స్థానికంగా నమోదైన మెటాడేటాతో పోలుస్తుంది, ఉన్న చోట సేవ్ చేసిన చెక్సమ్లను ఉపయోగిస్తుంది. మారిన ప్యాకేజీ ఫైల్ను అది గమనిస్తుంది, దానికి బదులుగా మరో బైనరీ అమలవుతోందా అని చెప్పలేదు.

మరమ్మత్తుకు ముందు స్థితిని నమోదు చేయండి

పరిష్కరించిన ప్రారంభ మార్గం, ఫైల్కు ప్యాకేజీతో ఉన్న సంబంధం, ర్యాపర్ స్థానం మరియు దాన్ని తెచ్చిన మార్పు నమోదును సేకరించండి. తర్వాత అవసరమయ్యే ఏకీకరణ పని ర్యాపర్లో ఉంటే దాన్ని సురక్షిత ప్రదేశానికి కాపీ చేయండి.

చదివే ముందు ర్యాపర్ కంటెంట్ను సహాయ థ్రెడ్లో అతికించవద్దు, ఎందుకంటే ఈ స్క్రిప్ట్లు కొన్నిసార్లు ఆధారాలు లేదా గేట్వే వివరాలను కలిగి ఉంటాయి.

మీరు పని చేస్తున్నప్పుడు సేవ ఏ ప్రొఫైల్లను ఉపయోగిస్తుంది, ఎవరు కనెక్ట్ అయ్యారు అని నమోదు చేయండి, ఎందుకంటే సొరంగాన్ని పునఃప్రారంభించడం మీరు హోస్ట్ను నిర్వహించే సెషన్ను తెగతెంపులు చేయవచ్చు.

ప్రారంభాన్ని ధృవీకరించి, ఆపై ర్యాపర్ తీసివేయండి

మరమ్మత్తు తర్వాత సేవను ప్రారంభించి, ప్రక్రియ మీరు ఉద్దేశించిన మార్గంలో నడుస్తోందని నిర్ధారించండి. చేతితో నడిపిన వెర్షన్ ప్రశ్న ఫైల్ పని చేస్తుందని రుజువు చేస్తుంది; యూనిట్ దాన్ని ఉపయోగిస్తుందని రుజువు చేయదు.

ఆపై క్లయింట్ను మళ్లీ కనెక్ట్ చేసి, ప్రొఫైల్ ఇప్పటికీ ప్రామాణీకరిస్తోందా తనిఖీ చేయండి, ఎందుకంటే అసలు ఎంపికలను పట్టించుకోని బైనరీ మార్పిడి సర్టిఫికెట్ సమస్యలా కనిపించే విధంగా విఫలమవుతుంది.

స్థానభ్రంశం చెందిన ర్యాపర్ను దాన్ని తెచ్చిన అదే మార్పు నమోదు ద్వారా తీసివేయండి. పూర్తయిన మరమ్మత్తు ఏ అమలయ్యే ఫైల్ నడుస్తోంది, ఎందుకు, ఏ ఫైల్ తీసివేయబడింది అని చెబుతుంది; ఫైల్ పేరును పునరుద్ధరించి ఆశించడం అది కాదు.

సంబంధిత వ్యాసాలు