හුක් ස්ක්‍රිප්ටයක් ටනලයේ අනෙක් පැත්තට ළඟා වේද යන්න කොන්දේසි තුනක් මත රඳා පවතී: එය සම්බන්ධ වී ඇත්තේ කුමන සිදුවීමටද, ස්ක්‍රිප්ටය ධාවනය වන විට OpenVPN තවමත් එහි ආරම්භක අනුපිළිවෙල තුළ සිටීද, සහ කාර්යය එම අනුපිළිවෙලින් වෙන් කර ඇත්ද. බොහෝ ස්ක්‍රිප්ට තෙවැන්නේදී අසාර්ථක වේ. නිදාගැනීමක් එකතු කිරීම ජීවන චක්‍ර ගැටලුවක් කාල ගැටලුවක් ලෙස සලකන අතර, එය නොමඟ යවන තරමටම ක්‍රියා කරයි.

මුලින්ම සිදුවීම තීරණය කරන්න, පසුව කාර්යය කල් දැමීමේ ක්‍රමය, පසුව කල් දැමූ කාර්යය ධාවනය වන ස්ථානය. මෙම තීරණ තුන ස්වාධීන වන අතර, ඒවා මිශ්‍ර කිරීම තමයි පේළි දෙකක හුක් එකක් සම්පූර්ණ දහවලක් බවට පත් කරන්නේ.

හුක් තමා බලා සිටින ටනලයක් බලා සිටින්නේ ඇයි

OpenVPN තම හුක් සමකාලීනව කැඳවයි, පැකට් ගෙනයන එම ක්‍රියාවලිය තුළම. tun හෝ tap උපාංගය පවතින විට නමුත් කිසිදු මාර්ගයක් එකතු කිරීමට පෙර up ක්‍රියාත්මක වේ, සහ මාර්ගවලට පසුව route-up ක්‍රියාත්මක වේ; එම මොහොතවලින් කිසිවක් විරුද්ධ පැත්ත පිළිතුරු දෙන බවට පොරොන්දු වන්නේ නැත. කිසිදු හුක් එකක ස්ක්‍රිප්ටය තවමත් ධාවනය වන අතරතුර ඩේමන් ඉදිරියට යවන්නේ නැත, එබැවින් ටනලය හරහා ගමන් කරනු ඇතැයි බලාපොරොත්තු වන විධානය එම විධානය බලා සිටින ටනලයක් බලා සිටී. මෙම වෘත්තාකාර බලා සිටීම තමයි අතින් ධාවනය සාර්ථක වී හුක් කල් ඉකුත් වීමට හේතුව.

පැහැදිලි පිළියම වන තත්පර කිහිපයක් නිදාගැනීම සමහර විට ක්‍රියා කරන්නේ දුර කෙළවර තමන්ම ඉහළ ආ නිසාය, නිදාගැනීම කිසිවක් අලුත්වැඩියා කළ නිසා නොවේ. සූදානම ගැන අසන සහායකයෙක් වෙනත් පිළිතුරක්: හුක් ආපසු එයි, යැවීම ආරම්භ වේ, සහ සහායකයාට අවශ්‍ය දේ එය සැබවින්ම ඇති විට ලැබේ.

පහසුව අනුව නොව සිදුවීම අනුව හුක් තෝරන්න

උපාංගය පමණක් අවශ්‍ය කාර්යයට up සම්බන්ධ කරන්න, මාර්ග අවශ්‍ය කාර්යයට route-up, සහ client-connect සහ client-disconnect තබන්න සර්වර් පැත්තේ සෑම සේවාලාභියාටම වන කාර්යයන් සඳහා. විසන්ධියේදී පිරිසිදු කිරීම දෙවරක් ධාවනය වීම දරාගත යුතුය, මන්ද ස්ථාවර අතුරුමුහුණතක් හරහා නැවත සම්බන්ධ වීම සම්පූර්ණ නැවත ආරම්භයක මෙන් එකම අනුපිළිවෙල අනුගමනය නොකරයි. සර්වරයේදී, ඩේමන් ආරම්භ වන විට නොව සේවාලාභියා සත්‍යාපනය වන විට client-connect ක්‍රියාත්මක වේ, එය එහි තර්කනය ගෙනයාමට පෙර තහවුරු කිරීම වටී. කාර්යය එක් සම්බන්ධතාවයකට වඩා සේවාවේ ජීවන චක්‍රයට අයත් නම්, systemd ඒකකයක් ඕනෑම හුක් එකකට වඩා හොඳ නිවසකි.

