Bloga dön
·9 dk okuma·productdevbook

macOS'ta VPN Bant Genişliği Nasıl İzlenir

macOS'ta VPN tünelinizin tam olarak ne taşıdığını nasıl görürsünüz: uygulama başına trafik, şifreleme yükü ve sızıntı tespiti.

  • VPN
  • macOS
  • Bandwidth
  • Privacy

VPN'inize bağlanıyorsunuz, doğru ülkeyi bildiren bir web kontrolü yapıyorsunuz ve artık her şeyin tünellendiğini varsayıyorsunuz. İki gün sonra uygulamalarınızdan birinin — örneğin eski bir sohbet istemcisi veya bir senkronizasyon ajanı — tüm zaman boyunca tüneli tamamen göz ardı ederek doğrudan genel internete konuştuğunu fark ediyorsunuz. VPN açıktı. Sızıntı, tünel devreye girmeden önce fiziksel arayüze bağlanan ve bir daha bırakmayan bir süreçteydi.

macOS'ta VPN bant genişliğini izlemek kısmen VPN'in işini yaptığını doğrulamak ve kısmen de onu sessizce atlayan uygulamaları yakalamakla ilgilidir. Bu yazı utun arayüzlerinin gerçekte ne olduğunu, yerleşik araçlarla VPN trafiğinin nasıl okunacağını, sızıntıların nasıl tespit edileceğini ve tünelin eklediği ek yükün nasıl ölçüleceğini kapsar. VPN'in kendi panosu size yeterince söylemediği için monitor vpn bandwidth mac arıyorsanız, aşağıdaki araç kiti daha zor soruları yanıtlar.

utun arayüzleri nedir

macOS'ta bir VPN istemcisi bağlandığında, sanal bir arayüz oluşturur — genellikle utun0, utun1, utun2 vb. adlı. ("utun" "user tunnel"in kısaltmasıdır.) VPN süreci işletim sisteminin o arayüze yönlendirdiği paketleri okur, şifreler ve kapsüller, sonra ortaya çıkan sarılmış paketleri fiziksel arayüzünüz üzerinden (genellikle Wi-Fi için en0) yazar.

Şu anda neyin açık olduğunu görmek için Terminal'de şunu çalıştırın:

ifconfig | grep -E "^(en|utun)" -A 3

Şuna benzer bir şey göreceksiniz:

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.1.42 netmask 0xffffff00 broadcast 192.168.1.255
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
        inet 10.8.0.6 --> 10.8.0.1 netmask 0xffffff00

en0 gerçek ağınızdır. utun0 VPN'dir. Bazı VPN istemcileri birden fazla utun arayüzü oluşturur (biri veri düzlemi için, biri kontrol için); bazıları iOS tarzı kişisel hotspot tünelleri ile çakışmaları önlemek için utun9 veya daha yüksek oluşturur.

monitor vpn bandwidth mac trafiğini nettop ile nasıl izlersiniz

nettop macOS'a yerleşiktir ve bir sürecin hangi arayüzü kullandığını görmenin en doğrudan yoludur. İlgili çağrı:

sudo nettop -P -m route

Bu, her sürecin bağlantılarını yola göre gruplanmış olarak gösterir. VPN'inizden konuşan bir süreç, trafiğini utun arayüzü aracılığıyla gösterir; tüneli atlayan bir süreç, en0 (veya ethernet ise en1) aracılığıyla gösterir.

Bir dakika nettop'u izleyin, sonra sorun: hangi uygulamalar utun0 kullanıyor ve hangileri en0 kullanıyor? Her şeyin tünelden geçmesini istiyorsanız ve Slack'i en0'da görüyorsanız, bu bir sızıntıdır.

-P bayrağı süreç başına toplulaştırır; -m route yol sütununu gösterir. Bayt sayıları için -x ekleyin. Periyodik yenileme için -c ve bir gecikme ekleyin, örneğin nettop -P -c 2.

ova VPN trafiği için ne gösterir

ova gibi uygulama başına bir izleyici, nettop'un gördüğü aynı çekirdek istatistiklerini görür ve bunları zaman içinde yuvarlar. ova'da "Slack"a atfedilen bant genişliği, Slack'in gönderdiği her şeyi içerir — en0 veya utun0 üzerinden olması süreç başına toplamı değiştirmez. Yani ova "Slack ne kadar kullandı?" sorusunu temiz bir şekilde yanıtlar. Şu anda uygulama başına sayıyı arayüze göre kırmaz — bu seviyede ayrıntıya ihtiyacınız varsa, nettop araçtır.

Çoğu VPN kullanıcısı için bu iyidir. Genellikle yanıt almak istediğiniz sorular şunlardır:

  • "VPN istemcisinin kendisi beklediğim bant genişliğini kullanıyor mu?"
  • "Son saatte herhangi bir şey arttı mı?"
  • "Şu anda en ağır olan uygulama hangisi?"

