macOS'ta terminalden VPN durumu: scutil, rotalar veya ping
Hizmet durumu, çekirdek rotası ve gerçek bir istek üç farklı soruyu yanıtlar. Betiği hizmet tanımlayıcısına göre yazın ve rotayı da denetleyin.
Bir dağıtım betiğinin bir yerinde, kopyalama başlamadan önce tünelin açık olup olmadığı denetlenir. Üç yanıt vardır ve aynı anlama gelmezler: scutil aracının bildirdiği hizmet durumu, çekirdeğin seçtiği rota ve karşı tarafın gerçekten yanıt verip vermediği. Bunları karşılaştırmak, kopyalamayı öngören bir denetim ile yalnızca günlüğü süsleyen bir denetim arasındaki farktır.
VPN açık mı sorusuna üç yanıt
Hizmet durumu bir denetim düzlemi olgusudur. macOS bir yapılandırmanın bağlı olduğunu bilir çünkü istemci süreci öyle söyledi. Rota bir veri düzlemi olgusudur: çekirdek bu hedefi o arayüzden gönderecek. Erişilebilirlik uçtan uca bir olgudur ve diğer ikisinin göremediği nedenlerle başarısız olabilir.
| 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 |
Yararlı bir denetim ilk ikisini birleştirir ve üçüncüyü, diğer ikisinin yalan söylemediğinin doğrulaması olarak kullanır. Herhangi biri tek başına zaman damgalı bir tahmindir.
Tanımlayıcıyı okuyun, görünen adı değil
scutil --nc list
scutil --nc status "Office"
Liste her hizmet için bir satır yazdırır ve her satırda parantez içinde durum, ardından hizmet tanımlayıcısı, tür ve görünen ad bulunur. Betiği tanımlayıcıya göre yazın, çünkü görünen ad birinin Sistem Ayarları'na yazdığı şeydir ve habersiz değişebilir. Durum komutu tek bir sözcük yazdırır, bazı hizmet türlerinde ardından istatistik gelir; adı tüm çıktıda aramak yerine o ilk sözcüğü karşılaştırın, çünkü ad başka yerlerde de görünür.
Bir hizmeti başlatmak yetkilendirme istemi çıkarabilir ya da profil yönetiliyorsa doğrudan reddedilebilir. Bu ret tünelin arızası değildir; onu kimin açabileceğine dair bir politika beyanıdır.
Üçüncü taraf istemcisi listeden gizlenir
Boş liste VPN yok demek değildir. Sistemin kendi ağ ayarlarında oluşturulan yapılandırmalar burada görünür; bir satıcı istemcisi, bir yönetim profili veya üçüncü taraf uygulama, bu komutun asla görmediği etkin bir tünel tutabilir. Kendi hizmeti için yetkili olan kendi aracıdır. Kendisine hiç kaydolmamış bir istemciyi scutil öğesine sormak hiçbir şey döndürmez ve hiçbir şey, bağlantı kesildi ile aynı yanıt değildir.
Liste boş ama trafik açıkça şifreliyse arayüzü arayın: beklenen aralıkta adresi olan bir utun veya ppp aygıtı, bir şeyin tünel kurduğunun kanıtıdır. Bu, hizmet durumundan daha zayıf bir sinyaldir; bu yüzden arayüzü kimlik kanıtı saymak yerine rota denetimiyle eşleştirin. Birkaç istemci birkaç böyle arayüz oluşturabilir ve bunlardan yalnızca biri kastettiğiniz tünele aittir.
Durum yönlendirme değildir
Bağlı bir hizmet tünelin var olduğunu söyler. Hedefinizin onu kullandığını söylemez. Adresleri okuyun, sonra çekirdeğe doğrudan sorun:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
Tam tünel istemcisi tünel üzerinden varsayılan bir rota kurar; bölünmüş tünel istemcisi belirli özel önekler kurar. İkisi de Connected bildirir ve yalnızca durumu denetleyen bir betik seve seve yanlış yoldan gider. Bir tüneli durdurmak, başka bir istemcinin kurduğu rotaları zorunlu olarak kaldırmaz ve bu, bir makinenin aynı anda hem bağlı bir hizmete hem de eski bir rotaya sahip olmasının bir yoludur. Önemsediğiniz hedefe bakın, rota tablosunun tamamına değil.
Adlandırma ayrı bir sorundur
Diğer makineler adres çalışırken Mac'e adla ulaşamaz ve bu bir VPN arızası olarak bildirilir. Yerel ana bilgisayar adı, ana bilgisayar adı ve DNS kaydı üç farklı şeydir. scutil --get LocalHostName Bonjour adını gösterir; sudo scutil --set HostName mac-office sistemin bildirdiği adı ayarlar.
Bu ayarların hiçbiri ofis bölgesinde kayıt oluşturmaz. Diğer ana bilgisayarlar adı DNS üzerinden çözmek zorundaysa, bölge sahibinin bunu eklemesi gerekir, yoksa betik adresi kullanmalıdır. Kararlı bir ad ayarlamak duyuruları tutarlı kılar; çözümleyicinin yanıt vermesini sağlamaz.
Betikte hizmet tanımlayıcısını ve beklenen rota biçimini birlikte kaydedin ve kopyalamadan önce ikisini de denetleyin. Açık ama yanlış yöne yönlendirilmiş bir tünel tam olarak tünel yokmuş gibi başarısız olur ve Connected diyen günlük satırı bir sonraki kişiyi yanlış yere bakmaya gönderir.