സ്ലീപ്പ് ഹുക്ക് മാത്രം VPN തിരികെ കൊണ്ടുവരില്ല
പൂജ്യത്തോടെ പുറത്തുപോകുന്ന ഹുക്ക് സ്ക്രിപ്റ്റ് പ്രവർത്തിച്ചു എന്ന് മാത്രം തെളിയിക്കുന്നു. അത് നെറ്റ്വർക്കിന് ശേഷം വയ്ക്കുക, ശരിയായ ഐഡന്റിറ്റി ഉപയോഗിക്കുക, പ്രൊഫൈൽ യോഗ്യമാണോ എന്ന് പരിശോധിക്കുക.
സ്ലീപ്പ് ഹുക്കിൽ ഒരു പുനഃബന്ധന കമാൻഡ് ഇടൂ, പ്രശ്നം പരിഹരിച്ചതായി തോന്നും. നെറ്റ്വർക്ക് നിലവിലുള്ള ശേഷം ഹുക്ക് പ്രവർത്തിക്കുകയും, ക്ലയന്റ് തിരിച്ചറിയുന്ന ഐഡന്റിറ്റിയായി, ക്ലയന്റ് യഥാർത്ഥത്തിൽ നടപ്പാക്കുന്ന പാതയിലൂടെ വരുകയും ചെയ്താൽ മാത്രമേ അത് പരിഹരിക്കപ്പെടൂ. ഉണർന്നതിന് ശേഷമുള്ള മിക്ക പരാജയങ്ങളും ആ മൂന്നിൽ ഒന്നാണ്, അവയൊന്നും ഹുക്കിൽ തന്നെ പിശകായി കാണുന്നില്ല. ഹുക്ക് ഏതായാലും വിജയം തിരികെ നൽകുന്നു.
പൂജ്യത്തോടെ പുറത്തുപോകുന്ന സ്ക്രിപ്റ്റ് ഒരു ടണൽ തിരികെ വന്നോ എന്നതിനെക്കുറിച്ച് നിങ്ങളോട് ഒന്നും പറഞ്ഞിട്ടില്ല.
ഹുക്ക് പ്രവർത്തിക്കുന്നു, പിന്നെ എന്ത്?
#!/bin/sh
case "$1" in
pre)
vpn-client disconnect
;;
post)
vpn-client connect
;;
esac
ഓരോ ഇവന്റും ഹുക്കിനെ രണ്ടുതവണ വിളിക്കുന്നു — പരിവർത്തനത്തിന് മുമ്പും ശേഷവും — ഘട്ടവും ഇവന്റിന്റെ പേരും നൽകുന്നു. ഇത് root ആയി കുറഞ്ഞ പരിസ്ഥിതിയിൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ സമ്പൂർണ പാതകൾ ആവശ്യമാണ്, ഡെസ്ക്ടോപ്പ് സെഷൻ വേരിയബിൾ പ്രതീക്ഷിക്കരുത്. രണ്ട് വിളികളും വേഗം തിരികെ വരുന്നു എന്നത് സ്ക്രിപ്റ്റ് പ്രവർത്തിച്ചു എന്ന് മാത്രം പറയുന്നു. അതിനുശേഷം പ്രൊഫൈൽ ഉയർന്നുവന്നോ എന്നത് പ്രത്യേക നിരീക്ഷണമാണ്, ലോഗിൽ അതിന്റേതായ തെളിവ് വേണം.
ഘട്ട ആർഗ്യുമെന്റിനെ ഡിസൈനിന്റെ ഭാഗമായി കാണുക. pre ഘട്ടത്തിലെ പുനഃബന്ധന ശ്രമം യന്ത്രം എല്ലാം നഷ്ടപ്പെടാൻ പോകുമ്പോൾ സംഭവിക്കുന്നു, അത് വിജയിക്കാൻ കഴിയില്ല.
Root, കുറഞ്ഞ പരിസ്ഥിതി, തെറ്റായ ഉപയോക്താവ്
ക്ലയന്റ് ഓരോ ഉപയോക്താവിനും ലോഗിൻ ടോക്കൺ സൂക്ഷിക്കുന്നുവെങ്കിൽ, ഹുക്ക് root ആയി പ്രവർത്തിപ്പിക്കുമ്പോൾ അവതരിപ്പിക്കാൻ ഒന്നും അവശേഷിക്കുന്നില്ല. ഹുക്ക് യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന ഐഡന്റിറ്റിക്ക് കീഴിൽ അവസ്ഥ പരിശോധിക്കുക, ഡെസ്ക്ടോപ്പ് ടെർമിനലിൽ നിന്ന് നിങ്ങൾ പരിശോധിച്ച ഐഡന്റിറ്റിക്ക് കീഴിലല്ല. ചില ബിൽഡുകൾ വിച്ഛേദത്തിന് ശേഷം ഇന്റർഫേസ് പിടിച്ചിരിക്കുന്ന ഡീമണും വിടുന്നു, അതിനാൽ പുനഃബന്ധനം പഴയ അവസ്ഥയിൽ എത്തുന്നു, ആദ്യം പ്രോസസ് വൃത്തിയാക്കുന്നത് അശുദ്ധമായ ഷട്ട്ഡൗണിന്റെ വിലയ്ക്ക് അത് പുനഃസ്ഥാപിക്കുന്നു. സന്തോഷകരമായ പാത മാത്രം പരിശോധിച്ചാൽ രണ്ട് സ്വഭാവങ്ങളും കാണില്ല.
ഹുക്ക് സമ്പൂർണ പാതകളോടെ എഴുതുക, അത് root ഉടമസ്ഥതയിലും പ്രവർത്തനക്ഷമവുമായി സൂക്ഷിക്കുക, അത് എന്ത് ചെയ്തു എന്ന് ലോഗ് ചെയ്യുക. ആ ലോഗ് ഇല്ലാതെ അടുത്ത അന്വേഷണം പൂജ്യത്തിൽ നിന്ന് തുടങ്ങുന്നു.
സ്വയംബന്ധനം VPN പാതയല്ല
NetworkManager രണ്ട് സജീവീകരണ സംവിധാനങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു: പ്രൊഫൈലിലെ സ്വയംബന്ധന ഫ്ലാഗ്, പ്രാഥമിക പ്രൊഫൈൽ സജീവമാകുമ്പോൾ ആരംഭിക്കുന്ന ദ്വിതീയ ബന്ധനങ്ങൾ. തദ്ദേശീയ ഉപകരണ തരങ്ങൾ ആദ്യത്തേത് നടപ്പാക്കുന്നു; VPN പ്ലഗിന്നുകൾ ചരിത്രപരമായി രണ്ടാമത്തേത് മാത്രമേ നടപ്പാക്കിയിട്ടുള്ളൂ, അതിനാൽ OpenVPN പ്രൊഫൈലിൽ സ്വയംബന്ധനം ടിക്ക് ചെയ്യുന്നത് ഒരു ഫലവും ഉണ്ടാക്കിയേക്കില്ല. രണ്ട് ഗുണങ്ങളും പരിശോധിക്കുക, തുടർന്ന് VPN Wi-Fi അല്ലെങ്കിൽ Ethernet പ്രൊഫൈലിന്റെ ദ്വിതീയമായി ഘടിപ്പിക്കുക.
[Unit] PartOf=NetworkManager.service Requires=NetworkManager-wait-online.service After=NetworkManager-wait-online.service
systemd യൂണിറ്റ് നിയന്ത്രിക്കുന്ന WireGuard ഇന്റർഫേസിന് ഹുക്കിന് പകരം ആ ഡ്രോപ്പ്-ഇൻ ആവശ്യമാണ്, നെറ്റ്വർക്ക് ഓൺലൈനായതിന് ശേഷം ക്രമീകരിച്ചത്.
നെറ്റ്വർക്കിനായി കാത്തിരിക്കുക, ഒരു പരിധിയോടെ
timer=1 while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do sleep 1; timer=$((timer+1)) [ $timer -ge 300 ] && exit 0 done nmcli connection up "work-vpn"
ഉണരുമ്പോൾ Wi-Fi ഇപ്പോഴും വീണ്ടും ബന്ധിപ്പിക്കുമ്പോൾ ടണൽ ആവശ്യപ്പെട്ടേക്കാം, ഇത് ഏതൊരു നിശ്ചിത സ്ലീപ്പിനെയും ഊഹമാക്കുന്നു. എത്തിച്ചേരാവുന്ന വിലാസത്തിനായി കാത്തിരിക്കുക, തുടർന്ന് പ്രൊഫൈൽ ഉയർത്തുക, കാത്തിരിപ്പ് പരിമിതപ്പെടുത്തുക, ഹുക്കിന് ഉണരൽ പാത അനിശ്ചിതമായി തുറന്നിടാൻ കഴിയാതിരിക്കാൻ. സംഖ്യാ സൂചികയേക്കാൾ പ്രൊഫൈൽ നാമം തിരഞ്ഞെടുക്കുക, ശരിയായ പ്രൊഫൈൽ നെറ്റ്വർക്കനുസരിച്ച് മാറുന്നുവെങ്കിൽ, ആരോഗ്യകരമായ ടണൽ അതിന്റെ തിരഞ്ഞെടുപ്പ് മുൻകൂട്ടി ഒരു ഫയലിൽ രേഖപ്പെടുത്തട്ടെ.
പുനരാരംഭ കൊടുങ്കാറ്റുകളിൽ നിന്നും സംരക്ഷിക്കപ്പെടുക, ശ്രമങ്ങൾ എണ്ണി നിർത്തി. ഓരോ പരാജയപ്പെട്ട പരിശോധനയ്ക്കും പ്രതികരിക്കുന്ന വോച്ച്ഡോഗ് ഒരു തടസ്സത്തെ ലൂപ്പാക്കി മാറ്റുന്നു.
ഒരിക്കൽ സസ്പെൻഡ് ചെയ്യുക, തുടർന്ന് ഹുക്കിന്റെ സ്വന്തം ഔട്ട്പുട്ടിനായി ജേണൽ വായിക്കുക. ക്രമം തെളിയിക്കുന്ന ഏക പരിശോധന അതാണ്.