හුක් විධාන ඩේමන් විසින්ම කෙලින්ම ක්‍රියාත්මක කරයි, අතරමැදි ෂෙල් එකක් නොමැතිව, එබැවින් up පේළියක ifconfig_remote වචනාර්ථ පෙළක් ලෙස පැමිණේ. විධානය පැහැදිලි ෂෙල් එකක ඔතන්න, නැතහොත් පරිසරය කියවන ස්ක්‍රිප්ටයක තර්කනය තබන්න. ipchange තම තර්ක එකතු කරන එක් නියෝගයකි: එය විධානයට ලිපිනය සහ වරාය ලබා දෙයි, එබැවින් කිසිවක් සඳහා නොලියූ ස්ක්‍රිප්ටයක් අනපේක්ෂිත දෙකක් දකී.

කාර්යය වෙන් කරන ක්‍රම තුන

පළමු විකල්පය වන්නේ හුක් තුළින්ම සහායකයා පසුබිමට යැවීමයි: setsid හෝ systemd-run --scope සමඟ එය අරඹන්න, උරුම වූ විස්තරකරුවන් වසා දමන්න, සහ වහාම බිංදුව සමඟ පිටවන්න. දෙවැන්න වන්නේ හුක් කුඩා තත්ත්ව ගොනුවක් ලියා systemd කාලකයක් හෝ මාර්ග ඒකකයක් ඒ මත ක්‍රියා කිරීමට ඉඩ දීමයි, එය හුක් සුළු කර තබා නැවත උත්සාහ ප්‍රතිපත්තිය ලොග ඇති තැනට තබයි. තෙවැන්න වන්නේ හුක් සම්පූර්ණයෙන්ම අත්හැර කාර්යය VPN සේවාවට පසුව අනුපිළිවෙල කළ ඒකකයකට ගෙනයාමයි, කාර්යය කිසිසේත් සම්බන්ධතාවයකට අයත් නොවේ නම් මෙය නිවැරදි පිළිතුරයි. තුනම එක් නීතියක් බෙදා ගනී: ටනලය අවශ්‍ය වීමට පෙර හුක් ආපසු එිය යුතුය.

කුමක් තෝරාගත්තත් සහායකයා ඉඩම්පොටන්ට් සහ නිරීක්ෂණය කළ හැකි කරන්න. අතිච්ඡාදනය වන ඇමතුම් දෙකක් එකම ප්‍රතිවර්ත කළ නොහැකි ක්‍රියාව දෙවරක් නොකළ යුතුය, සහ අසාර්ථක වන සහායකයා මිනිසෙකුට කියවිය හැකි යමක් තැබිය යුතුය.

සැන්ඩ්බොක්ස් අසාර්ථකතා ජීවන චක්‍ර අසාර්ථකතාවලින් වෙන් කරන්න

ස්ක්‍රිප්ටයක් root විමසුමකින් ධාවනය වී සේවාවක් ලෙස අසාර්ථක වූ විට, හේතුව සාමාන්‍යයෙන් ජාලය නොව සැන්ඩ්බොක්ස් එකකි. සීමාකාරී ProtectHome, කියවීමට පමණක් වන ProtectSystem, හෝ නොපවතින කාර්ය නාමාවලියක් ස්ක්‍රිප්ටය හෝ එහි දත්ත වෙත ළඟා විය නොහැකි කළ හැක, සහ SELinux සත්කාරකයක ගොනුවට ක්‍රියාත්මක කිරීමට අවසර දෙන සන්දර්භයක් ද අවශ්‍ය වේ. systemctl cat openvpn-server@server සමඟ ඒකකය සහ journalctl -u openvpn-server@server -n 80 සමඟ සටහන කියවන්න, පසුව සම්බන්ධතා කාල ඉකුත්වීමක් නොව අවසර හෝ සන්දර්භ දෝෂයක් සොයන්න. සැන්ඩ්බොක්ස් අක්‍රීය කිරීම පළමු නොව අවසන් පියවර විය යුතුය.

ජීවන චක්‍ර අසාර්ථකතාවක් වෙනස් ලෙස පෙනේ: හුක් ආරම්භ වේ, සහායකයා ධාවනය වේ, සහ සොකට් එක තවම එහි නැත. හුක් එකෙන්ම කාල මුද්‍රා සහිත පේළියක් ලියන්න, විසන්ධි කර නැවත සම්බන්ධ වන්න, සහ සිදුවීම් පිළිවෙලින් කියවන්න. සහායකයාට සැබවින්ම ටනලය අවශ්‍ය නම්, නිශ්චිත කාලයක් නිදාගැනීම වෙනුවට සූදානම අසන්නට ඉඩ දෙන්න.

ක්ෂේත්‍ර තුනක් ඊළඟ වාර්තාව ප්‍රයෝජනවත් කරයි: කුමන හුක් ධාවනය වූයේද, කුමන ගිණුමක් භාවිත කළේද, සහ කොහේද නැවතුණේ. ඒවා නොමැතිව සෑම පසු විමර්ශනයක්ම මුල සිට ආරම්භ වේ.

අදාළ ලිපි