macOS માં ટર્મિનલથી VPN સ્થિતિ: scutil, રૂટ્સ કે પિંગ
સેવાની સ્થિતિ, કર્નલ રૂટ અને એક વાસ્તવિક વિનંતી ત્રણ જુદા પ્રશ્નોના જવાબ આપે છે. સેવા ઓળખકર્તા પ્રમાણે તમારી સ્ક્રિપ્ટ લખો અને રૂટ પણ તપાસો.
ક્યાંક ડિપ્લોય સ્ક્રિપ્ટમાં કોપી શરૂ થાય તે પહેલાં ટનલ ચાલુ છે કે નહીં તેની ચકાસણી હોય છે. ત્રણ જવાબ ઉપલબ્ધ છે, અને તે એક જ વસ્તુનો અર્થ આપતા નથી: scutil જે સેવા સ્થિતિ જણાવે છે, કર્નલે પસંદ કરેલો રૂટ, અને સામેનો છેડો ખરેખર જવાબ આપે છે કે નહીં. તેમની સરખામણી એ કોપીની આગાહી કરતી ચકાસણી અને ફક્ત લોગને શણગારતી ચકાસણી વચ્ચેનો ફરક છે.
VPN ચાલુ છે કે નહીં એ પ્રશ્નના ત્રણ જવાબ
સેવા સ્થિતિ કંટ્રોલ-પ્લેનની હકીકત છે. macOS જાણે છે કે કન્ફિગરેશન જોડાયેલું છે કારણ કે તેની ક્લાયન્ટ પ્રક્રિયાએ એમ કહ્યું. રૂટ ડેટા-પ્લેનની હકીકત છે: કર્નલ આ ગંતવ્યને તે ઇન્ટરફેસ દ્વારા મોકલશે. પહોંચનીયતા એ અંતથી-અંત સુધીની હકીકત છે, અને તે એવા કારણોસર નિષ્ફળ જઈ શકે છે જે બીજા બેમાંથી કોઈ જોતું નથી.
| Signal | Answers | Blind spot |
|---|---|---|
scutil --nc status | Is the service connected? | Third-party clients, wrong routes |
route -n get | Where would this go? | The peer may be down |
| A request to the far side | Does it work now? | Slow, and it changes state |
ઉપયોગી ચકાસણી પ્રથમ બેને જોડે છે અને ત્રીજાને એ સાબિતી તરીકે વાપરે છે કે બીજા બેએ ખોટું નથી કહ્યું. કોઈપણ એકલું હોય તો તે સમય-છાપ સાથેની અટકળ છે.
ઓળખકર્તા વાંચો, પ્રદર્શિત નામ નહીં
scutil --nc list
scutil --nc status "Office"
સૂચિ દરેક સેવા માટે એક લીટી છાપે છે, અને દરેક લીટીમાં કૌંસમાં સ્થિતિ હોય છે, તે પછી સેવા ઓળખકર્તા, પ્રકાર અને પ્રદર્શિત નામ. ઓળખકર્તા પ્રમાણે સ્ક્રિપ્ટ લખો, કારણ કે પ્રદર્શિત નામ એ છે જે કોઈએ સિસ્ટમ સેટિંગ્સમાં લખ્યું હતું અને તે ચેતવણી વિના બદલાઈ શકે છે. સ્થિતિ આદેશ એક શબ્દ છાપે છે, અને કેટલાક સેવા પ્રકારો માટે તે પછી આંકડા; આખા આઉટપુટમાં નામ શોધવાને બદલે એ પહેલા શબ્દને મેળવો, કારણ કે નામ અન્યત્ર પણ આવે છે.
સેવા શરૂ કરવાથી અધિકૃતિની વિનંતી આવી શકે અથવા પ્રોફાઇલ સંચાલિત હોય ત્યારે સીધી નામંજૂર થઈ શકે. એ નામંજૂરી ટનલની ખામી નથી; તે એ નીતિ-નિવેદન છે કે તેને કોણ ઉપાડી શકે.
તૃતીય-પક્ષ ક્લાયન્ટ સૂચિમાંથી છુપાય છે
ખાલી સૂચિનો અર્થ એ નથી કે VPN નથી. સિસ્ટમની પોતાની નેટવર્ક સેટિંગ્સમાં બનાવેલી કન્ફિગરેશન અહીં દેખાય છે; વેન્ડર ક્લાયન્ટ, મેનેજમેન્ટ પ્રોફાઇલ અથવા તૃતીય-પક્ષ એપ એક સક્રિય ટનલ રાખી શકે છે જે આ આદેશ કદી જોતો નથી. તેનું પોતાનું સાધન તેની પોતાની સેવા માટે સત્તા છે. જે ક્લાયન્ટએ કદી તેની સાથે નોંધણી કરી નથી તેને scutil પૂછવાથી કંઈ પણ પાછું આવતું નથી, અને કંઈ ન આવવું એ ડિસ્કનેક્ટેડ જેવો જ જવાબ નથી.
જ્યારે સૂચિ ખાલી હોય પણ ટ્રાફિક સ્પષ્ટ રીતે એન્ક્રિપ્ટ થયેલો હોય, ત્યારે તેના બદલે ઇન્ટરફેસ શોધો: અપેક્ષિત શ્રેણીમાં સરનામું ધરાવતું utun અથવા ppp ઉપકરણ એ પુરાવો છે કે કંઈકે ટનલ સ્થાપી છે. આ સેવા સ્થિતિ કરતાં નબળો સંકેત છે, તેથી ઇન્ટરફેસને ઓળખનો પુરાવો ગણવાને બદલે તેને રૂટ-ચકાસણી સાથે જોડો. ઘણા ક્લાયન્ટ ઘણા આવા ઇન્ટરફેસ બનાવી શકે છે, અને તેમાંથી ફક્ત એક જ તમે ધારેલી ટનલનું છે.
સ્થિતિ એ રૂટિંગ નથી
જોડાયેલી સેવા કહે છે કે ટનલ અસ્તિત્વમાં છે. તે એ નથી કહેતી કે તમારું ગંતવ્ય તેનો ઉપયોગ કરે છે. સરનામાં વાંચો, પછી કર્નલને સીધું પૂછો:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
ફુલ-ટનલ ક્લાયન્ટ ટનલ દ્વારા ડિફોલ્ટ રૂટ સ્થાપિત કરે છે; સ્પ્લિટ-ટનલ ક્લાયન્ટ ચોક્કસ ખાનગી પ્રીફિક્સ સ્થાપિત કરે છે. બંને Connected જણાવે છે, અને ફક્ત સ્થિતિ તપાસતી સ્ક્રિપ્ટ ખુશીથી ખોટા રસ્તે દોડશે. ટનલ બંધ કરવાથી બીજા ક્લાયન્ટે સ્થાપિત કરેલા રૂટ્સ જરૂરી રીતે દૂર થતા નથી, અને એ જ એક રીત છે જેમાં મશીન એકસાથે જોડાયેલી સેવા અને જૂનો રૂટ ધરાવે છે. સમગ્ર રૂટ કોષ્ટકને નહીં, તમારા માટે મહત્વના ગંતવ્યને જુઓ.
નામકરણ અલગ સમસ્યા છે
બીજા મશીન નામથી Mac સુધી પહોંચી શકતા નથી જ્યારે તેનું સરનામું કામ કરે છે, અને તેને VPN ખામી તરીકે જણાવવામાં આવે છે. સ્થાનિક હોસ્ટનામ, હોસ્ટનામ અને DNS રેકોર્ડ ત્રણ જુદી વસ્તુઓ છે. scutil --get LocalHostName Bonjour નામ બતાવે છે; sudo scutil --set HostName mac-office સિસ્ટમ જે નામ જણાવે છે તે સેટ કરે છે.
બંનેમાંથી કોઈ સેટિંગ ઓફિસ ઝોનમાં રેકોર્ડ બનાવતું નથી. જો બીજા હોસ્ટને DNS દ્વારા નામ ઉકેલવું પડે, તો ઝોનનાં માલિકે તે ઉમેરવું પડે, અથવા સ્ક્રિપ્ટે તેના બદલે સરનામું વાપરવું જોઈએ. સ્થિર નામ સેટ કરવાથી જાહેરાતો સુસંગત બને છે; તે રિઝોલ્વરને જવાબ આપવા મજબૂર કરતું નથી.
સેવા ઓળખકર્તા અને અપેક્ષિત રૂટ આકાર સાથે મળીને સ્ક્રિપ્ટમાં નોંધો, અને કોપી પહેલાં બંને તપાસો. ચાલુ પણ ખોટા રસ્તે રૂટ થયેલી ટનલ ટનલ ન હોવા જેવી જ નિષ્ફળ જાય છે, અને Connected કહેતી લોગ લીટી આગલી વ્યક્તિને ખોટી જગ્યાએ શોધવા મોકલશે.