Ie en deploja skripto estas kontrolo, ĉu la tunelo estas aktiva antaŭ ol komenciĝas kopio. Tri respondoj disponeblas, kaj ili ne signifas la samon: la servostato, kiun raportas scutil, la itinero, kiun elektis la kerno, kaj ĉu la malproksima flanko vere respondas. Kompari ilin estas la diferenco inter kontrolo, kiu antaŭdiras la kopion, kaj unu, kiu nur ornamas protokolon.

Tri respondoj al la demando, ĉu la VPN funkcias

La servostato estas fakto de la rega ebeno. macOS scias, ke agordo estas konektita, ĉar ĝia klienta procezo tion diris. La itinero estas fakto de la data ebeno: la kerno sendos ĉi tiun celon tra tiu interfaco. Atingebleco estas fakto de unu fino al la alia, kaj ĝi povas malsukcesi pro kialoj, kiujn neniu el la aliaj du vidas.

SignalAnswersBlind spot
scutil --nc statusIs the service connected?Third-party clients, wrong routes
route -n getWhere would this go?The peer may be down
A request to the far sideDoes it work now?Slow, and it changes state

Utila kontrolo kombinas la unuajn du kaj uzas la trian kiel konfirmon, ke la aliaj du ne mensogis. Ĉiu sola estas konjekto kun tempstampo.

Legu la identigilon, ne la montratan nomon

scutil --nc list
scutil --nc status "Office"

La listo presas unu linion por servo, kaj ĉiu linio portas staton en parentezoj, sekvatan de la serva identigilo, la tipo kaj la montrata nomo. Skribu la skripton laŭ la identigilo, ĉar la montrata nomo estas tio, kion iu tajpis en la Sistemaj Agordoj, kaj ĝi povas ŝanĝiĝi sen averto. La statokomando presas unu solan vorton, sekvatan de statistiko por kelkaj servotipoj; kongruigu tiun unuan vorton anstataŭ serĉi la nomon en la tuta eligo, kiu ankaŭ aperas aliloke.

Startigi servon povas kaŭzi aŭtorigan peton aŭ esti tute rifuzita, kiam la profilo estas administrata. Tiu rifuzo ne estas difekto en la tunelo; ĝi estas politika deklaro pri tio, kiu rajtas starigi ĝin.

Tria-partia kliento kaŝiĝas de la listo

Malplena listo ne signifas, ke ne ekzistas VPN. Ĉi tie aperas agordoj kreitaj en la propraj ret-agordoj de la sistemo; vendista kliento, administra profilo aŭ tria-partia aplikaĵo povas teni aktivan tunelon, kiun ĉi tiu komando neniam vidas. Ĝia propra ilo estas la aŭtoritato por ĝia propra servo. Demandi scutil pri kliento, kiu neniam registriĝis ĉe ĝi, redonas nenion, kaj nenio ne estas la sama respondo kiel malkonektita.

Kiam la listo estas malplena sed la trafiko evidente estas ĉifrita, serĉu anstataŭe la interfacon: aparato utun aŭ ppp kun adreso en la atendata gamo estas pruvo, ke io starigis tunelon. Tio estas pli malforta signalo ol servostato, do paru ĝin kun itinera kontrolo anstataŭ trakti la interfacon kiel pruvon de identeco. Pluraj klientoj povas krei plurajn tiajn interfacojn, kaj nur unu el ili apartenas al la tunelo, kiun vi celis.

Stato ne estas enkursigado

Konektita servo diras, ke la tunelo ekzistas. Ĝi ne diras, ke via celo uzas ĝin. Legu la adresojn, poste demandu la kernon rekte:

ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20

Kliento de plena tunelo instalas defaŭltan itineron tra la tunelo; kliento de dividita tunelo instalas specifajn privatajn prefiksojn. Ambaŭ raportas Connected, kaj skripto, kiu kontrolas nur la staton, ĝoje iros la malĝustan vojon. Haltigi tunelon ne nepre forigas itinerojn, kiujn instalas alia kliento, kaj tio estas unu maniero, kiel maŝino finas samtempe kun konektita servo kaj malaktuala itinero. Rigardu la celon, kiu gravas al vi, ne la tutan itineran tabelon.

Nomado estas aparta problemo

Aliaj maŝinoj ne povas atingi la Mac per nomo dum ĝia adreso funkcias, kaj tio raportiĝas kiel VPN-difekto. La loka gastigantnomo, la gastigantnomo kaj la DNS-rikordo estas tri malsamaj aferoj. scutil --get LocalHostName montras la Bonjour-nomon; sudo scutil --set HostName mac-office agordas la nomon, kiun la sistemo raportas.

Neniu el la agordoj kreas rikordon en la oficeja zono. Se aliaj gastigantoj devas solvi la nomon per DNS, la posedanto de la zono devas aldoni ĝin, aŭ la skripto uzu anstataŭe la adreson. Agordi stabilan nomon igas la anoncojn konsekvencaj; ĝi ne igas la solvilon respondi.

Notu la servan identigilon kaj la atendatan formon de la itinero kune en la skripto, kaj kontrolu ambaŭ antaŭ la kopio. Tunelo, kiu estas aktiva kaj malĝuste enkursigita, malsukcesas ĝuste kiel tute ne ekzistanta tunelo, kaj la protokola linio, kiu diras Connected, sendos la sekvan personon serĉi en la malĝusta loko.

Rilataj artikoloj