ova size bir bakışta üçünü de verir, yardımcı süreç katlama ile, böylece bir Slack yardımcı PID'i ayrı bir satır olarak görünmez. VPN istemcisinin kendisi (Tailscale, Mullvad, ProtonVPN, NordVPN vb.) kendi satırı olarak görünür ve sayısı, fiziksel bağlantınızdan dışarı çıkan sarılmış/şifrelenmiş toplamdır.

Uygulama başına geçmiş
ova kaydırılabilir geçmiş tutar, böylece VPN'i etkinleştirmeden önce ve sonra bant genişliğini karşılaştırabilirsiniz — fark, şifreleme ek yüküdür.

Sızıntıları tespit etme

Bir VPN sızıntısı, bir uygulamanın trafiğinin tüneli atlayıp doğrudan internete gitmesidir. Nedenleri şunlardır:

  • Uygulama VPN gelmeden önce bir yol önbelleğe aldı ve hâlâ onu kullanıyor.
  • VPN belirli hedefleri yönlendirmiyor (LAN, multicast, belirli bir sunucuya DNS).
  • macOS'un "yerel ağı hariç tut" anahtarı söylediğini yapıyor.
  • VPN bölünmüş tünellidir ve belirli bir uygulama atlama listesindedir.
  • IPv6 etkinleştirilmiş ve VPN yalnızca IPv4'ü yönlendiriyor (yaygın bir neden).

Teşhis döngüsü:

  1. VPN bağlıyken nettop -P -m route çalıştırın ve tünellenmesini beklediğiniz en0 trafiği gösteren herhangi bir süreç için izleyin.
  2. Süreç başına bant genişliği için ova ile çapraz kontrol edin. Bir süreç ova'da trafik gösteriyor ancak nettop'ta utun satırları yoksa, sızıyor.
  3. Ağ seviyesinde doğrulayın: bir tarayıcıdan ipleak.net veya dnsleaktest.com'u ziyaret edin. Bildirilen IP, eviniz/ofisiniz değil, VPN çıkışı olmalıdır.
  4. Özellikle DNS için: scutil --dns | grep nameserver çalıştırın — listelenen ad sunucuları ISS'nizinki değil, VPN'inizinki olmalıdır.

Özellikle IPv6 için, en güvenli kurulum ya açıkça IPv6'yı yönlendiren bir VPN'dir ya da bağlıyken IPv6'yı sistem genelinde devre dışı bırakmaktır. Ağ başına devre dışı bırakma: Sistem Ayarları > Ağ > ağınız > Ayrıntılar > TCP/IP > IPv6'yı Yapılandır > Yalnızca link-local.

VPN ek yükünü ölçme

VPN'ler iki şekilde ek yük ekler: verim (gerçek hat hızınızın daha azını alırsınız) ve gecikme (her gidiş-dönüş ekstra bir atlama içinden geçer).

Verim ek yükü

Şifreleme vergisi protokole bağlıdır:

  • WireGuard: hızlı bir bağlantıda tipik olarak yüzde 5 ila 10 ek yük. Apple Silicon'da donanım hızlandırmalı.
  • OpenVPN: yüzde 15 ila 30 ek yük. CPU bağımlı, yüksek hızlarda WireGuard'dan daha yavaş.
  • IKEv2/IPsec: yüzde 10 ila 20 ek yük. macOS yerel destek.
  • Tescilli protokoller (Lightway, WireGuard tabanlı NordLynx vb.): kabaca WireGuard seviyesinde verimlilik.

Ölçmek için: VPN kapalıyken bir hız testi yapın, sonucu not edin. Aynı testi VPN açıkken kapalı test uç noktasıyla aynı metro alanındaki bir sunucuya yapın. Oran ek yüktür. Her iki test sırasında da ova kullanın — hız testi istemcisi için gösterilen uygulama başına trafik uygulama katmanı verimi olmalıdır; VPN testleri sırasında sistem geneli oran şifreleme çerçevelemesi nedeniyle daha yüksektir.

Gecikme ek yükü

VPN kapalıyken ping 8.8.8.8 çalıştırın, kararlı durum RTT'sini not edin. VPN'i bağlayın, tekrar ping 8.8.8.8 çalıştırın. Fark, şifreleme, VPN çıkışına seyahat etme ve geri dönme gidiş-dönüş maliyetidir. Tipik rakamlar:

  • Aynı şehirde VPN çıkışı: +5 ila +15 ms.
  • Başka bir ülkede VPN çıkışı: coğrafyaya bağlı olarak +50 ila +200 ms.
  • Farklı bir kıtada VPN çıkışı: +150 ila +400 ms.

Bu çoğunlukla kaçınılmaz fizik — Tokyo'ya tünel yapıp size gidiş-dönüş maliyeti olmadan elde edemezsiniz.

VPN'in kendi bant genişliği kullanımını belirleme

VPN istemci sürecinin kendisi ova'da kendi satırı olarak görünür — "Mullvad VPN," "Tailscale," "ProtonVPN" vb. Orada gördüğünüz sayı, fiziksel bağlantınızdan dışarı çıkan şifrelenmiş, sarılmış toplamdır. "VPN ne kadar gerçek internet bant genişliği tüketiyor" için doğru sayı budur.

