OpenVPN UDP-ക്കായി Nginx stream റിലേ: എന്താണ് മാറുന്നത്
UDP, HTTP location-ൽ ഉൾപ്പെടുന്നില്ല. അത് stream പാളിയിലേക്ക് മാറ്റുക, VPN-നായി സെഷൻ സമയപരിധി നിശ്ചയിക്കുക, ഉറവിടമായി പ്രോക്സിയെ പ്രതീക്ഷിക്കുക.
നിങ്ങളുടെ ക്ലയന്റ് UDP-യിൽ സജ്ജീകരിച്ചിരിക്കുന്നു, Nginx സെർവറിൽ VPN പോർട്ടിലേക്ക് ചൂണ്ടുന്ന location ബ്ലോക്ക് ഉണ്ട്, പക്ഷേ ഒന്നും എത്തുന്നില്ല. ഇത് പ്രതീക്ഷിതമാണ്: HTTP location-ന് UDP ഡാറ്റാഗ്രാം വഹിക്കാനാവില്ല, മുൻഭാഗത്തിന് എന്ത് പേര് നൽകിയാലും. ഇതിനായി Nginx-ന് ഒരു stream ശ്രോതാവ് വേണം, കോൺഫിഗറേഷൻ അങ്ങോട്ട് മാറ്റിയാൽ, സെഷൻ നിലനിൽക്കുമോ എന്ന് വിശദാംശങ്ങളുടെ രണ്ടാം കൂട്ടം തീരുമാനിക്കുന്നു.
പ്രോക്സി പാളി വിലാസത്തിന് മുമ്പ് വരുന്നു
Nginx-ന്റെ stream മൊഡ്യൂൾ HTTP പാഴ്സ് ചെയ്യാതെ TCP, UDP എന്നിവ പ്രോക്സി ചെയ്യുന്നു. അതിന്റെ HTTP മൊഡ്യൂൾ അഭ്യർത്ഥനാ വരി, ഹെഡറുകൾ, പ്രതികരണം എന്നിവ പ്രതീക്ഷിക്കുന്നു, അവയൊന്നും തദ്ദേശീയ OpenVPN ഡാറ്റാഗ്രാമിൽ ഇല്ല. അതിനാൽ പാളി തിരഞ്ഞെടുക്കുന്നതാണ് ആദ്യ തീരുമാനം, അത് ശ്രോതാവ് IPv4 ആണോ IPv6 ആണോ എന്നതിനെ ആശ്രയിക്കുന്നില്ല.
TCP OpenVPN-നൊപ്പം പ്രവർത്തിക്കുന്നതായി തോന്നുന്ന കോൺഫിഗറേഷൻ UDP കേസിനെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല. ഇവിടെ ഗതാഗതം പ്രോട്ടോക്കോളിന്റെ ഭാഗമാണ്, വിന്യാസത്തിന്റെ വിശദാംശമല്ല.
ശ്രോതാവും ബാക്ക്എൻഡും
nginx -V 2>&1 | tr ' ' '\n' | grep stream
stream {
server {
listen [::]:1194 udp reuseport;
proxy_pass [2001:db8::20]:1194;
}
}
എന്തെങ്കിലും എഡിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് build-ൽ stream മൊഡ്യൂൾ ഉണ്ടെന്ന് ഉറപ്പാക്കുക; വിതരണ പാക്കേജ് അതിനെ വേറിട്ട മൊഡ്യൂളായി വിഭജിച്ചേക്കാം, മൊഡ്യൂൾ ഇല്ലെങ്കിൽ ടണലിന് പകരം കോൺഫിഗറേഷൻ പിശക് വരും. ബ്ലോക്ക് പ്രധാന കോൺഫിഗറേഷൻ സന്ദർഭത്തിൽ വയ്ക്കുക, http-നുള്ളിൽ അല്ല, ഡോക്യുമെന്റേഷൻ വിലാസം യഥാർത്ഥ ബാക്ക്എൻഡ് കൊണ്ട് മാറ്റുക.
രണ്ട് പാതകളും രണ്ട് ഫയർവാളുകളും ഡാറ്റാഗ്രാമുകൾ അനുവദിക്കണം: ശ്രോതാവിലേക്കുള്ള വഴിയും പ്രോക്സിയിൽ നിന്ന് ബാക്ക്എൻഡിലേക്കുള്ള വഴിയും. IPv6 ശ്രോതാവ് IPv4 പാത സൃഷ്ടിക്കുന്നുമില്ല, അതിനാൽ ചില ക്ലയന്റുകൾ ഇപ്പോഴും IPv4 ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, ആ ശ്രോതാവ് സ്വന്തം പരിശോധനയുള്ള പ്രത്യേക എൻട്രിയാണ്. ബാക്ക്എൻഡിന്റെ സ്വന്തം ഫയർവാൾ പ്രോക്സിയുടെ വിലാസത്തിൽ നിന്ന് പരിശോധിക്കുക, നിങ്ങളുടെ ലാപ്ടോപ്പിൽ നിന്നല്ല.
സെഷൻ സമയപരിധികൾ അഭ്യർത്ഥനാ സമയപരിധികളല്ല
stream പ്രോക്സി UDP സെഷനുവേണ്ടി അവസ്ഥ സൂക്ഷിക്കുകയും സ്വന്തം സമയപരിധിയും പ്രതികരണ ക്രമീകരണങ്ങളും അനുസരിച്ച് അത് ഉപേക്ഷിക്കുകയും ചെയ്യുന്നു. DNS റിലേയിൽ നിന്ന് പകർത്തിയ ചെറിയ സമയപരിധി മണിക്കൂറുകളോളം ഡാറ്റാഗ്രാം കൈമാറാൻ പ്രതീക്ഷിക്കുന്ന VPN-ന് യോജിക്കുന്നില്ല, പരാജയം ആരംഭിക്കാൻ വിസമ്മതിക്കുന്ന കണക്ഷനല്ല, നിശബ്ദമായി മരിക്കുന്ന കണക്ഷനായി കാണപ്പെടുന്നു.
വിന്യാസത്തിന്റെ ഫലപ്രദമായ proxy_timeout ഉം പ്രതികരണ എണ്ണത്തിന്റെ ഏതെങ്കിലും ക്രമീകരണവും വായിക്കുക, തുടർന്ന് VPN യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന keepalive പെരുമാറ്റവുമായി താരതമ്യം ചെയ്യുക. വ്യത്യസ്ത ആളുകൾ വ്യത്യസ്ത ഫയലുകളിൽ എഴുതിയ രണ്ട് സംഖ്യകൾ പ്രവർത്തിക്കുന്ന സിസ്റ്റത്തിന്റെ സാധാരണ അവസ്ഥയാണ്. ഒരിക്കലും താരതമ്യം ചെയ്യാത്ത രണ്ട് സംഖ്യകൾ ഇടയ്ക്കിടെ മുടങ്ങുന്ന സിസ്റ്റത്തിന്റെ സാധാരണ അവസ്ഥയാണ്. താരതമ്യം ഒരിക്കൽ, പകൽവെളിച്ചത്തിൽ നടക്കാൻ രണ്ടും സേവന രേഖയിൽ എഴുതുക.
റിലേ എന്താണ് മാറ്റുന്നത്, എന്തല്ല
stream പ്രോക്സി OpenVPN-ന്റെ TLS നിയന്ത്രണ ചാനൽ അവസാനിപ്പിക്കുന്നില്ല, അതിനെ HTTPS ആക്കുന്നുമില്ല. ബാക്ക്എൻഡ് VPN സേവനമായി തുടരുന്നു, സർട്ടിഫിക്കറ്റ് ബന്ധം ക്ലയന്റും ആ സേവനവും തമ്മിൽ തുടരുന്നു. ഉദ്ദേശിച്ച ബാക്ക്എൻഡ് ഐഡന്റിറ്റി സംരക്ഷിക്കുന്നത് ഇപ്പോഴും ക്ലയന്റിന്റെയും സെർവറിന്റെയും ജോലിയാണ്.
സാധാരണ പ്രോക്സിയിംഗ് ബാക്ക്എൻഡ് കാണുന്ന ഉറവിട വിലാസവും മാറ്റുന്നു. ലോഗുകൾ പ്രോക്സിയെ കാണിക്കും, VPN സെർവറിലെ IP അടിസ്ഥാനമാക്കിയ ഏത് ആക്സസ് നിയമവും ക്ലയന്റിന്റേതല്ല, ആ വിലാസം വിലയിരുത്തും. സുതാര്യമായ ഉറവിട സംരക്ഷണം വേറിട്ട റൂട്ടിംഗ്, അനുമതി രൂപകൽപ്പനയാണ്, ശ്രോതാവിലേക്ക് udp ചേർക്കുന്നതിൽ നിന്ന് വരുന്നതല്ല. ക്ലയന്റ് വിലാസത്തെ ആശ്രയിക്കുന്ന നയം എഴുതുന്നതിന് മുമ്പ് അത് ആസൂത്രണം ചെയ്യുക.
പോർട്ടിൽ നിന്നല്ല, ക്ലയന്റിൽ നിന്ന് പരിശോധിക്കുക
UDP പോർട്ട് തുറന്നിരിക്കുന്നു എന്ന പ്രാദേശിക പരിശോധന ശ്രോതാവ് നിലവിലുണ്ടെന്ന് തെളിയിക്കുന്നു. ക്ലയന്റിന് അതിലൂടെ പ്രാമാണീകരിക്കാനോ ട്രാഫിക് കൈമാറ്റം തുടരാനോ കഴിയുമെന്ന് അത് തെളിയിക്കുന്നില്ല. അംഗീകൃത ക്ലയന്റിൽ നിന്ന് യഥാർത്ഥ കണക്ഷൻ പൂർത്തിയാക്കുക, തുടർന്ന് സെഷൻ അർത്ഥവത്താകാൻ മതിയായ സമയം നിലനിൽക്കുന്നുവെന്ന് ഉറപ്പാക്കുക.
Nginx-ന് UDP കഴിയില്ല എന്ന് ആരെങ്കിലും റിപ്പോർട്ട് ചെയ്യുമ്പോൾ, പകരം ഒരു ലളിതമായ റിലേ ടൂൾ പ്രവർത്തിച്ചു എന്ന കാരണത്താൽ, ആ രണ്ട് വസ്തുതകൾക്കും ബന്ധമില്ല. ടൂൾ ബാക്ക്എൻഡ് പ്രതികരിക്കുന്നുവെന്ന് തെളിയിച്ചു; മുൻഭാഗം എന്താണ് പിന്തുണയ്ക്കുന്നതെന്ന് അത് ഒന്നും പറഞ്ഞില്ല. രണ്ടും ശരിയാകാം, ഇവയിൽ ഒന്ന് മാത്രമാണ് ഈ വിന്യാസത്തിനുള്ള കോൺഫിഗറേഷൻ.