బూట్లో ప్రారంభం కాని OpenVPN సర్వర్ కోసం రెండు పరిష్కారాలు సూచించబడతాయి: చిరునామా కోసం వేచి ఉండటం, లేదా బైండ్ విజయవంతమయ్యే వరకు సేవ మళ్లీ ప్రయత్నించడానికి అనుమతించడం. రెండూ ఒకే లక్షణాన్ని పరిష్కరిస్తాయి, కానీ వైఫల్యం సమయంలో భిన్నంగా ప్రవర్తిస్తాయి. వేచి ఉండటం ఒక నిర్దిష్ట ముందస్తు షరతును స్పష్టం చేస్తుంది మరియు అది లేనప్పుడు గట్టిగా విఫలమవుతుంది; మళ్లీ ప్రయత్నించడం ఆ షరతును దాచి ప్రయత్నిస్తూనే ఉంటుంది. మీ unit కి ఏది సరిపోతుంది అనేది, ఆ చిరునామా రూపకల్పన చేసిన ఆధార్యమా లేక సమయపు యాదృచ్ఛికమా అనే దానిపై ఆధారపడి ఉంటుంది.

స్థిర నిద్ర ఏ దాని కోసం వేచి ఉండదు, ఏమి కోసం వేచి ఉందో కూడా తెలియజేయదు; రెండూ దానికంటే మెరుగైనవి.

local ఆప్షన్ నిజంగా ఏమి కోరుతుంది

local డీమన్ తన సాకెట్ను బైండ్ చేసే చిరునామాను సూచిస్తుంది; ఇంకా లేని చిరునామాకు బైండ్ చేయడం, అభ్యర్థించిన చిరునామా గురించి లోపంతో వెంటనే విఫలమవుతుంది. ఆప్షన్ లేనప్పుడు డీమన్ అన్ని చిరునామాలపై వినిపిస్తుంది; అందుకే ఇంటర్ఫేస్ ఇంకా లేని మెషీన్లో కూడా అదే profile పని చేస్తుంది: మీరు పేరు పెట్టిన ఒక చిరునామాపై కాకుండా అంతటా వినిపిస్తుంది. ఆ భేదమే మొత్తం వైఫల్యం, మరియు రీబూట్ వరకు అది కంటికి కనిపించదు.

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

చిరునామా కోసం వేచి ఉండటం vs బైండ్ను మళ్లీ ప్రయత్నించడం

వేచి ఉండటం అంటే చిరునామా వచ్చే వరకు విచారించే ExecStartPre, పరిమిత సంఖ్యలో ప్రయత్నాలతో మరియు సమయం ముగిసినప్పుడు సున్నా కాని నిష్క్రమణతో. మళ్లీ ప్రయత్నించడం అంటే ప్రధాన ప్రక్రియ విఫలం కావడానికి అనుమతించి, సేవా నిర్వాహకుడిని దాన్ని మళ్లీ ప్రారంభించమని అడగడం; ఉదాహరణకు Restart=on-failure తో RestartSec=5. మొదటిది లేని ముందస్తు షరతును విఫలమైన unit గా నివేదిస్తుంది, రెండవది దాన్ని చివరికి ఆగిపోయే రీస్టార్ట్ల వరుసగా నివేదిస్తుంది; journal లో ఇది ఎక్కువ శబ్దం చేస్తుంది, కానీ మీరు ఊహించలేని కారణాలతో ఆలస్యంగా వచ్చే చిరునామాను తట్టుకుంటుంది.

చిరునామా రూపకల్పన చేసిన ఆధార్యమైతే వేచి ఉండటానికి, సాధారణంగా వచ్చి సమయం మారుతూ ఉంటే మళ్లీ ప్రయత్నించడానికి ప్రాధాన్యం ఇవ్వండి. రెండింటినీ కలపడం సమంజసం: పరిమిత వేచి ఉండటం సాధారణ సందర్భాన్ని, రీస్టార్ట్ విధానం మినహాయింపును కవర్ చేస్తుంది. రెండూ ఎప్పటికీ నడవకూడదు, ఎందుకంటే అపరిమితంగా ప్రయత్నించే unit తప్పు కాన్ఫిగరేషన్ను నివేదించకుండా దాస్తుంది.

network-online.target ఎందుకు సరిపోదు

network-online.target క్రియాశీల నెట్వర్క్ అమలు online అని అర్థం చేసుకున్నది మాత్రమే వాగ్దానం చేస్తుంది, అంతకు మించి ఏదీ కాదు. systemd-networkd తో, ఆ లక్ష్యం ఎప్పుడు చేరుకుందో systemd-networkd-wait-online నిర్ణయిస్తుంది, మరియు దాని డిఫాల్ట్ online భావన మీ నిర్దిష్ట చిరునామా ఉనికిలోకి రాకముందే నెరవేరవచ్చు. NetworkManager కింద, wait-online సేవ తన స్వంత నియమాలను వర్తిస్తుంది. లక్ష్యం తర్వాత క్రమబద్ధీకరించడం గట్టి పునాది, కానీ ఒక చిరునామా, DNS సమాధానం లేదా దూర peer సిద్ధంగా ఉందని హామీ కాదు.

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

కోల్డ్ బూట్ తర్వాత బైండ్ను తనిఖీ చేయండి

సేవను రీస్టార్ట్ చేయడం కాకుండా నిజమైన కోల్డ్ బూట్తో ధృవీకరించండి, ఎందుకంటే రీస్టార్ట్ బూట్ క్రమం సృష్టించి ఉండాల్సిన చిరునామాను వారసత్వంగా పొందుతుంది. బూట్ తర్వాత ss -lntp లేదా ss -lunp ప్రతి శ్రోత వాస్తవంగా బైండ్ చేసిన స్థానిక చిరునామాను చూపిస్తుంది, journalctl -b -u openvpn-server@server మొదటి ప్రయత్నం విఫలమైందో లేదో చూపిస్తుంది. బైండ్ అయిన చిరునామాను profile లోని దానితో పోల్చి, నెట్వర్క్ మళ్లీ కనెక్ట్ అయిన తర్వాత పోలికను మళ్లీ చేయండి.

profile కి ఎప్పుడూ స్థిర చిరునామా అవసరం లేకపోతే, local ను తీసివేయడం చట్టబద్ధమైన సరళీకరణ, కానీ దాన్ని ట్రబుల్షూటింగ్ అలవాటుగా కాకుండా భద్రతా నిర్ణయంగా చేయండి.

శ్రోతను విస్తరించడం దాన్ని ఎవరు చేరుకోగలరో మారుస్తుంది, కాబట్టి ఆ మార్పును దాన్ని పరిమితం చేయాల్సిన firewall విధానంతో జత చేయండి. ప్రతి ఇంటర్ఫేస్పై నమ్మకంగా ప్రారంభమయ్యే సేవ అసలు సమస్యను పరిష్కరించలేదు; అది సమస్యను నెట్వర్క్ అంచుకు జరిపింది.

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