கொள்கை வழித்தடம் மற்றும் SOCKS: எந்த அடுக்கு உண்மையில் டிராஃபிக்கை ப்ராக்ஸி செய்கிறது
SOCKS துறைமுகத்திற்கான வழி SOCKS அமர்வு அல்ல. பயன்பாட்டு மட்ட ப்ராக்ஸி அமைப்புகள், IP-முதல்-ப்ராக்ஸி அடாப்டர் மற்றும் வழித்தடம் செய்யப்பட்ட நுழைவாயில் ஆகியவற்றை மாற்றம் செய்யும் அடுக்கின் அடிப்படையில் ஒப்பிடுங்கள்.
1080 துறைமுகத்தில் SOCKS கேட்பான் இயங்கும் ஹோஸ்டுக்கு VPN கிளையண்டின் டிராஃபிக்கை அனுப்பும் கொள்கை வழித்தடத்தைச் சேர்த்தீர்கள். பாக்கெட்டுகள் வருகின்றன, கேட்பான் எதையும் பதிவு செய்யவில்லை, மற்றும் இணைப்பு தொங்குகிறது. வழித்தடத்தில் எந்தத் தவறும் இல்லை: அடுத்த தாவல் பாக்கெட் எங்கு செல்லும் என்பதைத் தேர்ந்தெடுக்கிறது, SOCKS என்பது கிளையண்ட் தான் தொடங்க வேண்டிய உரையாடல். ப்ராக்ஸி வழியாக டிராஃபிக்கை அனுப்புவதில் மக்கள் பொதுவாகக் குறிப்பிடும் மூன்று கட்டமைப்புகளை ஒப்பிடுங்கள், உங்கள் அமைப்பில் எந்தப் பகுதி இல்லை என்பது தெளிவாகும்.
வழித்தடம், DNAT மற்றும் SOCKS வெவ்வேறு விஷயங்களை மாற்றுகின்றன
கொள்கை வழித்தடம் அடுக்கு 3 இன் முடிவை மீண்டும் எழுதுகிறது. ஒரு கிளையண்டின் டிராஃபிக்கைத் தேர்ந்தெடுத்த அடுத்த தாவலுக்கு அனுப்ப இரண்டு வரிகள் போதும்:
ip route add default via 10.50.0.2 table 101
ip rule add from 10.77.0.2 lookup 101அதன் பிறகு கர்னல் பாக்கெட்டை 10.50.0.2 க்கு ஒப்படைக்கிறது, அசல் இலக்கு இன்னும் IP தலைப்பில் உள்ளது. 10.50.0.2 ஒரு ரவுட்டர் என்றால், அது பாக்கெட்டை அனுப்புகிறது. அது 1080 இல் SOCKS டீமன் கொண்ட ஹோஸ்ட் என்றால், பாக்கெட் அதை ஏற்கக்கூடிய எதற்கும் முகவரியிடப்படவில்லை, மேலும் 1080 துறைமுகத்திற்கான DNAT உம் உதவாது, ஏனெனில் மொழிபெயர்க்கப்பட்ட பாக்கெட் இன்னும் SOCKS வாழ்த்துக்குப் பதிலாக அசல் பயன்பாட்டு சுமையைச் சுமக்கிறது.
SOCKS5 பதிப்பு பைட், முறைகளின் பட்டியல், அங்கீகாரப் பரிமாற்றம் மற்றும் இலக்கைப் பெயரிடும் கோரிக்கையுடன் தொடங்குகிறது. அவை பயன்பாட்டுத் தரவு. எந்த வழித்தடப் பதிவும் netfilter இலக்கும் அதை உருவாக்குவதில்லை, ஒரு வரியில் ஒப்பீடு இதுதான்: வழித்தடம் ஒரு பாதையைத் தேர்ந்தெடுக்கிறது, SOCKS சேவையகத்தை இரண்டாவது இணைப்பை உருவாக்கச் சொல்கிறது.
முதல் நிலை: பயன்பாடே SOCKS பேச முடியும்
நிரலில் ப்ராக்ஸி அமைப்பு இருந்தால், இதுவே குறுகிய வழி, கர்னலில் மாற்றம் தேவையில்லை. அதைக் கேட்பானை நோக்கிக் காட்டுங்கள், சேவையகம் கேட்டால் சான்றுகளை வழங்குங்கள், பெயர்கள் உள்ளூரில் தீர்க்கப்படுமா அல்லது ப்ராக்ஸிக்கு அனுப்பப்படுமா என்பதை முடிவு செய்யுங்கள். curl இல் இவை வெவ்வேறு கொடிகள், இலக்கு ப்ராக்ஸி பக்கத்திலிருந்து மட்டுமே தீர்க்கப்படும்போது வேறுபாடு முக்கியம்:
curl --socks5 10.50.0.2:1080 https://docs.example.com
curl --socks5-hostname 10.50.0.2:1080 https://internal.example.comப்ராக்ஸி சூழல் மாறிகளைப் புறக்கணிக்கும் அல்லது மூல சாக்கெட்டுகளைத் திறக்கும் பயன்பாடுகளுக்கு இந்த வழியில் உதவ முடியாது. உலாவிகள் மற்றும் பெரும்பாலான HTTP கருவிகள் நன்றாக உள்ளன; விளையாட்டு கிளையண்ட், மின்னஞ்சல் டீமன் அல்லது விற்பனையாளரின் தன்னிச்சையான பைனரி பொதுவாக இல்லை. எல்லை ஒவ்வொரு பயன்பாட்டிற்கும் ஒவ்வொரு நெறிமுறைக்கும், அதனால்தான் இந்த விருப்பம் சோதனைக்கு சிறந்தது, முழு VPN க்கும் பதிலாக பலவீனமானது.
இரண்டாவது நிலை: IP ஓட்டங்களை ப்ராக்ஸி அமர்வுகளாக மாற்றும் அடாப்டர்
SOCKS பேச முடியாத நிரல்களுக்கு, மாற்றம் IP டிராஃபிக்கை முடிப்பதும் அவர்களின் சார்பாக ப்ராக்ஸி அமர்வுகளைத் திறப்பதும் செய்யும் ஒன்றில் நடக்க வேண்டும். அந்தக் கூறு சுரங்கப்பாதை இடைமுகத்தைக் கொண்டுள்ளது, கொள்கை வழித்தடம் தேர்ந்தெடுத்த ஓட்டங்களை ஏற்கிறது, ஒவ்வொன்றுக்கும் SOCKS கைக்குலுக்கலைச் செய்கிறது, பதில்களை மீண்டும் கட்டமைக்கிறது. வழித்தடம் டிராஃபிக்கை அதை நோக்கித் திருப்புகிறது; அமர்வை உருவாக்குவது அடாப்டர்.
ஒரு முழு துணை வலையத்தை அதற்கு ஒப்புவிக்கும் முன் அதன் ஆவணங்களைப் படியுங்கள். பல அடாப்டர்கள் TCP ஐ நன்றாகச் சுமக்கின்றன, UDP ஐ SOCKS5 UDP சங்கத்தின் மூலம் மட்டுமே கையாள்கின்றன, அவற்றில் எதுவும் ICMP ஐ ப்ராக்ஸி டிராஃபிக்காக மாற்றுவதில்லை, எனவே வெற்றிகரமான ping ப்ராக்ஸி பாதையைப் பற்றி எதுவும் சொல்லாது. DNS மற்றொரு பொறி: அடாப்டர் பெயர்களை உள்ளூரில் தீர்த்தால், உள்-மட்டும் பதிவுகள் தவறான பதிலாக அல்லது எதுவுமில்லாததாகத் தீர்க்கப்படும்.
சுழல்களைத் தடுப்பது கடிக்கும் செயல்பாட்டு விவரம். அடாப்டரின் SOCKS சேவையகத்திற்கான சொந்த இணைப்புகள் மீண்டும் அடாப்டருக்குள் வழித்தடம் செய்யப்படக் கூடாது, எனவே அதன் டிராஃபிக்கிற்கு விதியில் விலக்கு அல்லது தனி மூல முகவரி தேவை. இதைத் தவறாகச் செய்தால் ப்ராக்ஸி அமர்வு தன்னையே ப்ராக்ஸி செய்ய முயற்சிக்கும்.
மூன்றாவது நிலை: ஹோஸ்ட் உண்மையில் வழித்தடம் செய்யப்பட்ட நுழைவாயில்
சில நேரங்களில் வேலை செய்யும் அமைப்பில் SOCKS இல்லவே இல்லை. தொலை ஹோஸ்ட் பாக்கெட்டுகளை அனுப்புகிறது அல்லது அவற்றுக்கு NAT செய்கிறது, மூல அடிப்படையிலான விதி அதை வெறுமனே வெளியேறும் வழியாகத் தேர்ந்தெடுக்கிறது. அந்த வடிவமைப்பு செல்லுபடியானது, நகலெடுக்கப்பட்ட உள்ளமைவு ஒரு வலையத்தில் வேலை செய்து மற்றொன்றில் தோல்வியடைவதற்கான காரணத்தை அது விளக்குகிறது: விதி ஒன்றுதான், இல்லாத பகுதி மறுபக்கத்தில் உள்ள அனுப்பீட்டுச் சேவை.
மூன்று நிலைகளும் விரைவாகப் பிரிகின்றன. உண்மையில் எது கேட்கிறது என்பதைச் சரிபார்க்கவும், பின்னர் ஹோஸ்டை அடையும் முதல் பைட்டுகளைப் பார்க்கவும்:
ss -ltnp 'sport = :1080'
tcpdump -ni eth0 -X 'tcp port 1080'உண்மையான SOCKS கிளையண்டின் முதல் சுமை பைட் 0x05, வாழ்த்தில் உள்ள பதிப்பு. பதிவு அதற்குப் பதிலாக அசல் பயன்பாட்டுத் தரவைக் காட்டினால், எந்த SOCKS டீமனும் பதிலளிக்காது, ஏனெனில் பேச்சுவார்த்தை ஒருபோதும் தொடங்கவில்லை. 1080 இல் எதுவும் கேட்கவில்லை என்றால், ஹோஸ்ட் ஒரு நுழைவாயில், கேள்வி அது அனுப்புகிறதா மற்றும் திரும்பும் வழி உள்ளதா என்பதாகும்.
நான்கு கேள்விகளுடன் அடுக்கைத் தேர்ந்தெடுங்கள்
நிரலில் ப்ராக்ஸி அமைப்பு உள்ளதா? அதைப் பயன்படுத்தி அங்கேயே நிறுத்துங்கள். டிராஃபிக்கில் உயிர் பிழைக்க வேண்டிய UDP அல்லது ICMP உள்ளதா? வழித்தடம் செய்யப்பட்ட அல்லது NAT நுழைவாயில் மட்டுமே ICMP ஐச் சுமக்கிறது, UDP க்கு இரு முனைகளும் ஆதரிக்கும் SOCKS5 சங்கம் தேவை. இயந்திரத்தின் ஒவ்வொரு செயல்முறையும், நீங்கள் உள்ளமைக்க முடியாதவை உட்பட, மூடப்பட வேண்டுமா? அப்படியானால் இடைமுகத்தை வைத்திருக்கும் மற்றும் ஓட்டங்களை முடிக்கும் அடாப்டர் வேண்டும். அதன் வழித்தடம், DNS மற்றும் சுழல்-தடுப்பு விலக்குகளையும் நீங்கள் ஏற்க முடியுமா? முடியாவிட்டால், சாதாரண நுழைவாயில் இயக்கக் குறைவான செலவாகும்.
ஒரு வேறுபாட்டை நேராக வைத்திருப்பது மதிப்புள்ளது. VPN கிளையண்டின் சொந்த socks-proxy விருப்பம் வெளிப்புற சுரங்கப்பாதை இணைப்பு அதன் சேவையகத்தை எவ்வாறு அடைகிறது என்பதை விவரிக்கிறது, உள் கிளையண்ட் ஓட்டங்களின் மாற்றம் பற்றி எதுவும் சொல்லவில்லை. இரண்டும் ஒரே டிக்கெட்டில் தொடர்ந்து குழப்பப்படுகின்றன. ஒரு வழித்தடத்தைத் தொடும் முன் உங்களுக்கு எந்த உறவு தேவை என்பதை முடிவு செய்யுங்கள்.