WireGuard boşta kaldıktan sonra başarısız oluyor: önce yönü test edin
Süresi dolmuş bir NAT eşlemesi, uyuyan bir radyo ve eski bir uygulama sessiz bir dönemden sonra aynı görünür. keepalive eklemeden önce gelen ve giden trafiği ayrı ayrı test edin.
Her ayar değişikliğinden önce dört soru gelir: istemci etkinken aynı kaynak çalışıyor mu, boşta kalma dönemi ne kadar sürdü, cihaz uyudu mu yoksa ağ mı değiştirdi, ve hata yalnızca karşı tarafın başlattığı trafikte mi görünüyor. Yanıtlar süresi dolmuş NAT eşlemesini uyuyan radyodan ve eski uygulamadan ayırır. Ayrıca keepalive'ın konuyla ilgili olup olmadığını da söylerler. Yönle başlayın, çünkü tek bir komuta mal olur ve olası nedenlerin yarısını eler.
Hangi yön başarısız oluyor?
İstemciden gelen yeni giden istek ve sessiz bir dönemden sonra ona doğru gelen trafik, durum tutan donanımı farklı şekilde sınar. Giden paketler çıkarken eşlemeyi yeniden kurar, gelen paketler ise eski eşlemenin hayatta kalmış olmasına ihtiyaç duyar. Bu asimetri testin tamamıdır. İstemci dışarı çıkabiliyor ama içeri hiçbir şey girmiyorsa eşlemenin süresi dolmuştur, ikisi de çalışmıyorsa tünel veya istemcinin ağ erişimi kaybolmuştur.
Sessiz dönemin ne kadar sürdüğünü ve cihazın uyuyup uyumadığını veya bu arada başka bir ağa geçip geçmediğini not edin. Bu iki gerçek, herhangi bir ayardan önce tanıyı değiştirir.
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
Bu üç komutu sessiz dönemden önce ve sonra çalıştırın, çünkü her biri sorunun farklı bir bölümünü yanıtlar. Hareket etmemiş bir handshake zaman damgası tarafların konuşmayı bıraktığını, değişmiş bir uç nokta ise eşlemenin ölmek yerine kaydığını söyler. Aktarım sayaçları bir şeyin gelip gelmediğini gösterir ve bu, eski bir eşleme ile sessiz bir uygulama arasındaki farktır. Sayıları iki noktada da yazın, çünkü karşılaştırma kanıttır.
Uyku, radyo ve uygulama durumu
Bir telefonda veya dizüstü bilgisayarda uyuyan cihaz ağ erişimini tamamen kaybetmiş olabilir; keepalive kapalı bir radyoyu geri getiremez veya karşılanmamış bir captive portal'ı tamamlayamaz. Mobil platformlar arka plan çalışmasını politika gereği askıya alır, bu yüzden periyodik trafiğin sürüp sürmeyeceği platforma ve uygulamanın onunla neyi müzakere ettiğine bağlıdır. Önbelleğe alınmış bağlantı üçüncü durumdur ve en yanıltıcı olanıdır, çünkü tünelin geri dönmesi uygulamanın ona yeniden bağlanmasıyla aynı şey değildir.
Boşta kalma döneminden sonra açık kalan sekmeye güvenmek yerine uygulamayı yeniden açın. Eski oturumun başarısız olduğu yerde yeni istek başarılı oluyorsa tünel hiçbir zaman sorun değildi.
keepalive aslında ne yapar
PersistentKeepalive bir eşe düzenli olarak kimliği doğrulanmış boş bir paket gönderir; bu, eşler arasındaki NAT eşlemesini canlı tutmaya ve karşı tarafın uç noktasını güncel tutmaya yeter, WireGuard'ın hızlı başlangıcı bunu açıklar. Uyuyan bir radyoyu, kaybolmuş bir yolu veya hiç yeniden denemeyen bir uygulamayı onarmaz. Aralığı desteklenen istemci ayarlarından seçin ve yalnızca durum ekranı sustu diye her yerde agresif bir değer etkinleştirmeyin.
Boşta kalma dönemlerinin çoğu arıza değildir. Beş dakikalık sessizlikten sonra yeniden bağlanan tünel doğru davranır ve sorun yalnızca karşı taraftan bir şeyin gelmesi gereken durumdur.
Eskiden başarısız olan aralığı bekleyin
Desteklenen tek bir değişiklik yapın, sonra o kaynağı yeniden test etmeden önce aynı boşta kalma döneminin geçmesine izin verin. Beklemek testin bir parçasıdır, formalite değildir. Yeniden bağlanmanın ardından gelen anlık başarı uzun boşta kalma belirtisi hakkında hiçbir şey söylemez, çünkü yeniden bağlanma durumu sıfırlayan olayın ta kendisidir. Sorun etkin kullanım sırasında da görülüyorsa daha fazla periyodik trafik eklemek yerine handshake ve veri yolu kontrollerine dönün.
Her testte bir değişiklik tutun ve kullanılan boşta kalma süresini yazın. Bu olmadan sonraki her karşılaştırma kayar ve kimse hangi değişikliğin önemli olduğunu söyleyemez. Dört gerçeği birlikte kaydedin: yön, süre, uyku durumu ve uygulamanın davranışı.