scutil --nc மூலம் டெர்மினலில் இருந்து சேமித்த Mac VPN ஐத் தொடங்குங்கள்
சேமித்த macOS VPN சேவையைத் தொடங்க, ஆய்வு செய்ய, நிறுத்த scutil --nc ஐப் பயன்படுத்துங்கள், சான்றுகளை argv வெளியே வைத்து, டிராஃபிக் உண்மையில் சுரங்கத்தைப் பயன்படுத்துவதை நிரூபியுங்கள்.
System Settings இல் சேமித்த VPN சேவை உங்களிடம் உள்ளது, அதை டெர்மினல் தொடங்க வேண்டும் என்று விரும்புகிறீர்கள். macOS இல் ஆதரிக்கப்படும் பாதை scutil --nc, ஆனால் சிஸ்டத்தின் சொந்த நெட்வொர்க் இணைப்பு மேலாளருக்குச் சொந்தமான சேவைகளுக்கு மட்டுமே. மெனு பார் API அல்ல: மூன்றாம் தரப்பு கிளையண்டுகளுக்கு பொதுவாக அவற்றின் சொந்த தானியங்கி உள்ளது, மேலும் நிர்வாகச் சேவை அனுப்பும் சுயவிவரம் உள்ளூர் தொடக்கத்தை மறுக்கலாம். இது நான் பின்பற்றும் சரிபார்ப்புப் பட்டியல்: சரியான சேவையைக் கண்டறியுங்கள், அதன் நிலையைப் படியுங்கள், அதைத் தொடங்குங்கள், நிலை மாறும் வரை காத்திருங்கள், பின்னர் டிராஃபிக் உண்மையில் சுரங்கத்தைப் பயன்படுத்துவதை நிரூபியுங்கள். பொருந்தாத முதல் படியில் நிறுத்துங்கள், ஏனெனில் ஒவ்வொரு அடுத்த கட்டளையும் முந்தையது வெற்றி பெற்றதாகக் கருதுகிறது.
தொடங்க முயற்சிக்கும் முன் சேவையைக் கண்டறியுங்கள்
நினைவில் உள்ள சுயவிவரப் பெயருக்குப் பதிலாக பட்டியலில் இருந்து தொடங்குங்கள்:
scutil --nc help
scutil --nc list
ஒவ்வொரு வரியும் ஒரு நிலையை சேவை அடையாளங்காட்டி, வகை மற்றும் காட்சிப் பெயருடன் இணைக்கிறது. அடையாளங்காட்டி என்பது ஸ்கிரிப்ட் எழுதும் மதிப்பு, ஏனெனில் காட்சிப் பெயர்கள் மீளும் மற்றும் திருத்தக்கூடியவை. Apple இன் scutil கையேடு நெட்வொர்க் இணைப்பு முறையை ஆவணப்படுத்துகிறது, அதே நேரத்தில் நிறுவப்பட்ட --nc help அந்த Mac இல் துணைக் கட்டளைகளின் அதிகாரப்பூர்வ பட்டியல்; பழைய வழிகாட்டியின் கொடி இன்னும் உங்கள் macOS பதிப்பில் உள்ளது என்று கருத வேண்டாம்.
காலியான பட்டியல் ஒரு முடிவு, பிழை அல்ல. விற்பனையாளர் கிளையண்ட் அல்லது நிர்வாகச் சுயவிவரம் உருவாக்கிய சேவை இங்கே தெரியாமல் செயலில் இருக்கலாம், அல்லது சொந்தக் கட்டுப்படுத்தி இயக்க முடியாத வகையுடன் தெரியலாம். அந்த நிலையில், விற்பனையாளரின் கருவி அல்லது சுயவிவர ஆவணங்களைப் பயன்படுத்துங்கள். தொடங்குவதற்கு ஏதாவது இருக்க வேண்டும் என்பதற்காக மட்டும் இணையான சொந்த சுயவிவரத்தை உருவாக்குவது மோசமான பேரம்.
தற்போதைய நிலையைப் படித்து தேர்வியை உறுதிப்படுத்துங்கள்
தொடங்குவதற்கு முன் சேவையின் நிலையைக் கேளுங்கள், வெற்றிகரமான தொடக்கம் எதை மாற்ற வேண்டும் என்பதை அறிய:
scutil --nc status "Office VPN"
இரண்டு சேவைகள் ஒரே காட்சிப் பெயரைப் பகிர்ந்தால், பெயர் தெளிவற்றது. அதற்குப் பதிலாக அடையாளங்காட்டியைக் கொடுங்கள்; கட்டளை இரண்டையும் ஏற்கிறது, ஆனால் ஒரு சேவையைத் தேர்ந்தெடுப்பதற்கு அடையாளங்காட்டி மட்டுமே உத்தரவாதம். ஸ்கிரிப்டில் பகுப்பாய்வு செய்வதற்கு முன், நிலைச் சொல் உங்களுக்குத் தெரிந்த ஒன்றா எனச் சரிபாருங்கள் — பொதுவாக Connected, Disconnected, Connecting அல்லது Disconnecting. சுயவிவரம் நிர்வகிக்கப்படுகிறதா என்பதையும் சரிபாருங்கள், ஏனெனில் பூட்டப்பட்ட உள்ளமைவு கட்டளையை ஏற்றுக்கொண்டு அதைப் புறக்கணிக்கலாம் அல்லது உறுதிப்படுத்தலைக் கேட்கலாம்.
இந்த நிலை அழைப்பு மலிவானது, எனவே தானியங்கியில் அதைக் காவலராகப் பயன்படுத்துங்கள்: நிலை Disconnected ஆக இருக்கும்போது மட்டும் தொடங்குங்கள், Connecting ஐ தோல்வியாகக் கருத வேண்டாம். சேவை ஏற்கனவே Connected என்றால், இயங்கும் சுரங்கத்தை இடையூறு செய்வதற்குப் பதிலாக தொடக்கத்தைத் தவிர்க்கவும்.
இணைப்பைத் தொடங்கி நிலை நிலைபெறும் வரை காத்திருங்கள்
தொடக்கக் கோரிக்கை ஒத்திசைவற்றது. கோரிக்கை ஏற்கப்பட்டபோது கட்டளை திரும்பும், அங்கீகாரம் முடிந்தபோது அல்லது வழிகள் நிறுவப்பட்டபோது அல்ல. அதை இயக்கி, பின்னர் வரம்புக்குட்பட்ட காத்திருப்புடன் நிலையைக் கேளுங்கள், சேவை Disconnected க்குத் திரும்பினால் வெளியேறுங்கள்:
scutil --nc start "Office VPN"
n=0
while [ "$n" -lt 30 ]; do
state=$(scutil --nc status "Office VPN" | head -n 1)
[ "$state" = "Connected" ] && break
[ "$state" = "Disconnected" ] && { echo "start failed"; exit 1; }
sleep 2
n=$((n + 1))
done
ஒருபோதும் தீர்க்கப்படாத Connecting நிலை பொதுவாக சான்றுகள், MFA அல்லது சேவையகத்தைச் சுட்டுகிறது, scutil ஐ அல்ல. கட்டளை ஊடாடும் உள்நுழைவை வழங்க முடியாது, எனவே டோக்கன் அல்லது வன்பொருள் விசையை எதிர்பார்க்கும் சுயவிவரம் Connecting இல் தங்கி இறுதியில் பின்வாங்கும். மீண்டும் முயற்சிகளைச் சேர்ப்பதற்கு முன் நிலைச் சொல்லைப் படியுங்கள்; அங்கீகாரக் கோரிக்கைக்கு எதிரான சுழற்சி வெற்றி பெற முடியாது.
ஷெல்லின் வெளியேற்ற நிலையைத் தயார்நிலையாகக் கருத வேண்டாம். பயனுள்ள சமிக்ஞை நிலைச் சரம், அதைத் தொடர்ந்து சுரங்கம் டிராஃபிக்கை எடுத்துச் செல்கிறது என்பதற்கான ஆதாரம். அமைதியாகத் திரும்பும் தொடக்கக் கட்டளை இன்னும் ஒருபோதும் அங்கீகரிக்கப்படாத இணைப்புடன் உங்களை விடலாம்.
சுரங்கம் டிராஃபிக்கை எடுத்துச் செல்கிறது என்பதை நிரூபியுங்கள், Connected என்று சொல்வது மட்டுமல்ல
Connected இணைப்பை விவரிக்கிறது, வழித்தட முடிவை அல்ல. சொந்த PPP மற்றும் IKEv2 சேவைகள் ppp அல்லது utun இடைமுகத்தை உருவாக்கி வழிகளை நிறுவுகின்றன, பிளவுபட்ட சுரங்கம் இயல்புநிலை வழியை வேண்டுமென்றே தொடாமல் விடுகிறது. இடைமுகங்கள் மற்றும் இரு முகவரிக் குடும்பங்களை ஆய்வு செய்யுங்கள்:
ifconfig -l
netstat -rn -f inet
netstat -rn -f inet6
scutil --dns
எண்ணை ஊகிப்பதற்குப் பதிலாக சேவை உருவாக்கிய இடைமுகத்தைக் கண்டறியுங்கள், பின்னர் ஒரு குறிப்பிட்ட இலக்கு எந்த இடைமுகத்தைப் பயன்படுத்துகிறது என்று வழித்தட அட்டவணையிடம் கேளுங்கள்: route -n get 10.0.0.10, அதற்குப் பதிலாக உள் புரவலனை இடுங்கள். அது இயற்பியல் இடைமுகத்தைப் புகாரளித்தால், சுரங்கம் இயங்குகிறது ஆனால் அந்த ஓட்டத்தை எடுத்துச் செல்லவில்லை. பிளவுபட்ட சுரங்க வழிகள், தீர்வி வரிசை மற்றும் சுரங்க இடைமுகத்திற்கு அனுமதி அளித்து செயல்முறைக்கு அளிக்காத எந்த உள்ளூர் ஃபயர்வால் விதியையும் சரிபாருங்கள்.
பெயர் தீர்வு பொதுவான தவறான எதிர்மறை. சுரங்கம் முழுவதும் ஆரோக்கியமாக இருக்கும்போது உள் பெயர்கள் தவறான தீர்வி வழியாகத் தீர்க்கப்படலாம், இது VPN குறைபாடாகத் தோன்றும், ஆனால் அல்ல. scutil --dns macOS பயன்படுத்தும் வரிசையைக் காட்டுகிறது; தீர்வி மாற்றத்திற்குப் பிறகு dscacheutil -flushcache மற்றும் sudo killall -HUP mDNSResponder மூலம் தேக்ககத்தை காலி செய்யுங்கள்.
சான்றுகளையும் சிறப்புரிமைகளையும் கட்டளை வரியிலிருந்து வெளியே வைத்திருங்கள்
கடவுச்சொல், முன்கூட்டியே பகிரப்பட்ட விசை அல்லது டோக்கனை ஒருபோதும் வாதங்களில் வைக்க வேண்டாம். வாதங்கள் செயல்முறைப் பட்டியல்களில் தெரியும், ஷெல் வரலாற்றில் சேரும், நகலெடுக்கப்பட்ட ஆதரவு படியெடுப்பு அவற்றைக் கசியவைக்கலாம். சுயவிவரத்தின் சொந்தச் சான்று கையாளுதல் — Keychain உருப்படி, கணினி கேட்பு அல்லது கிளையண்டின் அங்கீகார ஓட்டம் — ரகசியங்களுக்கான இடம்.
sudo உடன் கட்டளையை இயக்குவது ஊடாடும் உள்நுழைவைக் கண்காணிப்பற்றதாக்காது. அது பயனுள்ள பயனரை மாற்றுகிறது, GUI கேட்பு, வன்பொருள் டோக்கன் அல்லது உள்நுழைவு keychain கிடைக்கும் தன்மையை அல்ல. பயனர் உள்நுழைந்து keychain திறந்த பிறகு LaunchAgent ஒரு சேவையைத் தொடங்கலாம்; LaunchDaemon பொதுவாக பயனர் அமர்வின் அந்தப் பகுதிகளை அடைய முடியாது. ஒரு அமைப்பு சேவையை நிர்வகித்தால், அதன் வாழ்க்கைச் சுழற்சி விதிகள் எந்த உள்ளூர் ஸ்கிரிப்டையும் மிஞ்சும்.
சேவையை நிறுத்தி அது நிறுத்தப்பட்டே இருந்ததா எனச் சரிபாருங்கள்
தொடங்கப் பயன்படுத்திய அதே தேர்வியுடன் நிறுத்துங்கள், பின்னர் சுரங்கம் போய்விட்டது என்று கருதுவதற்குப் பதிலாக நிலையை மீண்டும் படியுங்கள்:
scutil --nc stop "Office VPN"
scutil --nc status "Office VPN"
Disconnected க்குத் திரும்பும் நிறுத்தம் இன்னும் ஒரு விஷயத்தைச் சரிபார்க்க விடுகிறது: சுயவிவரம் கோரிக்கையின் பேரில் இணைவதற்கு அமைக்கப்பட்டுள்ளதா, இது உங்கள் ஸ்கிரிப்ட் இல்லாமல் அதைத் திரும்பக் கொண்டுவரலாம். அதே Mac இல் மற்றொரு கிளையண்ட் வழிகளைக் கொண்டிருந்தால், அந்த வழிகள் சொந்த நிறுத்தத்தைத் தாண்டி நீடிக்கலாம். இயந்திரம் VPN க்கு வெளியே உள்ளது என்று முடிவு செய்வதற்கு முன் வழி சரிபார்ப்பை மீண்டும் இயக்குங்கள்.
கையால் இயக்கும் மடக்கிக்கு வரிசையை நிலையாக வைத்திருங்கள்: பட்டியல், நிலை, தொடக்கம், விசாரணை, வழிப் பரிசோதனை, நிறுத்தம், சரிபார்ப்பு. அடையாளங்காட்டி கிடைக்கும்போது திறந்த வடிவ வெளியீட்டிலிருந்து நட்புப் பெயரைப் பகுப்பாய்வு செய்ய வேண்டாம், தொடக்கக் கட்டளையின் வெளியேற்றத்தைத் தயார்நிலையாகக் கருத வேண்டாம். இணைப்பு மேலாளர் நிலையைப் புகாரளிக்கிறார்; உங்கள் ஆதாரம் நிலையும் சுரங்கத்தை நோக்கிச் சுட்டும் வழியும் ஆகும்.