කොක්ක ස්ක්‍රිප්ටයක ඇති හිස් $_ENV අරේ යනු OpenVPN කිසිවක් ලබා නොදුන් බවට සාක්ෂියක් ලෙස පෙනේ. සාමාන්‍යයෙන් එය සම්පූර්ණයෙන්ම වෙනත් දෙයක් ඔප්පු කරයි: එම සුපිරි ගෝලීය විචල්‍යය පිරවීම නොකිරීමට PHP වින්‍යාස කර තිබුණි, අගයන් සෑම විටම ක්‍රියාවලි පරිසරයේ තිබුණි. දෙවන වැරදි නිගමනය වඩාත් සියුම්ය, මන්ද සම්බන්ධතා කොක්කයේ ලිපින විචල්‍ය දෙක වෙනස් දේ අදහස් කරන අතර එකිනෙකට මාරුවෙන් භාවිත වේ. වැරදි එකකින් ආරම්භ කළහොත් දෙකම සවසක් වැය කරයි.

ලිපින දෙකක්, වෙනස් ප්‍රකාශ දෙකක්

පිටත අන්ත ලක්ෂ්‍යය යනු සේවාදායකයා විසින් සේවාදායක සම්බන්ධතාවයේදී නිරීක්ෂණය කළ දෙයයි, IPv4 සඳහා trusted_ip ලෙසත් IPv6 සඳහා trusted_ip6 ලෙසත් ලබා ගත හැක. අතථ්‍ය ලිපිනය යනු මෙම සැසිය සඳහා තටාකය විසින් පවරන ලද දෙයයි, ifconfig_pool_remote_ip ලෙස ලබා ගත හැක.

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

අවම කියවීමක් මෙසේ පෙනේ.

$outer4 = getenv('trusted_ip');
$outer6 = getenv('trusted_ip6');
$inner  = getenv('ifconfig_pool_remote_ip');
$outer  = $outer4 !== false ? $outer4 : $outer6;

කිසිදු අගයක් පුද්ගලයෙකු හඳුනා නොගනී. එකක් ජාල නිරීක්ෂණයක්, අනෙක බද්ධයක්, ඒවායින් එකක් ස්ථිර උපාංග හඳුනාගැනීමක් ලෙස සලකන වාර්තාවක්, සේවාදායකයා වෙනත් ජාලයකින් නැවත සම්බන්ධ වන පළමු අවස්ථාවේදී හෝ වෙනත් තටාක ලිපිනයක් ලබන විට වැරදි වනු ඇත. වාර්තාව පිළිතුරු දිය යුතු ප්‍රශ්නය අනුව ක්ෂේත්‍රය තෝරන්න, පසුව එම ප්‍රශ්නය තීරුව අසල ලියන්න.

PHP ආරම්භ කළ ආකාරය පරීක්ෂා කරන්න, ඔබේ ෂෙල් නොවේ

කොක්ක ක්‍රියාත්මක වන්නේ VPN ඩීමන්ගේ දරුවෙකු ලෙස, ඩීමන් නිර්මාණය කරන පරිසරයක් සමඟය. ඔබේ අන්තර්ක්‍රියාකාරී ෂෙල්ට වෙනත් එකක් ඇත, ස්ක්‍රිප්ටය අතින් ධාවනය කිරීම කොක්කගේ නොව ෂෙල්ගේ පරිසරය පරීක්ෂා කරයි.

ඔබ බලාපොරොත්තු වූ අවස්ථාවේ කොක්ක සැබවින්ම ක්‍රියාත්මක වූ බව තහවුරු කිරීමෙන් ආරම්භ කරන්න. වැරදි අවස්ථාවකට සම්බන්ධ කළ ස්ක්‍රිප්ටයක්, නැතහොත් උපදෙස වෙනත් මාර්ගයකට යොමු වන නිසා කිසිදා නොගිය ස්ක්‍රිප්ටයක්, අතුරුදහන් විචල්‍යයක් මෙන් හරියටම එකම රෝග ලක්ෂණ ලබා දෙයි. ස්ක්‍රිප්ටයේ මුදුනේ චේතනාන්විත සලකුණු පේළියක් එකතු කර වෙනත් කිසිවක් පරීක්ෂා කිරීමට පෙර එය දිස්වන බව තහවුරු කරන්න. ලොගයේ කාල මුද්‍රා සහිත එකම පේළියක් «කිසිදා නොගිය» සහ «අගයක් නොමැතිව ගිය» යන දෙක වෙන් කරයි.

