මෙම වැඩස්ථානයෙන් පිටවන එක් මාර්ගයක් SOCKS ප්‍රොක්සියකි, එහි පිටුපස OpenVPN ප්‍රයෝජනවත් විස්තරයක් නොමැතිව සම්බන්ධතා කාල ඉකුත්වීමක් වාර්තා කරයි. එම යන්ත්‍රයේම බ්‍රවුසරය එම ප්‍රොක්සිය හරහා ක්‍රියා කරයි, අක්තපත්‍ර නිවැරදිය, වරාය පිළිතුරු දෙයි. කරුණු තුනක් පළමුව පරීක්ෂා කළ යුතු තරම් වෙනස් වේ: ප්‍රොක්සිය කථා කරන SOCKS අනුවාදය, සේවාලාභියා තෝරාගත් ප්‍රවාහනය, සහ නම් විශ්ලේෂණය සිදුවන තැන. ගිනිපවුර වැරදි යැයි තීරණය කිරීමට පෙර ඒ සෑම එකක්ම තහවුරු කරන්න.

ගිනිපවුරට පෙර SOCKS අනුවාදය ගැළපන්න

ප්‍රජා OpenVPN socks-proxy සඳහා SOCKS5 කථා කරයි. SOCKS4 පමණක් දෙන ප්‍රොක්සියකට එය යොමු කළොත් TCP සම්බන්ධතාව විවෘත වී පසුව නතර වේ, මන්ද සේවාලාභියා අනෙක් කෙළවර කිසිදා විග්‍රහ නොකරන ආචාරයකට පිළිතුරක් බලා සිටී. පිටතින් මෙම නැවතීම පෙරහන් කළ වරායක් මෙන්ම පෙනේ, එබැවින් අනුවාදය පිළිබඳ ප්‍රශ්නය ඕනෑම ගිනිපවුරු නියමයකට පෙර එයි. SOCKS දන්නා ලබාගැනීමක් එය එක් විධානයකින් තීරණය කරයි.

curl --socks5-hostname 127.0.0.1:9050 gw.lab.example

සම්පූර්ණ වූ ඉල්ලීමක් එකවර කරුණු දෙකක් ඔප්පු කරයි: ප්‍රොක්සිය SOCKS ඉල්ලීම පිළිගත් අතර එය නාමය විශ්ලේෂණය කළේය. URL ක්‍රමයක් අවශ්‍ය නැත, මන්ද curl හිස් සත්කාරකය HTTP ලෙස සලකයි, එය මෙම පරීක්ෂණයට ප්‍රමාණවත්ය.

එම ලබාගැනීම සේවාලාභී ලොගය සඟවන අසාර්ථකත්වයද බැහැර කරයි. ප්‍රොක්සියට බ්‍රවුසරයට අවසර දී තිබියදීත් VPN ගමනාන්තය ප්‍රතික්ෂේප කළ හැක, එවිට ප්‍රතික්ෂේපය සිදුවන්නේ CONNECT හිදීය, ඕනෑම VPN සත්‍යාපනයකට පෙර. OpenVPN වාර්තා කරන්නේ කාල ඉකුත්වීමක් පමණි, එබැවින් ප්‍රොක්සියේම පිළිතුර ඔබට අවශ්‍ය සාක්ෂියයි.

ප්‍රවාහනය දෙපසම TCP විය යුතුය

SOCKS5 මෙහි TCP ධාරාවක් රැගෙන යයි, එබැවින් උමඟටම proto tcp-client අවශ්‍යය. තවම UDP මත පිහිටුවා ඇති පැතිකඩක් මෙම මාර්ගයෙන් ක්‍රියා නොකරයි, මන්ද සේවාලාභියා ප්‍රොටෝකෝලයේ UDP සහභාගීත්ව ආකාරය භාවිත නොකරයි. පැතිකඩ හැරවීම සැබෑ වෙනසකි, විධිමත් බවක් නොවේ: දුර කෙළවර එම වරායේම TCP මත සවන් දිය යුතුය. පසුව භාරය TCP තුළ TCP බවට පත් වේ, එහිදී නැති වූ කොටසක් දෙවරක් නැවත යවනු ලබන අතර වේගය පහත වැටේ, එය අන්තර්ක්‍රියාකාරී සැසි විශාල මාරු කිරීම්වලට වඩා බෙහෙවින් දැනෙයි.

proto tcp-client
remote gw.lab.example 8443
socks-proxy 127.0.0.1 9050

මෙම උපදෙස ප්‍රොක්සි සත්කාරකය, අමතර වරායක් සහ අමතර අක්තපත්‍ර ගොනුවක් ගනී. ඒවා පැතිකඩ තුළම තබන්න, වෙනත් තැනක තබන පිටපතක්ද එසේම හැසිරෙනු ඇත.

