බහු ස්ක්‍රිප්ට් පිළිබඳ අනතුරු ඇඟවීම කාලසටහන් පිළිබඳ පැමිණිල්ලක් මෙන් පෙනේ, එබැවින් පැහැදිලි විසඳුම වන්නේ එය අතුරුදහන් වන තෙක් පේළි නැවත සකස් කිරීමයි. නමුත් එය කාලසටහන් පැමිණිල්ලක් නොවේ. පසුව එන --up අර්ථ දැක්වීම එම අදියර සඳහා දැනටමත් ගබඩා කර ඇති විධානය ප්‍රතිස්ථාපනය කරයි, තත්ත්ව විග්‍රාහකය එයම පවසයි, එනම් ඔබේ ස්ක්‍රිප්ට් දෙකෙන් හරියටම එකක් පමණක් කවදා හෝ ධාවනය වී ඇත. අනෙක එහි පිටුපස පෝලිමේ නැත; එය නැති වී ඇත.

එබැවින් මාරක නොවුවත් මෙම අනතුරු ඇඟවීම අවධානය ලැබිය යුතුය: එය පුරෝකථනය කරන්නේ නිශ්ශබ්දව සිදුවීම නතර වූ DNS යාවත්කාලීනයක් හෝ මාර්ග වෙනසක් ය.

අනතුරු ඇඟවීම අනුපිළිවෙල ගැන නොවේ

OpenVPN up අදියර සඳහා එක් පරිශීලක ස්ක්‍රිප්ට් විධානයක් පමණක් ගබඩා කරයි. තත්ත්ව විග්‍රාහකය තවත් අර්ථ දැක්වීමක් හමු වූ විට, පැතිකඩෙන්, ඇතුළත් කළ ගොනුවකින් හෝ විධාන පේළියෙන්, එය දැනටමත් තිබූ දේ ප්‍රතිස්ථාපනය කර අනතුරු ඇඟවීම නිකුත් කරයි. කිසිවක් එකට එකතු නොවේ, කිසිවක් දෙවරක් ධාවනය නොවේ, අනුපිළිවෙල පිළිබඳ ප්‍රශ්නයක් නොපවතී. ඉතිරි වන්නේ තත්ත්ව විග්‍රාහකය අවසන් වරට දුටු විධානයයි, එබැවින් පේළියක් ගෙනයාමෙන් ජයග්‍රාහකය වෙනස් විය හැකි අතර අනෙක් ස්ක්‍රිප්ට් මළ ලෙසම රැඳේ.

එම රටාවම අනෙක් ස්ක්‍රිප්ට් අදියරයන්ට ද අදාළ වේ: එක් එකකට එක් විධානයක්. කාර්යයන් දෙකම සිදු විය යුතු නම්, ඒවාට ලැයිස්තුවක් වැනි උපදෙස් දෙකක් නොව එක් ප්‍රවේශ ලක්ෂ්‍යයක් අවශ්‍යයි.

සැබෑ දියත් කිරීමේදී අර්ථ දෙකම සොයාගන්න

ඔබ සංස්කරණය කළ පැතිකඩෙන් නොව, ඩීමන් ඇත්තටම ලැබූ දෙයින් ආරම්භ කරන්න. ps -ef සහ ඒකකයේ ExecStart විධාන පේළිය පෙන්වයි, එයට කන්ටේනර ප්‍රවේශ ලක්ෂ්‍යයකින් හෝ ආවරණයකින් --up එකතු විය හැක; බෙදාහැරීමක init ගොනුවකට ද එයම කළ හැක. systemctl cat openvpn-server@server සේවාවම එකතු කරන දේ හෙළි කරයි, වින්‍යාස නාමාවලියේ පුනරාවර්ත grep ෆයිල් මට්ටමේ අර්ථ දැක්වීම් සොයා ගනී. අනුපිටපත් සාමාන්‍යයෙන් විවිධ ස්ථරවලින් පැමිණේ, එක් ගොනුවක් සංස්කරණය කිරීමෙන් කිසිවක් නොවෙනස් වන්නේ එබැවිනි.

ස්ක්‍රිප්ට් එකක් වෙනත් නාමාවලියකට පිටපත් කිරීම හෝ නැවත නම් කිරීම ද උපදෙසක් ඉවත් නොකරයි. තත්ත්ව විග්‍රාහකය ගොනු නොව අර්ථ දැක්වීම් ගණන් කරයි.

