VPN statuss macOS no termināļa: scutil, maršruti vai ping
Pakalpojuma statuss, kodola maršruts un īsts pieprasījums atbild uz trim dažādiem jautājumiem. Rakstiet skriptu pēc pakalpojuma identifikatora un pārbaudiet arī maršrutu.
Kaut kur izvietošanas skriptā pirms kopēšanas sākuma tiek pārbaudīts, vai tunelis ir aktīvs. Pieejamas trīs atbildes, un tās nenozīmē vienu un to pašu: pakalpojuma statuss, ko ziņo scutil, kodola izvēlētais maršruts un tas, vai tālā puse patiešām atbild. To salīdzināšana ir atšķirība starp pārbaudi, kas paredz kopēšanu, un to, kas tikai rotā žurnālu.
Trīs atbildes uz jautājumu, vai VPN ir aktīvs
Pakalpojuma statuss ir vadības plaknes fakts. macOS zina, ka konfigurācija ir savienota, jo tā teica tās klienta process. Maršruts ir datu plaknes fakts: kodols šo galamērķi sūtīs pa šo saskarni. Sasniedzamība ir fakts no gala līdz galam, un tā var neizdoties iemeslu dēļ, ko neredz neviens no pārējiem diviem.
| 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 |
Noderīga pārbaude apvieno pirmās divas un trešo izmanto kā apstiprinājumu, ka pirmās divas nav melojušas. Jebkura viena pati par sevi ir minējums ar laika zīmi.
Lasiet identifikatoru, nevis attēloto nosaukumu
scutil --nc list
scutil --nc status "Office"
Saraksts izdrukā vienu rindu uz katru pakalpojumu, un katrā rindā ir statuss iekavās, pēc tam pakalpojuma identifikators, tips un attēlotais nosaukums. Rakstiet skriptu pēc identifikatora, jo attēlotais nosaukums ir tas, ko kāds ierakstīja sistēmas iestatījumos, un tas var mainīties bez brīdinājuma. Statusa komanda izdrukā vienu vārdu, un dažiem pakalpojumu tipiem pēc tā seko statistika; salīdziniet šo pirmo vārdu, nevis meklējiet nosaukumu visā izvadē, kas parādās arī citur.
Pakalpojuma palaišana var izraisīt autorizācijas pieprasījumu vai tikt vienkārši atteikta, ja profils tiek pārvaldīts. Šis atteikums nav tuneļa kļūda; tas ir politikas paziņojums par to, kam to drīkst pacelt.
Trešās puses klients slēpjas no saraksta
Tukšs saraksts nenozīmē, ka VPN nav. Konfigurācijas, kas izveidotas pašas sistēmas tīkla iestatījumos, parādās šeit; piegādātāja klients, pārvaldības profils vai trešās puses lietotne var uzturēt aktīvu tuneli, ko šī komanda nekad neredz. Savam pakalpojumam autoritāte ir pašam rīkam. Jautājot scutil par klientu, kas tajā nekad nav reģistrējies, tiek atgriezts nekas, un nekas nav tā pati atbilde kā atvienots.
Kad saraksts ir tukšs, bet trafiks ir acīmredzami šifrēts, meklējiet saskarni: ierīce utun vai ppp ar adresi gaidītajā diapazonā ir pierādījums, ka kaut kas izveidoja tuneli. Tas ir vājāks signāls nekā pakalpojuma statuss, tāpēc pārojiet to ar maršruta pārbaudi, nevis uzskatiet saskarni par identitātes pierādījumu. Vairāki klienti var izveidot vairākas šādas saskarnes, un tikai viena no tām pieder tunelim, ko domājāt.
Statuss nav maršrutēšana
Savienots pakalpojums saka, ka tunelis pastāv. Tas nesaka, ka jūsu galamērķis to izmanto. Izlasiet adreses, tad pajautājiet kodolam tieši:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
Pilna tuneļa klients instalē noklusēto maršrutu caur tuneli; sadalītā tuneļa klients instalē konkrētus privātus prefiksus. Abi ziņo Connected, un skripts, kas pārbauda tikai statusu, viegli dosies nepareizajā ceļā. Tuneļa apturēšana ne vienmēr noņem maršrutus, ko instalējis cits klients, un tas ir viens no veidiem, kā mašīnai vienlaikus ir savienots pakalpojums un novecojis maršruts. Skatieties uz galamērķi, kas jums svarīgs, nevis uz visu maršrutu tabulu.
Nosaukumi ir atsevišķa problēma
Citas mašīnas nevar sasniegt Mac pēc nosaukuma, kamēr tā adrese darbojas, un tas tiek ziņots kā VPN kļūda. Vietējais resursdatora nosaukums, resursdatora nosaukums un DNS ieraksts ir trīs dažādas lietas. scutil --get LocalHostName parāda Bonjour nosaukumu; sudo scutil --set HostName mac-office iestata nosaukumu, ko ziņo sistēma.
Neviens no šiem iestatījumiem neizveido ierakstu biroja zonā. Ja citiem resursdatoriem nosaukums jāatrisina ar DNS, zonas īpašniekam tas jāpievieno, vai skriptam jāizmanto adrese. Stabila nosaukuma iestatīšana padara paziņojumus konsekventus; tā nepanāk, ka atrisinātājs atbild.
Ierakstiet skriptā pakalpojuma identifikatoru un gaidīto maršruta formu kopā un pirms kopēšanas pārbaudiet abus. Tunelis, kas ir aktīvs, bet maršrutēts nepareizajā virzienā, neizdodas tieši tāpat kā nekāds tunelis, un žurnāla rinda ar Connected nosūtīs nākamo cilvēku meklēt nepareizajā vietā.