පසුව එම ඇමතුම භාවිත කරන අර්ථ නිරූපකය සහ වින්‍යාස ගොනුව තහවුරු කරන්න. වෙබ් සේවාදායකයක් සඳහා PHP වින්‍යාසය සංස්කරණය කිරීම OpenVPN විසින් ආරම්භ කළ CLI ක්‍රියාවලියකට කිසිවක් වෙනස් නොකරයි, දෙකටම සම්පූර්ණයෙන්ම වෙනස් php.ini ගොනු පූරණය කළ හැක.

හිස් $_ENV කිසිවක් ඔප්පු නොකරන්නේ ඇයි

PHP getenv යොමුව ක්‍රියාවලි පරිසරයේ සෘජු කියවීමක් විස්තර කරයි, එය නම නොමැති විට false ලබා දෙයි. $_ENV සුපිරි ගෝලීය විචල්‍යය වෙන වෙනම පුරවනු ලබයි, කුමන සුපිරි ගෝලීය විචල්‍ය පිරවිය යුතුද යන්න variables_order උපදෙස තීරණය කරයි.

එම උපදෙස E ඉවත් කරන්නේ නම්, පරිසරයේ කුමක් තිබුණත් $_ENV හිස්ව පවතී. එය දර්ශක කරන කේතය එවිට ඇත්තටම පවතින විචල්‍යයක් අතුරුදහන් ලෙස වාර්තා කරයි, පිළිතුර php.ini තුළ තිබියදී විමර්ශනය OpenVPN දෙසට හැරේ. උපදෙස CLI වින්‍යාසය සඳහාම පරීක්ෂා කරන්න, වෙබ් සේවාදායකය සඳහා නොවේ.

getenv සමඟ කියවීම මෙම සමස්ත ව්‍යාකූලතාවයෙන් වළකියි, අර්ථ නිරූපකය ඇමතීමට පෙර පරිසරය පිරිසිදු කරන ආවරණ ස්ක්‍රිප්ටය එය වෙනත් ස්වරූපයකින් නැවත ගෙන එයි.

පේළි යාවත්කාලීනයක් නොව සම්බන්ධයක් ගබඩා කරන්න

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

එකම උමග ලිපිනයක් බෙදාගන්නා සෑම පේළියක් වෙනුවට සත්‍යාපිත අනන්‍යතාවය සහ වත්මන් සැසිය අනුව යාවත්කාලීන කරන්න, මන්ද තටාක ලිපින නැවත භාවිත වන අතර ප්‍රමාද වූ විසන්ධි සිදුවීමක් නව සම්බන්ධතාවයක දත්ත මකා දැමිය හැක. IPv6 පැහැදිලිව හසුරුවන්න, නිහඬව IPv4 අගය පමණක් නොලියන්න. NULL පිටත ලිපිනයක් ඇති පේළියක් වැරදි ලිපිනයක් ඇති පේළියකට වඩා හොඳය, මන්ද පළමුවැන්න පැහැදිලිවම අසම්පූර්ණය.

නැවත සම්බන්ධ වන විට පැරණි වාර්තාව සංස්කරණය නොකර නව වාර්තාවක් සෑදීමට, ලිවීම OpenVPN ලබා දෙන සැසි හඳුනාගැනුමට සම්බන්ධ කරන්න. පරාමිතික ප්‍රකාශ සහ මෙහෙයුමට අවශ්‍ය අවසර පමණක් ඇති ගිණුමක් භාවිත කරන්න. කොක්ක ධාවනය වන්නේ ඩීමන්ගේ අධිකාරිය සමඟ බැවින්, නොසැලකිලිමත් විමසුමක් වැරදි ලොග් පේළියකට වඩා පුළුල් ගැටලුවකි.

පරිසරය බැහැර නොකර රෝග විනිශ්චය කරන්න

කුමන නම් තිබුණිද, කුමන අවස්ථාව ක්‍රියාත්මක වූයේද සහ කුමන අර්ථ නිරූපකය භාවිත වූයේද යන්න ලොග් කරන්න. සම්පූර්ණ පරිසරය මුද්‍රණය නොකරන්න, මන්ද කොක්ක ක්‍රියාවලියකට ලොග් ගොනුවක අවසන් නොවිය යුතු අසම්බන්ධිත අගයන් උරුම විය හැක.

එක් සම්බන්ධතාවයක් ආරම්භයේ සිට අවසානය දක්වා තහවුරු කරන්න: පිටත අන්ත ලක්ෂ්‍යය කියවන්න, පවරන ලද ලිපිනය කියවන්න, එම සැසිය පිළිබඳ සේවාදායකයාගේම දෘෂ්ටිය සමඟ දෙකම ගැලපෙන්න. එක් සේවාදායකයෙකු සඳහා යුගලය තහවුරු වූ පසු, සම්බන්ධය වෙනත් තැන්වලදී විශ්වාස කළ හැක.

අදාළ ලිපි