මුළු දාමයම එක් බහාලුමකට සීමා කරන්න

දාමය සත්කාරකයේ කිරීම යනු එහි පෙරනිමි මාර්ගය අල්ලා ගැනීම සහ resolver එක පසුව කිසිවෙකුට පැහැදිලි කළ නොහැකි තත්ත්වයක තැබීමය. නාමාවකාශයක් හෝ බහාලුමක් එය සීමා කරයි, එබැවින් සත්කාරකය තම මාර්ගය තබා ගනිමින් SOCKS පිම්ම සහ උමඟ එකට ජීවත් වේ. එහි ඇතුළත උමං උපාංගයක්, එම උපාංගය වින්‍යාස කිරීමේ අයිතිවාසිකම් සහ ළඟා විය හැකි ප්‍රොක්සියක් නොමැතිව කිසිවක් නැගී නොසිටී. Compose සේවාව එය cap_add: NET_ADMIN සහ bind-සවි කළ /dev/net/tun සමඟ ලබා ගනී.

cap_add:
  - NET_ADMIN
devices:
  - /dev/net/tun:/dev/net/tun

මෙම යුගලය බහාලුම privileged ලෙස ධාවනය කිරීමට වඩා පටු ය, උපාංග ප්‍රවේශයේ අවශ්‍ය සියල්ල එපමණය. Tor සේවාලාභියෙකුට හෝ වෙනම ප්‍රොක්සි බහාලුමකට සවන්දෙන්නා සැපයිය හැක. දෙඅවස්ථාවේදීම එය loopback වෙත බන්ධනය කරන්න, ප්‍රොක්සිය ජාලයට නිරාවරණය කරනවාට වඩා නාමාවකාශයෙන් සත්කාරකය හරහා එයට ළඟා වන්න.

නම් විශ්ලේෂණය යනු හුදකලාව අසාර්ථක වන තැනය

පැකට් රැගෙන යමින් සත්කාරකයේ resolver එකෙන් අසන උමඟක් කිසිවක් හුදකලා කර නැත. කරුණු දෙකක් හුදකලාව සැබෑ කරයි: නාමාවකාශයට තමන්ගේම resolver එකක් තිබීම, සහ එහි විමසුම් ප්‍රොක්සිය හෝ උමඟ හරහා යාම, කිසිදා භෞතික අතුරුමුහුණත හරහා නොයාම. පරීක්ෂණයට නම් දෙකක් භාවිත කරන්න: එකක් උමඟ පිටුපස පමණක් පවතී, අනෙක එම මාර්ගයම ගත යුතු පොදු නාමයකි.

docker compose exec vpn cat /etc/resolv.conf
docker compose exec vpn getent hosts internal.lab.example

දුර නාමය විශ්ලේෂණය වී පොදු නාමය නොවේ නම්, දාමය තෝරාගත් එකකි, කැඩුණු එකක් නොවේ, වෙනස ඔබට කියන්නේ එක් එක් විමසුම ගිය මාර්ගයයි. දෙකම සත්කාරකයෙන් විශ්ලේෂණය වී බහාලුම තුළ කිසිවක් නොවේ නම්, බහාලුම තවමත් සත්කාරකයේ resolver එක ණයට ගනී. ඔබට හමු වූ resolver ගොනුව සටහන් කරන්න, මන්ද එයයි වෙනස් කළ යුතු සැකසුම.

එක් එක් පිම්ම අනුපිළිවෙලින් ඔප්පු කරන්න

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

curl --socks5-hostname 127.0.0.1:9050 gw.lab.example
docker compose exec vpn ip route get 203.0.113.10
docker compose exec vpn getent hosts internal.lab.example

වැඩ කළ සංයෝගය ලියන්න: SOCKS අනුවාදය, ප්‍රවාහනය, resolver සහ නාමාවකාශ සැකසුම්. මෙම දාමය දෙවන වරට මතකයෙන් විසඳීම සටහනට වඩා මිල අධිකය. එම කරුණු හතරම ටිකට්පතේ තබන්න, කතාබහ සියුමක නොව.

සම්බන්ධයි යැයි වාර්තා කර කිසිවක් ගෙන නොයන දාමයක් සාමාන්‍යයෙන් ඔබ තවම ඔප්පු නොකළ පිම්මේම අසාර්ථක වී ඇත. තවත් ස්තරයක් එකතු කිරීමට පෙර එම පිම්ම පරීක්ෂා කරන්න.

අදාළ ලිපි