Yararlı bir akıl kontrolü: herhangi bir anda, VPN'in raporladığı bant genişliği, onu kullanan diğer tüm uygulamaların toplamına yaklaşık olarak eşit olmalı, artı şifreleme ek yükü için küçük bir yüzde. Çok farklılarsa, başka bir şey oluyor — bölünmüş tünel, sızıntı veya VPN istemcisi bakım işi yapıyor (anahtar rotasyonu, eş keşfi).

ova'yı eylemde görün

Bir bakışta görülebilir bir menü çubuğu bant genişliği izleyicisi — yerel, imzalanmış, ~3 MB.

Download for macOS

Her zaman açık VPN: tuzaklar

Birkaç VPN istemcisi, tünel düşerse tüm trafiği engelleyen bir "kill switch" veya "her zaman açık" modu sunar. Faydalı, ancak sürprizlerle:

  • Uyandıktan sonraki ilk birkaç saniye, tünel yeniden kurulmadan önce engellenmemiş trafik olabilir. Bazı istemciler bunu açıkça tutar; diğerleri tutmaz.
  • Wi-Fi ağ değişiklikleri (evden kafeye geçme) kısa bir kesintiyi tetikler. Kill switch tutmalı, ancak uygulama değişiklik gösterir.
  • Bazı uygulamaların agresif yeniden bağlanma mantığı vardır — tünel kapalıyken her 100 ms'de yeniden denerler. Bu, tünel geri geldiğinde yeniden bağlanma zamanında bir bant genişliği artışıdır.

VPN açıkken uyandıktan sonra anında ova'yı izleyin. Desen genellikle şudur: VPN istemcisinin kendisi yeniden el sıkışırken küçük bir artış gösterir, sonra 5 ila 30 saniye içinde bireysel uygulamalar kendi soketlerini yeniden bağladıkça artmaya başlar. Uyandırmada 200 MB'lık bir artış görüyorsanız, bu genellikle Slack/Discord/iMessage'ın hepsinin aynı anda yetişmesidir.

Uygulama başına yönlendirme ve bölünmüş tüneller

Bazı VPN istemcileri yalnızca belirli uygulamaları tünel üzerinden yönlendirmeyi destekler. Kullanım durumu, "torrent istemcimi Mullvad üzerinden gönder, ancak video aramaları VPN gecikmesi eklemesin diye Slack'in doğrudan gitmesine izin ver"dir.

nettop ile bölünmüş tünel kurallarını doğrulama:

sudo nettop -P -m route

Bölünmüş tünellenmiş uygulamalar yalnızca en0 trafiği göstermelidir; tünellenenler yalnızca utun göstermelidir. Aynı süreç için her ikisi de görünüyorsa, kurallar temiz bir şekilde uygulanmıyor — genellikle uygulamanın kural değişikliğinden önce gelen uzun ömürlü soketler tutmasından dolayı. Onları temizlemek için uygulamayı yeniden başlatın.

Birden fazla VPN bağlantısını izleme

Güç kullanıcılar bazen iki VPN'i aynı anda çalıştırırlar — örneğin, dahili şirket hizmetlerine erişmek için Tailscale artı genel internet gizliliği için ticari bir VPN (Mullvad, Proton). macOS bunu yönlendirme tabloları aracılığıyla işler: daha spesifik yollar (Tailscale'in 100.64.0.0/10) daha geniş olanları (ticari VPN'in varsayılan yolu) yener.

ifconfig'de birden fazla utun arayüzü göreceksiniz. Yönlendirme tablosunu okumak için netstat -rn | head -30 kullanın — eşleşen ilk yol kazanır. ova hangi tünel olduğunu ayırt etmeden uygulama başına toplam bant genişliği gösterir; bunun için, nettop'un -m route görünümü referanstır.

Sırada ne yapmalı

Uçtan uca monitor vpn bandwidth mac için 10 dakikalık bir denetim:

  1. VPN'i bağlayın.
  2. Menü çubuğunda ova'yı açın, şu anda aktif olan uygulamaları not edin.
  3. Terminal'de sudo nettop -P -m route çalıştırın.
  4. Çapraz kontrol edin: ova'da önemli bant genişliği gösteren her uygulamanın bağlantıları nettop'ta utun0 (veya VPN'inizin kullandığı her hangi bir utun) altında görünmelidir. Bu süreçlerden gelen herhangi bir en0 trafiği bir sızıntı adayıdır.
  5. IP ve DNS'in VPN üzerinden çıktığını doğrulamak için ipleak.net'i ziyaret edin.
  6. Bağlantıyı kesin, bir hız testi yapın, yeniden bağlanın, başka bir tane yapın. Ek yükü hesaplayın.

Bundan, VPN'inizin gerçekten düşündüğünüz şeyi yapıp yapmadığını, ek yükünün gerçekten neye mal olduğunu ve hangi uygulamalara göz kulak olunacağını bilerek çıkacaksınız. Bu, VPN istemcinizin menü çubuğundaki "Bağlı" göstergesinden daha güçlü bir cevaptır.