உங்கள் 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 விருப்பமும் அதை மாற்றாது. உலாவி வரிசை ப்ராக்ஸி அமைப்புகள் ஒவ்வொரு பயன்பாட்டிற்கும் தனித்தனி என்பதை நினைவூட்டுகிறது. கடைசி வரிசை மூடும் சரிபார்ப்பு ஏன் உள்ளது என்பதைக் காட்டுகிறது: இன்னும் கேட்கும் துறை இப்போது வேறு ஏதோ ஒன்று அதைக் கொண்டுள்ளது என்பதே.