ඔබේ VPN උඩින් SOCKS ප්රොක්සි ලෙස SSH ගතික යැවීම
SOCKS පමණක් කතා කරන යෙදුමකට සාමාන්ය VPN එකක ප්රොක්සි අන්ත ලක්ෂ්යයක් නැත. උඩුගත කිරීම් දෙකක්, එක් ලූප්බැක් ශ්රාවකයෙක් සහ SSH සේවාදායකයාම කළ යුතු නම් සෙවීමක්.
SOCKS පමණක් කතා කරන යෙදුමකට සාමාන්ය VPN එකක කතා කිරීමට කිසිවක් නැත, මන්ද උමග පැකට් ගෙනයන අතර යෙදුමට ප්රොක්සි අන්ත ලක්ෂ්යයක් අවශ්ය වේ. ප්රවේශයේ හිමිකරු අවසර දෙන විට OpenSSH එම ලක්ෂ්යය ලබා දිය හැක, මන්ද ගතික යැවීම එක් SSH සැසියක් දේශීය ප්රොක්සියක් බවට පත් කරයි. ඉන්පසු උඩුගත කිරීම් දෙකක් වෙන් කර තැබිය යුතුය: SSH සත්කාරකයට ළඟා වන උමග සහ එම සත්කාරකය ඉන්පසු විවෘත කරන සම්බන්ධතාව. ඒවා වෙන් කිරීම මෙම සැකැස්ම ඇයි ක්රියා කරන්නේ සහ එය කිසිදා කුමක් නොකරන්නේද යන්න පැහැදිලි කරයි.
SSH ශ්රාවකයා කුමක් වේද, කුමක් නොවේද
ගතික යැවීම SSH සේවාලාභියා දේශීයව සවන් දීමට සහ සම්බන්ධ වන සියල්ල සමඟ SOCKS4 හෝ SOCKS5 කතා කිරීමට බල කරයි. සෑම ඉල්ලීමක්ම ගමනාන්තයක් නම් කරන අතර SSH සේවාදායකයා ඊළඟ සම්බන්ධතාව විවෘත කරයි, එබැවින් ගමනාන්ත සෙවීම අනෙක් පසින් සිදු විය හැක. මෙය යෙදුම් මට්ටමේ TCP යැවීමකි, මුළු උපාංගය සඳහා VPN එකක් නොවේ. එය UDP සංගමයක්, ICMP, හෝ ප්රොක්සි සැකසුම් සම්පූර්ණයෙන් නොසලකා හරින යෙදුම් සඳහා කිසිවක් ගෙන යන්නේ නැත. SSH සේවාදායකයේ සිට යෙදුම දක්වා උඩුගත කිරීමද ඔබේ උමග තුළ නැත, ගමනාන්තය දන්නා ජාලවලින් පමණක් රථවාහන ලබා ගන්නා විට මෙය වැදගත් වේ.
පූර්ව කොන්දේසි සැබෑ ය: SSH සත්කාරකයට මාර්ගයක්, බලයලත් ගිණුමක්, තහවුරු කළ සේවාදායක සත්කාරක යතුරක් සහ යැවීමට අවසරයක්. ඒවායින් කිසිවක් ප්රොක්සිය නිර්මාණය නොකරයි, අවසාන එක සාමාන්යයෙන් පළමුව අතුරුදහන් වේ. වෙනත් කිසිවක් දෝෂ නිරාකරණය කිරීමට පෙර හතරම තහවුරු කරන්න, මන්ද සේවාලාභියාගේ පැත්තෙන් අසාර්ථකත්වය එකම ලෙස පෙනේ, කුමක් අතුරුදහන් වුවත්.
එය පැහැදිලි තොටුපළක් සමඟ ලූප්බැක් මත ආරම්භ කරන්න
භාවිත නොකළ දේශීය තොටුපළක් තෝරා ලිපිනය ඉවත් නොකර එය පැහැදිලිව ලූප්බැක් වෙත බැඳ තබන්න. පහත විකල්ප තුනෙන් එකක් එක් හේතුවක් සඳහා පවතී.
ssh -D 127.0.0.1:1080 -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
[email protected]
-N දුරස්ථ විධානය මඟ හරියි, -T ව්යාජ-ටර්මිනලය මඟ හරියි, එබැවින් සැසිය යැවීම සඳහා පමණක් පවතී. ExitOnForwardFailure ශ්රාවකයා නිර්මාණය කළ නොහැකි විට සේවාලාභියා පිටවීමට සලස්වයි, ඉල්ලා සිටි යැවීමකින් තොරව ක්රියා කිරීම වෙනුවට. ControlPath=none සැසිය තමන්ගේම යැවීම් එකතු කළ හැකි පවතින බහු සම්බන්ධතාවකින් පිටත තබා ගනී. ලූප්බැක් ශ්රාවකයා LAN තුළින් පිටත තබා ගනී, නමුත් හවුල් යන්ත්රයක මෙය බලය පැවරීමේ සීමාවක් නොවේ, මන්ද අනෙකුත් දේශීය ක්රියාවලීන්ටද එයට ළඟා විය හැක. OpenSSH සේවාලාභී සඳහන් මෙම සියලු ධජ ලේඛනගත කරයි, සහ ලූප්බැක් අනතුරු ඇඟවීම සවන් දෙන සොකට් යනු කුමක්ද යන්නෙන් පැමිණේ.
නම් ප්රොක්සිය හරහා යවන්න, එය වටා නොව
SOCKS5 සේවාලාභියාට ගමනාන්තය තමන්ම විසඳා ගත හැක හෝ ප්රොක්සියෙන් එය ඉල්ලා සිටිය හැක, එම තේරීම කුමන විසඳන්නා පිළිතුරු දෙන්නේද යන්න තීරණය කරයි. socks5h සමඟ curl සත්කාරක නාමය ප්රොක්සිය හරහා යවයි, එබැවින් සෙවීම SSH සේවාදායකයේ සිදු වේ. සාමාන්ය socks5 සමඟ ලැප්ටොප් පළමුව විසඳන අතර සම්බන්ධතාව පමණක් ගමන් කරයි, නාමය අභ්යන්තර වන විට මෙය අරමුණ නිශ්ශබ්දව අවුල් කරයි. පහත ඉල්ලීම ප්රොක්සි-රහිත ලැයිස්තුවද හිස් කරයි, එබැවින් උරුම NO_PROXY අගයකට එය ප්රොක්සිය වටා ගෙන යා නොහැක.
curl -sS --noproxy '' --proxy socks5h://127.0.0.1:1080 https://app.corp.example/health
සහතික සත්යාපනය සහ යෙදුමේම පිවිසුම තවමත් අදාළ වේ, මන්ද ප්රොක්සිය දෙකම ප්රතිස්ථාපනය නොකරයි. සෙවීම් දෙකක් ඉතිරි වේ: ලැප්ටොප් අවසර ලත් VPN සහ DNS මාර්ගයෙන් SSH සත්කාරකයට ළඟා විය යුතුය, SSH සේවාදායකයා යෙදුමේ නාමය තමන්ම විසඳා ගත යුතුය. දෙවැන්න ප්රොක්සිය හරහා කිසිදු රථවාහන යාමට පෙර වෙන වෙනම පරීක්ෂා කළ හැක.
ssh [email protected] getent hosts app.corp.example
එක් අවසර ලත් ගමනාන්තයක් ඔප්පු කරන්න, ඉන්පසු සැසිය වසන්න
ප්රතිපත්තිය අවසර දෙන ගමනාන්තයක් සහ එය ප්රතික්ෂේප කළ යුතු එකක් පරීක්ෂා කරන්න, මන්ද ක්රියා කරන යැවීමක් ශ්රාවකයා ක්රියා කරන බව පමණක් ඔප්පු කරයි, ඊට වැඩි කිසිවක් නොවේ. යෙදුම SSH සේවාදායකයා තෝරන මූලාශ්ර ලිපිනය දකී, එය ඔබේ ලැප්ටොප්හි උමග ලිපිනය නොවේ. දුරස්ථ කෙළවර සම්බන්ධතා මූලාශ්රය අනුව ලොග් කරන තැන, ඉල්ලීම ප්රතික්ෂේප වන විට මුලින්ම බැලිය යුත්තේ එම වෙනසයි.
සැසිය එයට හිමි ක්රියාවලිය හරහා නවත්වන්න, සම්බන්ධයක් නැති ෂෙල් එකක් මරා දැමීම වෙනුවට. ඉන්පසු ශ්රාවකයා ගොස් ඇති බව තහවුරු කරන්න, මන්ද තවමත් පිළිතුරු දෙන තොටුපළක් යනු ඔබ සැබවින්ම වසා නොගත් සැසියකි. මෙම අභ්යාසය ගෙන ආ ප්රොක්සි සැකසුම පමණක් ඉවත් කරන්න, යෙදුම් වින්යාසයේ ඉතිරිය එලෙසම තබන්න. යැවීම් නියමයක් රඳවා ගන්නා අධීක්ෂණයක් නැති ටර්මිනලයක් සේවාවක් නොවේ, සහ ස්ථිර ප්රොක්සියකට අනුමත ජීවන චක්රයක් අවශ්ය වේ, අමතක වූ කවුළුවක් නොවේ.
ss -ltn | grep 1080
මෙම සැකැස්ම සුවපත් කළ නොහැකි අසාර්ථකතා
සමහර රෝග ලක්ෂණ ඉහත සීමා වෙත කෙළින්ම යොමු කරයි, ඒවා කලින් හඳුනා ගැනීම ප්රොක්සි දෝෂ නිරාකරණයේ දහවලක් ඉතිරි කරයි. වගුව ඔබ දකින දේ එය සාමාන්යයෙන් අදහස් කරන දෙය සමඟ සම්බන්ධ කරයි. අවසාන තීරුවේ ඇති සියල්ල වින්යාස දෝෂයක් නොව, නිර්මාණ ප්රශ්නයකි.
| What you see | What it usually means | Where to look |
|---|---|---|
| The app connects and nothing follows | It ignores proxy settings entirely | Its own network settings, not the SSH session |
| A name resolution error for the destination | The SSH server cannot resolve it | Server resolver and search domains |
| A UDP-only application fails | Dynamic forwarding carries TCP only | This arrangement cannot serve it |
| curl works, the browser does not | The browser is not using the socks5h endpoint | Browser proxy configuration |
| The listener answers after the session ended | Another process owns port 1080 | The ss output, then the owning process |
පළමු පේළි තුන මිනිසුන් වැරදි ලෙස රෝග විනිශ්චය කරන ඒවාය, මන්ද එක් එක් ප්රොක්සිය ගැන දෝෂයක් වෙනුවට සම්බන්ධතා උත්සාහයක් නිපදවයි. ලැප්ටොප්හි විසඳෙන නාමයක් සේවාදායකයේ විසඳන්නා ගැන කිසිවක් නොකියයි, අසාර්ථකත්වය ඒ වෙනුවට සහතික හෝ කාල සීමා ගැටලුවක් ලෙස කියවේ. UDP පමණක් ඇති යෙදුම් නිර්මාණය තුළ කැඩී ඇති ලෙස නොව, ඉන් පිටත සිටියි, කිසිදු අතිරේක ssh විකල්පයක් එය වෙනස් නොකරයි. බ්රවුසර පේළිය ප්රොක්සි සැකසුම් සෑම යෙදුමකටම වෙන වෙනම බව සිහිපත් කිරීමකි. අවසාන පේළිය වැසීමේ පරීක්ෂාව ඇයි දැයි පෙන්වයි: තවමත් සවන් දෙන තොටුපළක් යනු දැන් එයට වෙනත් දෙයක් හිමිකම් කියන බවයි.