එක් hook එකකට කාර්යය හිමි වේවා

කල් පවතින විසඳුම වන්නේ ක්‍රියා දෙකම සැලකිල්ලෙන් තෝරන අනුපිළිවෙලකින් ක්‍රියාත්මක කරන එක් යවන්නෙකි. set -eu සහිත කෙටි shell ස්ක්‍රිප්ට් එකක් අවශ්‍ය ඒකාබද්ධතාවය සහ පසුව දේශීය ක්‍රියාව ඇමතීමෙන් සහ තර්කවල මායිම් රැඳී පවතින පරිදි "$@" යැවීමෙන් හැසිරීම පරීක්ෂා කළ හැකි එකම තැනක තබා ගනී. තර්ක යැවීම ඒවා ආරක්ෂා කරයි පමණි; සහායකයන් දෙදෙනාම එකම අතුරුමුහුණතක් බලාපොරොත්තු වන බව එය ඔප්පු නොකරයි, එබැවින් එක් එක්කෙනාගේ ගිවිසුම කියවන්න. අසාර්ථකත්වයක් කළ යුතු දේ සහ අර්ධ වෙනස්කම් ආපසු හැරවිය යුතු ද යන්න තීරණය කරන්න.

දියත් කරන්නා ආධාරක දිගුවක් hook එකක් ලබා දෙන්නේ නම්, අතින් සාදන ලද දාමයට වඩා එයට මුල් තැන දෙන්න. කන්ටේනර රූපයක හෝ වෙළෙන්දාගේ පැකේජයක අමතර කාර්යය සඳහා ලේඛනගත තැනක් බොහෝ විට ඇත, එය භාවිත කිරීමෙන් යාවත්කාලීනයක් ඔබේ යවන්නා උඩින් ලිවීම වළක්වයි.

පිරිසිදු කිරීම අදාළ down අදියරට අයත් වේ. DNS නැවත ලියන හෝ මාර්ග එකතු කරන up ක්‍රියාවකට ලේඛනගත ආපසු හැරවීමක් අවශ්‍යයි, සහ ආරම්භය පමණක් හසුරුවන යවන්නෙක් අර්ධ නිර්මාණයකි.

නිශ්ශබ්දතාව නොව ඒකාබද්ධතාව තහවුරු කරන්න

අනුපිටපත් අනතුරු ඇඟවීම ඉවත් කිරීම පහසු කොටසයි; ඒකාබද්ධතාව තවමත් ක්‍රියා කළ යුතුය. සම්බන්ධ වූ පසු resolvectl status මගින් හෝ /etc/resolv.conf කියවීමෙන් විසඳන්නාගේ තත්ත්වය පරීක්ෂා කරන්න, සහ ip route මගින් මාර්ග තහවුරු කරන්න. පසුව විසන්ධ කර නැවත සම්බන්ධ වන්න, මන්ද ඉක්මනින් සම්බන්ධ කළ hook එකක් පෙර සැසියේ යමක් ඉතිරි කිරීමට නැඹුරු වේ. journalctl -u openvpn-server@server -b ඔබේ යවන්නා ධාවනය වූවා ද සහ කුමක් මුද්‍රණය කළේ ද යන්න පෙන්වයි.

hook හි වරප්‍රසාද තිබිය යුතු තැනම තබා ගන්න. script-security ඉහළ නැංවීම හෝ ඩීමන් වැඩි අයිතීන් සමඟ ධාවනය කිරීම ප්‍රතිස්ථාපිත hook එකකට විසඳුමක් නොවේ; එය අනාගත සෑම ස්ක්‍රිප්ට් එකකටම, ප්‍රහාරකයෙකු නම් කරන එකකට පවා කළ හැකි දේ පුළුල් කරයි.

විසඳුම සැබෑ බවට සලකුණ ලොගයේ නිශ්ශබ්දතාව නොවේ. එය DNS පිළිතුර, මාර්ග සටහන සහ පිරිසිදු කිරීම, නැවත සම්බන්ධ වීම් දෙකකට පසු සියල්ල නිවැරදිව ක්‍රියා කරයි.

අදාළ ලිපි