සම්පූර්ණ යන්ත්රය නොව එක් යෙදුමක් VPN හරහා යොමු කරන ආකාරය
කළමනාකරණය නොකළ කිසිදු ඩෙස්ක්ටොප් එකක් ප්රක්රියාවකට VPN ස්විචයක් ලබා නොදේ. ගමනාගමනය තෝරන ස්තරය තෝරන්න: බැඳුණු සොකට්, UID නියමය, ෆයර්වෝල් පැතිකඩක් හෝ SOCKS පැනීමක්.
VPN සේවාදායකය සම්බන්ධ වේ, බ්රවුසරය ක්රියා කරයි, ඔබට ඇත්තටම වැදගත් එකම විධානය තවමත් ඔබේ නිවසේ සම්බන්ධතාවය හරහා පිටවේ. නැතහොත් ප්රතිවිරුද්ද දෙය සිදු වේ: උමග පෙරනිමි මාර්ගය ගනී, දේශීය ගොනු සේවාදායකය ඩෙස්ක්ටොප් එකෙන් අතුරුදහන් වේ. අභ්යන්තර ආටිෆැක්ට් දර්පණයකට ළඟා විය යුතු ගොඩනැගීම් නියෝජිතයෙකු සමඟ මට මෙය සිදු විය, ඉතිරි සත්කාරකය කාර්යාල LAN හි රැඳී තිබියදී, සේවාදායකය හරියටම විකල්ප දෙකක් පමණක් ලබා දුන්නේය, සියලු ගමනාගමනය හෝ කිසිවක් නැත. ඉල්ලීම දෙපැත්තටම එකම එකකි, මෙම යෙදුම මිස මුළු යන්ත්රය නොවේ, බොහෝ සේවාදායකවලට ඒ සඳහා ලකුණු කොටුවක් නැත, මන්ද මාර්ග වගුව කිසිදා යෙදුමක් යනු කුමක්දැයි නොදැන සිටියේය.
මාර්ග වගුවට ඔබේ යෙදුම දැකිය නොහැක්කේ ඇයි
ප්රක්රියාවක් පැකට්ටුවක් යවන විට, ස්ටැක් එක මාර්ග වගුවේ ගමනාන්ත ලිපිනය සොයයි. ක්රියාත්මක කළ හැකි ගොනුවේ නම හෝ වරාය එම සෙවුමට ඇතුළු නොවේ. වසම් නාම ද එම හේතුව නිසාම අසාර්ථක වේ: උමගක් ගමනාගමනය ලිපිනයකට ගෙන යයි, නාමයක් ලිපිනයකට විසඳන විට, කර්නලයට ඉතිරිව ඇති එකම උත්තේජකය මාර්ගකරණයයි. එබැවින් "මෙම අඩවියට පමණක් VPN" යන්න අවසානයේ ප්රොක්සියක් අදහස් කරයි, "මෙම යෙදුමට පමණක් VPN" යන්න කුඩා ක්රමාංක සමූහයකින් එකක් අදහස් කරයි.
| ක්රමවේදය | තෝරන්නේ කුමක්ද | ආවරණය කරන්නේ | උමග වැටෙන විට |
|---|---|---|---|
| සොකට් බැඳීම | මූල ලිපිනය | ඔබ පාලනය කරන සේවාදායකය | සම්බන්ධතා අසාර්ථක වේ |
| UID නියමය (Linux) | හිමි පරිශීලකයා | එක් ගිණුමක සෑම ප්රක්රියාවක්ම | සම්බන්ධතා අසාර්ථක වේ |
| ෆයර්වෝල් පැතිකඩ (Windows) | අඩප්ටර් පැතිකඩ | එක් යෙදුමක් | වැසුණු ලෙස අසාර්ථක වේ |
| ජාල නාම අවකාශය | නාම අවකාශ සාමාජිකත්වය | ඇතුළත ආරම්භ කරන සියල්ල | සම්බන්ධතා අසාර්ථක වේ |
| SOCKS පැනීම | යෙදුමේ ප්රොක්සි සැකසුම | එක් යෙදුමක් හෝ එක් බ්රවුසර පැතිකඩක් | සම්බන්ධතා අසාර්ථක වේ |
මේවායින් කිසිවක් ප්රක්රියාවකට මාර්ගයක් නොවේ. එක් එක් එක තීරණය යෙදුම, පරිශීලකයා හෝ යෙදුමේම වින්යාසය දැකිය හැකි ස්තරයකට ගෙන යයි.
එක් ගමනාන්තයක් තවමත් මාර්ගයකි, යෙදුම් නියමයක් නොවේ. macOS හි සුපුරුදු ක්රමය "VPN හරහා සියලු ගමනාගමනය යවන්න" යන්න ඉවත් කර සත්කාරක මාර්ගයක් එකතු කිරීමයි: sudo route add -host internal-tuner.example -interface ppp0, පසුව මෙයින් ඉවත් කරනු ලැබේ sudo route delete -host internal-tuner.example -interface ppp0. මුලින්ම ifconfig වෙතින් අතුරුමුහුණත් නාමය කියවන්න, මන්ද ppp0 උදාහරණයක් පමණි. සත්කාරක මාර්ගයක වයිල්ඩ්කාඩ් ක්රියා නොකරයි, එබැවින් නම් කිහිපයක් සමඟ කතා කරන සේවාවකට එක් එක් නාමයට එක් සටහනක් අවශ්ය වේ, නියමය යන්ත්රයේ සෑම ප්රක්රියාවක්ම ආවරණය කරයි, ඔබ සිතූ එක පමණක් නොවේ.
සොකට් එක උමගේ ලිපිනයට බඳින්න
ඔබ සේවාදායකය පාලනය කරන විට, බැඳීම ලාභම තේරීමයි. උමගේ දේශීය ලිපිනයට බැඳුණු සොකට් එකක්, ගමනාන්තයට මාර්ගයක් එහි ඇති තාක් එම අතුරුමුහුණත හරහා පිටවේ, යන්ත්රයේ අනෙක් සියල්ල ඒවායේ සාමාන්ය මාර්ගය තබා ගනී. සියුම් ලක්ෂණය නම්, බැඳීම මූල ලිපිනය තෝරන අතර මාර්ග වගුව තවමත් පිටවීම තෝරයි. බැඳීම පමණක් මාර්ගයක් නැති ගමනාගමනය උමගට ගෙන නොයයි, "මම එය බැඳිය, එය තවමත් වැරදි මාර්ගයෙන් යයි" යන බොහෝ වාර්තා පිටුපස ඇති වැරැද්ද එයයි.
import socket
s = socket.socket()
s.bind(("10.8.0.2", 0))
s.connect(("build.internal.example", 443))ඉහළ මට්ටමේ මෙවලම් එකම අදහස ඉදිරිපත් කරයි: curl --interface 10.8.0.2, CURLOPT_INTERFACE PHP හි සහ source_address යන තර්කය Python හි HTTP සේවාදායකවල. ලිපිනය උමගට අයත් විය යුතුය, මෙහි ටයිප් දෝෂයක් සාමාන්ය සම්බන්ධතා දෝෂයක් ලෙස අසාර්ථක වේ, මාර්ගකරණ පැමිණිල්ලක් ලෙස නොවේ. ලිපිනය වෙනුවට උපාංග නාමයකට බැඳීම Linux වරප්රසාදයක් වන අතර එය Windows හෝ macOS වෙත නොගෙන යයි, එබැවින් ගෙනයා හැකි ස්ක්රිප්ට් ලිපිනය ලබා දෙයි.
Linux: වැඩසටහන් නාමය නොව හිමිකරු ගළපන්න
කර්නලයට සොකට් එකක හිමි පරිශීලකයා ගළපා ගත හැක, එබැවින් කැපවූ ගිණුමක් තේරීම බවට පත් වේ. උමග එහිම මාර්ග වගුවක තබා එම ගිණුමේ ගමනාගමනය පමණක් එහි යවන්න:
ip rule add uidrange 1001-1001 lookup 100
ip route add default dev tun0 table 100උමග දැනටමත් පෙරනිමි මාර්ගය නොවේ නම් මෙය ක්රියා කරයි. සේවාදායකය --route-nopull සමඟ අරඹන්න, නැතහොත් තල්ලු කළ හරවා යැවීම --pull-filter ignore "redirect-gateway" මගින් OpenVPN 2.4 සහ පසුව පෙරහන් කරන්න, පසුව වගු සටහන ඔබම එකතු කරන්න. එසේ නොමැති නම් පෙරනිමි දෙකම පවතී, අඩු ප්රමුඛතාවය ඇති එක දිනයි. එහි හිතාමතා සංස්කරණය වන්නේ පෙරනිමි මාර්ගය උමගේ ද්වාරය වෙත හැරවීම, නැතහොත් විසන්ධි ස්ක්රිප්ට් එකකින් එය කිරීමයි: උමග වැටෙන විට ගමනාගමනය අන්තර්ජාලයෙන් ඉවත්ව තබයි, නමුත් එය මාරක ස්විචයක්, තේරීමක් නොවේ, යමෙක් එය ඉවත් කරන තෙක් පවතී.
ශක්තිමත් සංස්කරණය ජාල නාම අවකාශයකි. එය සාදන්න, සේවාදායකය ඇතුළත ධාවනය කරන්න, යෙදුම ip netns exec සමඟ අරඹන්න. නාම අවකාශයෙන් පිටත කිසිවක් උමගේ අතුරුමුහුණත නොදකී, එබැවින් යෙදුම අහම්බෙන් සත්කාරක මාර්ගයට ආපසු වැටිය නොහැක. පිරිවැය සැබෑය: නාම අවකාශයට භෞතික ජාලයට ළඟා වීමට veth යුගලයක් සහ තමන්ගේම විසඳුම්කරු ගොනුවක් අවශ්ය වේ, මන්ද සවි කිරීමේ නාම අවකාශය සත්කාරකයේ විසඳුම් සැකසුම් බෙදා නොගනී.
අසාර්ථක වීමේ ක්රම දෙකක් බොහෝ කාන්දු පැහැදිලි කරයි. නාම විසඳීම තවමත් සත්කාරකයේ විසඳුම්කරු තුළ සිදු වේ, එබැවින් TCP සම්බන්ධතාවය ඇතුළට ගියත් විමසුම උමගින් පිටතට යයි. IPv6 ට එහිම ip -6 rule අවශ්ය වේ, මන්ද v4 නියමයක් එය ආවරණය නොකරයි.
Windows සහ macOS: ෆයර්වෝලය සීමා කරන්න හෝ ප්රොක්සියක් භාර දෙන්න
Windows ට ද යෙදුමකට මාර්ග තේරීමක් නැත, නමුත් එහි ෆයර්වෝල් නියම පැතිකඩකට සීමා කළ හැක, VPN අඩප්ටරයක් පොදු ලෙස වර්ගීකරණය කළ හැකි අතර නිවසේ LAN පෞද්ගලිකව පවතී. පෞද්ගලික සහ වසම් පැතිකඩවල යෙදුම සඳහා පිටතට යන අවහිර කිරීමේ නියම සාදන්න, පොදු විවෘතව තබන්න, යෙදුමට උමග හරහා පමණක් ජාලයට ළඟා විය හැක. පළමුව සම්බන්ධතාවයේ ජාල කාණ්ඩය සකසන්න, පසුව ෆයර්වෝලයේ අධීක්ෂණ පුවරුවේ නියමය ගැළපුණු බව තහවුරු කරන්න. එය අවහිර කිරීමක්, මාර්ගයක් නොවේ: උමග වැටෙන විට වැසුණු ලෙස අසාර්ථක වේ, ෆයර්වෝලය නොසලකා හරින යෙදුමක් නැවැත්විය නොහැක.
macOS එකම තර්කනය වෙනත් මෙවලම් සමඟ අනුගමනය කරයි. SSH හරහා ළඟා වන SOCKS ශ්රාවකය අවම ආක්රමණශීලී විකල්පයයි, මන්ද ssh -D 1080 user@host එක් දේශීය වරායක් සාදයි, එය භාවිතා කිරීමට වින්යාස කළ යෙදුම් පමණක් එම මාර්ගය ගනී. pf නියමයකට යෙදුමක් පරිශීලකයා හෝ සමූහය අනුව අවහිර කළ හැක, නමුත් එම යෙදුමට පමණක් උමග තෝරා ගත නොහැක. Tunnelblick වසම අනුව පෙරහන් කිරීමට නොහැක, මන්ද මාර්ග ලිපින සමඟ ක්රියා කරයි; OpenConnect පරිශීලකයින් vpn-slice වෙත යොමු වේ, සේවාදායකය විශාල වූ උපසර්ග ලැයිස්තුවක් තල්ලු කරන විට.
විසඳුම් දෙකක් වේදිකා මෙවලම් මග හරින දේ ආවරණය කරයි. වසම අනුව ප්රොක්සිය මාරු කරන බ්රවුසර දිගු "මෙම අඩවිය පමණක්" සඳහා ප්රායෝගික පිළිතුරයි, මන්ද ඒවා නාම තවමත් පවතින යෙදුම් ස්තරයේ ක්රියා කරයි; ඒවා එක් බ්රවුසරයක් පමණක් ආවරණය කරයි, වෙන කිසිවක් නොවේ. රළු මාර්ගය නම් සැපයුම්කරුගේ සේවාදායකය අතථ්ය යන්ත්රයක ධාවනය කිරීමයි, එවිට අමුත්තා මාර්ග වෙනස් කිරීම හිමිකර ගනී, සත්කාරකය තම මාර්ගය තබා ගනී, ජාල ස්ටැක් දෙකක් නඩත්තු කිරීමේ පිරිවැයක් සහිතව.
බැඳීමේ විකල්පයක් නැති මෙවලම් සඳහා SOCKS පැනීමක්
බොහෝ යෙදුම් අතුරුමුහුණත් ගැන කිසිවක් නොදැන සිටියත් HTTP හෝ SOCKS ප්රොක්සියකට යොමු කළ හැක. SSH සේවාදායකයක් සේවාදායක පැත්තේ කිසිදු වෙනසක් නොමැතිව එකක් සපයයි:
ssh -N -D 127.0.0.1:9999 [email protected]එම වරාය භාවිතා කිරීමට වින්යාස කළ සියල්ල බාහුදුර්ගයේ පිටවේ, ඉතිරි ඩෙස්ක්ටොප් එක එහි සාමාන්ය සම්බන්ධතාවය තබා ගනී. උමගේ ලිපිනයට බැඳුණු දේශීය 3proxy අවස්ථාවක් SSH නොමැතිව එක් වරායකට එයම කරයි, stunnel TLS වලින් ඔතන ලද එක් වරායක් ආවරණය කරයි. සීමා ප්රායෝගිකය: ප්රොක්සියක් එය භාවිතා කිරීම දන්නා ප්රොටෝකෝල පමණක් රැගෙන යයි, UDP සඳහා SOCKS5 UDP සංගමය අවශ්ය වේ, බොහෝ සේවාදායකවල "SOCKS5" සැකසුම එය සක්රීය නොකරයි, DNS ප්රොක්සිය මගින් විසඳිය යුතුය (socks5h curl හි) නැතහොත් නාමය දේශීය විසඳුම්කරුට කාන්දු වේ.
වෙනත් යන්ත්රයකට අවශ්ය නොවේ නම් ශ්රාවකය ලූප්බැක්හි තබන්න.
මාර්ගය තත්ත්ව පණිවිඩයකින් නොව ග්රහණයකින් තහවුරු කරන්න
යෙදුම් තත්ත්ව කවුළු සැකසුම විස්තර කරයි, පැකට්ටුව නොවේ. අතුරුමුහුණත් දෙකෙන්ම ගමනාගමනය ග්රහණය කර සසඳන්න:
tcpdump -i any -n port 443
ss -tnp | grep 443සම්බන්ධතාවය භෞතික අතුරුමුහුණතේ පෙනී, උමග මත ගැළපෙන සටහනක් නොමැති නම්, සේවාදායකය කුමක් වාර්තා කළත් තේරීම ක්රියාත්මක නොවේ. IPv6 සහ විසඳුම්කරු වෙන වෙනම පරීක්ෂා කරන්න, සහායක ප්රක්රියාවක් හෝ උරුම වූ පද්ධති ප්රොක්සියක් වැනි දෙවන මාර්ගයක් සොයන්න.
පසුව අවශ්යතාවයට ගැළපෙන සීමාව තෝරන්න: එක් අඩවියකට ප්රොක්සියක් ප්රමාණවත්, එක් ගිණුමකට UID නියමයක් ප්රමාණවත්, සම්බන්ධතාවය වැසුණු ලෙස අසාර්ථක විය යුතු විට ෆයර්වෝල් පැතිකඩක් ප්රමාණවත්, නාම අවකාශය පමණක් උමග එයින් පිටත සියල්ලෙන් සඟවන එකම විකල්පයයි.