એક સ્લીપ હૂક જ એકલો 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 હજી ફરી જોડાઈ રહ્યું હોય, જે કોઈપણ નિશ્ચિત સ્લીપને અનુમાન બનાવે છે. પહોંચી શકાય તેવા સરનામાની રાહ જુઓ, પછી પ્રોફાઇલ ઉપર લાવો, અને રાહને મર્યાદિત કરો જેથી હૂક પુનઃપ્રારંભનો માર્ગ અનિશ્ચિત કાળ સુધી ખુલ્લો ન રાખી શકે. આંકડાકીય ઇન્ડેક્સને બદલે પ્રોફાઇલનું નામ પસંદ કરો, અને જો યોગ્ય પ્રોફાઇલ નેટવર્ક પ્રમાણે બદલાય, તો સ્વસ્થ ટનલ તેની પસંદગી અગાઉથી ફાઇલમાં નોંધે.
રીસ્ટાર્ટ તોફાનોથી પણ બચો, પ્રયાસો ગણીને અને અટકીને. દરેક નિષ્ફળ પ્રોબ પર પ્રતિક્રિયા આપતો વોચડોગ એક વિક્ષેપને લૂપમાં ફેરવે છે.
એક વાર સસ્પેન્ડ કરો, પછી હૂકના પોતાના આઉટપુટ માટે જર્નલ વાંચો. તે જ એકમાત્ર પરીક્ષણ છે જે ક્રમ સાબિત કરે છે.