In bewarre Mac-VPN starte fanút de terminal mei scutil --nc
Brûk scutil --nc om in bewarre macOS-VPN-tsjinst te starten, te besjen en te stopjen, hâld ynloggegevens bûten argv, en bewiisje dat ferkear echt fan de tunnel gebrûk makket.
Jo hawwe in bewarre VPN-tsjinst yn Systeemynstellingen, en jo wolle dat de terminal dy opset. Op macOS is it stipe paad scutil --nc, mar allinnich foar tsjinsten dy’t eigendom binne fan ’e eigen netwurkferbiningbehearder fan it systeem. De menubalke is net de API: tredde-partijklanten hawwe meastentiids har eigen automatisearring, en in profyl dat troch in beheartsjinst stjoerd is kin in lokale start wegerje. Dit is de kontrollist dy’t ik rin: fyn de krekte tsjinst, lês har tastân, start har, wachtsje oant de tastân feroaret, en bewiisje dan dat ferkear echt fan de tunnel gebrûk makket. Stop by de earste stap dy’t net kloppet, want elk letter kommando giet derfan út dat it foarige slagge is.
Fyn de tsjinst foardat jo besykje har te starten
Begjin mei de ynventaris ynstee fan de profylnamme dy’t jo ûnthâlde:
scutil --nc help
scutil --nc list
Elke rigel keppelt in status oan in tsjinstidentifikaasje, in type en in werjefte namme. De identifikaasje is de wearde om tsjin te skriptsjen, want werjefte nammen komme werom en kinne bewurke wurde. Apple’s scutil-hânlieding dokumintearret de netwurkferbiningmodus, wylst de ynstallearre --nc help de gesachhawwende list fan subkommando’s op dy Mac is; nim net oan dat in flagge út in âlder hânlieding noch bestiet yn jo macOS-ferzje.
In lege list is in resultaat, gjin flater. In tsjinst makke troch in ferkeaperklant of in beheartprofyl kin aktyf wêze wylst se hjir ûnsichtber is, of sichtber mei in type dat de nasjonale kontrôler net ride kin. Yn dat gefal, brûk it ark fan ’e ferkeaper of de profyldokumintaasje. In parallel nasjonaal profyl oanmeitsje allinnich om wat te hawwen om te starten is in minne ruil.
Lês de hjoeddeiske tastân en befêstigje de selektor
Freegje de tsjinst om tastân foardat jo har starte, sadat jo witte wat in suksesfolle start feroarje moat:
scutil --nc status "Office VPN"
As twa tsjinsten deselde werjefte namme diele, is de namme dûbelsinnich. Jou ynstee de identifikaasje; it kommando akseptearret beide, mar allinnich de identifikaasje garandearret ien tsjinst te selektearjen. Kontrolearje dat it tastânswurd ien is dat jo kenne — meastentiids Connected, Disconnected, Connecting of Disconnecting — foardat jo it yn in skript parse. Kontrolearje ek oft it profyl beheard wurdt, want in beskoattele konfiguraasje kin it kommando akseptearje en it dochs negearje of om befêstiging freegje.
Dizze tastânoprop is goedkeap, dus brûk it as wachter yn automatisearring: start allinnich as de status Disconnected is, en behannelje Connecting net as in flater. As de tsjinst al Connected is, slach de start oer ynstee fan in wurkjende tunnel te ûnderbrekken.
Start de ferbining en wachtsje oant de tastân stabilisearret
It startfersyk is asynchroan. It kommando komt werom as it fersyk akseptearre is, net as de autentikaasje klear is of rûtes ynstallearre binne. Rin it, freegje dan de tastân mei in beheinde wachttiid en stop as de tsjinst weromfalt nei 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
In status Connecting dy’t nea oplost wiist meastentiids op ynloggegevens, MFA of de tsjinner, net op scutil. It kommando kin gjin ynteraktive oanmelding leverje, dus in profyl dat in token of in hardwarekaai ferwachtet sil yn Connecting bliuwe en úteinlik weromfalle. Lês it tastânswurd foardat jo werpogingen tafoegje; in loop tsjin in autentikaasjefraach kin net slagje.
Behannelje de útgongstatus fan ’e shell net as gereedheid. It nuttige sinjaal is de tastânrigel, folge troch bewiis dat de tunnel ferkear draacht. In startkommando dat stil weromkomt kin jo noch altyd efterlitte mei in ferbining dy’t nea autentisearret.
Bewiisje dat de tunnel ferkear draacht, net allinnich dat er Connected seit
Connected beskriuwt de ferbining, net it rûtbeslút. Nasjonale PPP- en IKEv2-tsjinsten meitsje in ppp- of utun-ynterface en ynstallearje rûtes, wylst in split tunnel de standertrûte bewust mei rêst lit. Besjoch de ynterfaces en beide adresfamyljes:
ifconfig -l
netstat -rn -f inet
netstat -rn -f inet6
scutil --dns
Fyn de ynterface dy’t de tsjinst makke hat ynstee fan in nûmer te rieden, freegje dan de rûtetabel hokker ynterface in spesifike bestimming brûkt: route -n get 10.0.0.10, mei in ynterne host op syn plak. As it de fysike ynterface meldt, is de tunnel oan mar draacht er dy stream net. Kontrolearje split-tunnelrûtes, folchoarder fan ’e oplosser en elke lokale firewallregel dy’t de tunnelinterface tastiet mar net it proses.
Nammeoplossing is de gewoane falske negatyf. Ynterne nammen kinne fia de ferkearde oplosser oplost wurde wylst de tunnel folslein sûn is, wat as in VPN-flater liket en net is. scutil --dns lit de folchoarder sjen dy’t macOS brûke sil; nei in oplosserferoaring, leegje de cache mei dscacheutil -flushcache en sudo killall -HUP mDNSResponder.
Hâld ynloggegevens en privileezjes bûten de kommando rigel
Set nea in wachtwurd, in foarôf dielde kaai of in token yn ’e arguminten. Arguminten binne sichtber yn proseslisten en bedzje yn ’e shellhistoarje, en in kopiearre stipe-transkripsje kin se lekke. De eigen ynloggegevensbehanneling fan it profyl — itsij in Keychain-item, in systeemfraach of de autentikaasjestream fan ’e klant — is it plak foar geheimen.
It kommando mei sudo rinne makket in ynteraktive oanmelding net ûnbewaakt. It feroaret de effektive brûker, net de beskikberens fan in GUI-fraach, in hardwaretoken of de oanmeld-keychain. In LaunchAgent kin in tsjinst starte nei’t de brûker oanmeld is en de keychain ûntskoattele is; in LaunchDaemon kin dy dielen fan ’e brûkerssesje meastentiids net berikke. As in organisaasje de tsjinst beheart, winne har libbenssyklusregels fan elk lokaal skript.
Stop de tsjinst en kontrolearje dat se stoppe bleau
Stop mei deselde selektor dy’t jo brûkten om te starten, lês dan de tastân wer ynstee fan oan te nimmen dat de tunnel fuort is:
scutil --nc stop "Office VPN"
scutil --nc status "Office VPN"
In stop dy’t weromkomt nei Disconnected lit noch ien ding kontrolearje: oft it profyl ynsteld is om op oanfraach te ferbinen, wat it sûnder jo skript weromhelje kin. As in oare klant rûtes op deselde Mac hat, kinne dy rûtes in nasjonale stop oerlibje. Kontrolearje de rûte opnij foardat jo konkludearje dat de masine bûten de VPN is.
Foar in wrapper dy’t jo mei de hân rinne, hâld de folchoarder fêst: list, status, start, opfreegje, rûtetest, stop, kontrôle. Parse de freonlike namme net út frije-foarm-útfier as de identifikaasje beskikber is, en behannelje de útgong fan it startkommando net as gereedheid. De ferbiningbehearder rapportearret tastân; jo bewiis is de tastân plus in rûte dy’t nei de tunnel wiist.