Anzisha VPN ya Mac iliyohifadhiwa kutoka terminal kwa scutil --nc
Tumia scutil --nc kuanzisha, kukagua na kusimamisha huduma ya VPN ya macOS iliyohifadhiwa, weka vitambulisho nje ya argv, na uthibitishe kuwa trafiki inatumia handaki kweli.
Una huduma ya VPN iliyohifadhiwa katika Mipangilio ya Mfumo, na unataka terminal iianzishe. Kwenye macOS njia inayotumika ni scutil --nc, lakini kwa huduma zinazomilikiwa na msimamizi wa miunganisho ya mtandao wa mfumo wenyewe pekee. Upau wa menyu si API: wateja wa wahusika wengine kwa kawaida wana uendeshaji wao wenyewe, na wasifu unaosukumwa na huduma ya usimamizi unaweza kukataa kuanza kwa ndani. Hii ni orodha ya ukaguzi ninayofuata: pata huduma kamili, soma hali yake, ianzishe, subiri hali ibadilike, kisha uthibitishe kuwa trafiki inatumia handaki kweli. Simama kwenye hatua ya kwanza isiyolingana, kwa sababu kila amri inayofuata inadhani ile iliyotangulia ilifanikiwa.
Pata huduma kabla ya kujaribu kuianzisha
Anza na orodha ya vitu, si jina la wasifu unaokumbuka:
scutil --nc help
scutil --nc list
Kila mstari huunganisha hali na kitambulisho cha huduma, aina na jina la kuonyesha. Kitambulisho ni thamani ambayo scripts huandikwa dhidi yake, kwa sababu majina ya kuonyesha hurudiwa na yanaweza kuhaririwa. Mwongozo wa scutil wa Apple unaeleza hali ya muunganisho wa mtandao, wakati --nc help iliyosakinishwa ni orodha halali ya amri ndogo kwenye Mac hiyo; usidhani bendera kutoka mwongozo wa zamani bado ipo katika toleo lako la macOS.
Orodha tupu ni matokeo, si hitilafu. Huduma iliyoundwa na mteja wa muuzaji au wasifu wa usimamizi inaweza kuwa hai wakati haionekani hapa, au ionekane na aina ambayo kidhibiti asilia hakiwezi kuendesha. Katika hali hiyo, tumia zana ya muuzaji au nyaraka za wasifu. Kuunda wasifu asilia sambamba ili tu kuwa na kitu cha kuanzisha ni biashara mbaya.
Soma hali ya sasa na uthibitishe kiteuzi
Uliza huduma kuhusu hali kabla ya kuianzisha, ili ujue kile kuanza kwa mafanikio kunapaswa kubadilisha:
scutil --nc status "Office VPN"
Iwapo huduma mbili zinashiriki jina moja la kuonyesha, jina hilo halina uhakika. Pitisha kitambulisho badala yake; amri inakubali zote mbili, lakini kitambulisho pekee kinahakikisha kuchagua huduma moja. Kabla ya kuichanganua katika script, hakikisha neno la hali ni moja unayolifahamu — kwa kawaida Connected, Disconnected, Connecting au Disconnecting. Pia angalia ikiwa wasifu unasimamiwa, kwa sababu usanidi uliofungwa unaweza kukubali amri na bado kuipuuza au kuomba uthibitisho.
Wito huu wa hali ni wa bei nafuu, kwa hivyo tumia kama mlinzi katika uendeshaji otomatiki: anza tu wakati hali ni Disconnected, na usichukue Connecting kama kushindwa. Ikiwa huduma tayari ni Connected, ruka kuanza badala ya kuvuruga handaki linalofanya kazi.
Anzisha muunganisho na subiri hali itulie
Ombi la kuanza ni la kisawazishi. Amri inarudi ombi linapokubaliwa, si wakati uthibitishaji unakamilika au routes zinasakinishwa. Iendeshe, kisha kagua hali kwa kusubiri kwa kikomo na toka ikiwa huduma inarudi 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
Hali ya Connecting isiyotatuliwa kamwe kwa kawaida huelekeza kwa vitambulisho, MFA au seva, si scutil. Amri haiwezi kutoa kuingia kwa mwingiliano, kwa hivyo wasifu unaotarajia tokeni au ufunguo wa maunzi utabaki Connecting na hatimaye utarudi nyuma. Soma neno la hali kabla ya kuongeza majaribio mapya; mzunguko dhidi ya ombi la uthibitishaji hauwezi kufanikiwa.
Usichukue hali ya kutoka ya shell kama utayari. Ishara muhimu ni mfuatano wa hali, ukifuatiwa na ushahidi kuwa handaki linabeba trafiki. Amri ya kuanza inayorudi kimya bado inaweza kukuacha na muunganisho usiothibitishwa kamwe.
Thibitisha kuwa handaki linabeba trafiki, si tu kusema Connected
Connected inaeleza muunganisho, si uamuzi wa njia. Huduma asilia za PPP na IKEv2 huunda kiolesura cha ppp au utun na kusakinisha routes, wakati handaki lililogawanywa kwa makusudi huacha njia ya msingi bila kuguswa. Kagua violesura na familia zote mbili za anwani:
ifconfig -l
netstat -rn -f inet
netstat -rn -f inet6
scutil --dns
Pata kiolesura kilichoundwa na huduma badala ya kukisia namba, kisha uliza jedwali la njia ni kiolesura kipi kinachotumiwa na lengo fulani: route -n get 10.0.0.10, ukiweka mwenyeji wa ndani mahali pake. Ikiwa inaripoti kiolesura cha kimwili, handaki liko juu lakini halibebi mtiririko huo. Kagua routes za handaki lililogawanywa, mpangilio wa vitatuzi na sheria yoyote ya ngome ya ndani inayoruhusu kiolesura cha handaki lakini si mchakato.
Utatuzi wa majina ni kigezo kisichofaa cha kawaida. Majina ya ndani yanaweza kutatuwa kupitia kitatuzi kisicho sahihi wakati handaki liko mahali pema kabisa, jambo ambalo linaonekana kama hitilafu ya VPN na sivyo. scutil --dns inaonyesha mpangilio ambao macOS itatumia; baada ya mabadiliko ya kitatuzi, futa akiba kwa dscacheutil -flushcache na sudo killall -HUP mDNSResponder.
Weka vitambulisho na mapendeleo nje ya mstari wa amri
Kamwe usiweke nenosiri, ufunguo ulioshirikiwa mapema au tokeni katika hoja. Hoja zinaonekana katika orodha za michakato na zinaingia kwenye historia ya shell, na nakala ya msaada iliyonakiliwa inaweza kuzivujisha. Utunzaji wa vitambulisho wa wasifu wenyewe — iwe kipengee cha Keychain, ombi la mfumo au mtiririko wa uthibitishaji wa mteja — ndio mahali pa siri.
Kuendesha amri kwa sudo hakufanyi kuingia kwa mwingiliano kuwa bila uangalizi. Hubadilisha mtumiaji anayefaa, si upatikanaji wa ombi la GUI, tokeni ya maunzi au keychain ya kuingia. LaunchAgent inaweza kuanzisha huduma baada ya mtumiaji kuingia na keychain kufunguliwa; LaunchDaemon kwa kawaida haiwezi kufikia sehemu hizo za kikao cha mtumiaji. Ikiwa shirika linasimamia huduma, kanuni zake za mzunguko wa maisha zinashinda script yoyote ya ndani.
Simamisha huduma na uthibitishe kuwa ilibaki imesimama
Simamisha kwa kiteuzi kilekile ulichotumia kuanzisha, kisha soma hali tena badala ya kudhani handaki limekwenda:
scutil --nc stop "Office VPN"
scutil --nc status "Office VPN"
Kusimamisha kunakorudi Disconnected bado kunaacha jambo moja la kuangalia: ikiwa wasifu umewekwa kuunganisha kwa ombi, jambo ambalo linaweza kuirejesha bila script yako. Ikiwa mteja mwingine anamiliki routes kwenye Mac hiyo hiyo, routes hizo zinaweza kustahimili kusimamisha asilia. Kagua njia tena kabla ya kuhitimisha kuwa mashine iko nje ya VPN.
Kwa kifuniko unachokimbiza kwa mkono, weka mpangilio thabiti: orodha, hali, kuanza, ukaguzi, jaribio la njia, kusimamisha, uthibitisho. Usichanganue jina la kirafiki kutoka matokeo ya muundo huru wakati kitambulisho kinapatikana, na usichukue kutoka kwa amri ya kuanza kama utayari. Msimamizi wa miunganisho huripoti hali; ushahidi wako ni hali pamoja na njia inayoelekeza kwenye handaki.