WireGuard mobil veridə işləyir, amma eyni wifi-də işləmir
LAN içindən marşrutlaşdırıcının ictimai ünvanına gedən sorğu mobil veridən gələn sorğudan fərqli yol tutur. Xaricdə sınayın, sonra yerli yol seçin.
Tunnel mobil veridə qalxır və sonra evdə qoşulur vəziyyətində qalır; eyni profil, eyni peer açarı və arada heç bir konfiqurasiya dəyişikliyi yoxdur. Fərq yoldadır: LAN içindən marşrutlaşdırıcının ictimai ünvanına gedən sorğu internetdən gələn sorğu ilə eyni səyahət deyil. Ev şlüzlərinin çoxu ya geri dönüş yolunu tətbiq etmir, ya da yalnız müəyyən protokollar üçün tətbiq edir. Bu, açarda heç nə dəyişmədiyi halda simptomu xarab açar kimi göstərir. Açara, port yönləndirməsinə və ya müştəri profilinə toxunmazdan əvvəl hansı yolun uğursuz olduğunu müəyyənləşdirin.
Bir ünvan, iki fərqli yol
Xaricdən paket marşrutlaşdırıcının ictimai ünvanına çatır və port yönləndirmə qaydası onu daxili hostdakı WireGuard dinləyicisinə verir. İçəridən müştəri eyni ictimai ünvanı çağırır, buna görə paket müştəridən çıxır, marşrutlaşdırıcıya çatır və LAN-a doğru geri çevrilməlidir. İki yol məhz o geri çevirmədə ayrılır, çünki marşrutlaşdırıcı eyni interfeysdən həm çıxan, həm də yenidən daxil olan axını çevirməlidir. Bir çox tətbiq onu çevirmək əvəzinə atır və müştəri sonra heç vaxt göndərilməmiş əl sıxışmasını gözləyir.
Bu davranış adətən NAT loopback və ya hairpinning adlanır və WireGuard-a deyil, marşrutlaşdırıcıya aiddir; RFC 4787 şlüzün dəstəkləyə biləcəyi və ya bilmədiyi çevirmə hallarını göstərir. WireGuard özü yol haqqında fikir bildirmir, çünki yalnız interfeysinə çatan paketləri görür. Marşrutlaşdırıcı axını atdıqda demon heç vaxt heç nə almır, müştəri əl sıxışması vaxt aşımı bildirir və server jurnalı boş qalır. Boş jurnal buna görə paketin harada dayandığına dair işarədir, serverin söndüyünün sübutu deyil. Yenidən quraşdırmanın heç nəyi dəyişməməsinin səbəbi də budur.
Əksi də vacibdir: LAN ünvanından əl sıxışması cəhdini göstərən server jurnalı paketin gəldiyini və yolun qaydasında olduğunu sübut edir, bu da araşdırmanı açarlara və icazə verilən ünvanlara keçirir. Jurnalı sübut etdiyi şey üçün oxuyun, görməyi ümid etdiyiniz şey üçün deyil.
Nəyisə dəyişməzdən əvvəl onu yenidən yaradın
Eyni cihaz və eyni profillə icazəli xarici şəbəkədən sınaqdan keçirin, sonra heç nəyi redaktə etmədən sınağı LAN daxilində təkrarlayın. Xaricdə tamamlanmış əl sıxışması və içəridə cihazdan heç vaxt çıxmayan müştəri vəziyyəti təxmin etmək əvəzinə yenidən yaradır. Hər iki cəhd eyni profildən istifadə etməlidir, əks halda müqayisə heç nə sübut etmir.
Sonra son nöqtə adının bu cihaz üçün nəyə həll olunduğuna baxın. Aşağıdakı üç əmr müştərinin həqiqətən hansı ünvanı çağırdığını da göstərir:
wg show wg0 endpoints
dig +short vpn.example.net A
resolvectl query vpn.example.netBirinci əmr interfeysin hazırda istifadə etdiyi son nöqtəni bildirir, digər ikisi adın bu maşında nəyə həll olunduğunu göstərir. Serverlə eyni şəbəkədə oturarkən ictimai ünvan çağıran müştəri hairpin yolundan istifadə edir. LAN ünvanını çağıran müştəri bunu etmir və oradakı nasazlıq başqa araşdırmaya aiddir. Bu fərq növbəti bölmənin ümumiyyətlə tətbiq olunub-olunmadığını həll edir.
Yaxın serverə çatmağın dəstəklənən yolları
Ən təmiz düzən üfüq bölgüsü cavabıdır: ictimai ad internet üçün ictimai ünvana, içəridəki müştərilər üçün isə serverin LAN ünvanına həll olunur. Profil bir son nöqtə adı saxlayır və həlledici yolu seçir. Bu, daxili DNS cavabına nəzarət tələb edir; ev marşrutlaşdırıcısı bunu adətən təklif edir və təşkilat bunu qəsdən qura bilər. Bu nəzarət olmadan qalan seçimlər marşrutlaşdırıcı funksiyası və ya ikinci profildir.
Marşrutlaşdırıcı funksiyası əks olunmadır: şlüz axını içəridən xaricə çevirir və yenidən içəri göndərir. İşlədiyi yerdə müştəri dəyişikliyi tələb etmir, işləmədiyi yerdə heç bir müştəri ayarı onu xilas etmir. Onu marşrutlaşdırıcının funksiya siyahısını oxumaq əvəzinə daxili cəhd zamanı server jurnalını izləyərək sınayın.
Profili şəxsi ünvana redaktə etmək diaqnozdur, dizayn deyil. Serverin LAN-da cavab verdiyini sübut edir və noutbuk evdən çıxan anda həmin profili pozur.
| Approach | What it depends on | Where it fails |
|---|---|---|
| Split-horizon name | Control of the internal DNS answer | Clients that resolve through a server outside the zone |
| Router reflection | Gateway support for hairpin translation | Routers that drop the flow silently |
| Private address in the profile | Nothing beyond the LAN | Every network except the one at home |
Profili evdən uzaqda istifadə edilə bilən saxlayın
Hansı yolu seçsəniz də, kimlik yoxlamasını rahat buraxın. Son nöqtə ünvanı peer kimliyi deyil və ünvan dəyişikliyi təsadüfən cavab verən əlaqəsiz ictimai açarın qəbulunu heç vaxt əsaslandırmır. WireGuard açarla kimlik təsdiqləyir, buna görə səhv host gözlənilməz bir şeyə giriş vermək əvəzinə əl sıxışmasında uğursuz olur.
İctimai ünvan yer dəyişirsə, adı faydalı saxlayan dinamik DNS-dir və müştərinin yenilənmə davranışı dəyişikliyin nə qədər tez çatacağını həll edir. Bunu ünvan dəyişikliyindən sonra xaricdən sınayın, çünki LAN halı bunu təsdiqləyə bilməz. Köhnə cavabı qeydin ömründən artıq keşləyən həllediciyə diqqət edin. Hələ də əvvəlki ünvana işarə edən ad tam olaraq çökmüş server kimi görünür.
Profilin hansı addan istifadə etdiyini və sərhədin hər tərəfində nəyə həll olunduğunu yazın. Heç kimin qeyd etmədiyi marşrutlaşdırıcı funksiyasından asılı olan profil növbəti proqram təminatı yeniləməsini gözləyən dəstək zəngidir. Qeyd həm də növbəti şəxsə daxili nasazlığın tanınmış hairpin halı, yoxsa yeni bir şey olduğunu deyən şeydir.