Klon kimlik doğrular, nesne sayısı görünür ve ardından dakikalarca hiçbir şey hareket etmez. Windows VPN'i bağlı olarak bildirir, ana bilgisayar adı çözülür ve aynı makinedeki bir tarayıcı aynı depo sayfasını zorlanmadan getirir. Bu bileşim kimlik bilgilerine değil paket boyutuna işaret eder ve boyut sorusu iki yerde sorulmalıdır çünkü WSL2'nin kendi MTU'su olan kendi Linux arayüzü vardır. Bir sayı yolun Windows tarafına, diğeri dağıtıma aittir ve yalnızca VPN bağdaştırıcısını okumak yolun yarısını incelenmemiş bırakır.

Üç sinyal boyut sorununu diğerlerinden ayırır

İlk sinyal biçimdir: bağlantı kurulumu ve küçük bir alışveriş başarılı olur, ardından büyük aktarım ilerlemeyi durdurur. İkincisi simetridir: aynı depo ve aynı taşıma başarısız olurken aynı yoldaki başka bir ana bilgisayar çalışır ya da hata günün saatine değil yükün boyutuna göre değişir. Üçüncüsü sessizliktir: kimlik doğrulama hatası yok, proxy reddi yok, ad çözümleme hatası yok, yalnızca hiç bitmeyen bir aktarım.

Bu üçü birlikte paket boyutu hipotezini haklı çıkarır. DNS hatası, süresi geçmiş belirteç, reddedilmiş SSH anahtarı ve CONNECT'i reddeden proxy her biri kendi hatasını üretir ve hiçbiri başarıdan sonra takılma gibi görünmez. Test sırasında aynı depoyu, taşımayı ve zaman aralığını korumak karşılaştırmayı dürüst kılan şeydir.

Karar vermeden önce iki arayüzü karşılaştırın

Windows görünümünü ve Linux görünümünü aynı oturumda toplayın ve hangi arayüzün onu taşıdığını tahmin etmek yerine deponun adresine bağlı kalın. Aşağıdaki komut önce hedefi çözer, böylece yol araması klonun gerçekte iletişim kurduğu sunucuyu tanımlar; bu, tarayıcının gösterdiği addan farklı olabilir. İki yarıyı birbirine yakın çalıştırın, çünkü VPN denemeler arasında arayüz ölçümlerini değiştirebilir.

netsh interface ipv4 show subinterfaces
wsl -d Ubuntu -- bash -lc 'dest=$(getent ahostsv4 github.com | awk \'NR==1{print $1}\'); ip -br link show; ip route get "$dest"'

Linux yarısını çıktıyı bir Windows kabuğuna yapıştırmak yerine dağıtımın içinde çalıştırın, çünkü arayüz adları ve yol seçimi yalnızca orada anlam kazanır. Bir Windows kabuğundan yapıştırılan çıktı yanlış sayıları büyük bir güvenle bildirir. Herhangi bir şeyi değiştirmeden önce her iki taraftan aygıtı, seçilen yolu ve MTU'yu not edin.

Sayının daha küçük olması gerekip gerekmediğine karar verin

Arayüz MTU'sunun yolun taşıyabileceğinden büyük olması otomatik olarak kusur değildir, çünkü yol MTU keşfi tam bunun içindir. Hata kipi keşif bastırıldığında ortaya çıkar: ICMP iletileri yolun bir yerinde süzülür, gönderen sınırı asla öğrenmez ve büyük paketler kaybolurken küçükler geçer. Bu yolun bir özelliğidir, Git'in değil. Bu aynı zamanda küçük bir dosyanın büyük bir dosyanın hiç bitmediği bir bağlantıda başarılı olabilmesinin nedenidir.

Kanıtlar bunu destekliyorsa, Linux arayüzünde geçici bir değişiklik en ucuz testtir. Kullanılabilir yol boyutunun altında bir değer seçin, öncekini kaydedin ve karşılaştırmanın anlamlı olması için diğer her şeyi sabit tutun. Aktarım daha küçük değerde tamamlanırsa bir tanınız vardır, tesadüf değil.

ip -br link show dev eth0
sudo ip link set dev eth0 mtu 1380
ip -br link show dev eth0

Ayarın nerede yaşaması gerektiğine karar verin

Testten üç seçenek çıkar ve genellikle yalnızca biri uygundur. Daha küçük değer aktarımı düzeltirse ve değer bu ağ için gerçekten gerekliyse, ayarın bir yaşam döngüsü sahibine ihtiyacı vardır: dağıtımda bir başlangıç kancası, platform tarafından yönetilen bir ağ yapılandırması veya belgelenmiş bir prosedür. Değer hiçbir şeyi düzeltmiyorsa geri alın ve taşıma, proxy ve kimlik doğrulama sorularına dönün.

Bir başlangıç kancasının var olup olmaması kullanılan Windows ve WSL sürümlerine ve yapılandırılmış ağ kipine bağlıdır. Windows ağını yansıtmak VPN'in dağıtımla nasıl etkileştiğini MTU ayarından daha önemli biçimlerde değiştirebilir, bu yüzden onun için bir geçici çözüm tasarlamadan önce kipi belirleyin. Bir işletmeye veya bir VPN profiline uyan değer bir sonraki için varsayılan değildir.

Kaçınılması gereken şey baştan çıkarıcı yerleştirmedir: her etkileşimli kabuğun başlangıç dosyasında ayrıcalıklı bir ağ komutu ya da bir betiğin tek satır çalıştırabilmesi için tüm ip ikili dosyasına parolasız sudo. İkisi de bir tanıyı kalıcı maruziyete dönüştürür ve özgün sorunu sonradan görmeyi zorlaştırır.

Temiz bir başlangıçtan sonra doğrulayın, sonra geri alın

Yalnızca dağıtım yeniden başlayana kadar dayanan bir değişiklik düzeltme değildir. Dağıtımı yeniden başlatın, VPN'i yeniden bağlayın ve ping veya küçük bir HTTP isteği gibi bir yerine koyma yerine özgün Git işlemini yineleyin. Ardından arayüzün yeni oturumda amaçlanan değeri taşıdığını doğrulayın.

ip -br link show dev eth0
ip route get "$(getent ahostsv4 github.com | awk 'NR==1{print $1}')"

Kaydedilen özgün değeri değişikliğin yanında tutun ki deney temiz biçimde geri alınabilsin ve hangi adres ailesinin test edildiğini not edin, çünkü bir IPv4 sonucu aynı ana bilgisayardaki IPv6 bağlantısı hakkında hiçbir şey söylemez. WSL ağ belgeleri bir düzeltmenin nasıl görünmesi gerektiğini belirleyen kipleri açıklar; MTU sayısının kendisi yerel bir ölçümdür, öneri değildir.

İlgili makaleler