WSL2 da Git VPN orqali tiqilib qoladi: interfeys MTU si mi yoki yo'l?
Git autentifikatsiyadan o'tib, keyin WSL2 ichida osilib qoladimi? Linux interfeysini Windows VPN adapteri bilan solishtiring, bitta kichikroq qiymatni sinab ko'ring va uning umrini rejalashtiring.
Klon autentifikatsiyadan o'tadi, obyektlar soni ko'rinadi, so'ngra bir necha daqiqa hech narsa qimirlamaydi. Windows VPN ulangan deb xabar beradi, xost nomi hal qilinadi va shu mashinadagi brauzer o'sha ombor sahifasini qiyinchiliksiz oladi. Bu birikma hisob ma'lumotlariga emas, paket hajmiga ishora qiladi va hajm savolini ikki joyda berish kerak, chunki WSL2 ning o'z MTU siga ega o'z Linux interfeysi bor. Bitta raqam yo'lning Windows tomoniga, ikkinchisi distributivga tegishli va faqat VPN adapterini o'qish yo'lning yarmini tekshirilmagan qoldiradi.
Uch belgi hajm muammosini boshqalardan ajratadi
Birinchi belgi shakldir: ulanish o'rnatilishi va kichik almashinuv muvaffaqiyatli bo'ladi, keyin katta uzatish oldinga siljishni to'xtatadi. Ikkinchisi simmetriyadir: o'sha ombor va o'sha transport muvaffaqiyatsiz bo'ladi, holbuki o'sha yo'ldagi boshqa xost ishlaydi, yoki nosozlik kunning vaqtiga emas, yuk hajmiga qarab o'zgaradi. Uchinchisi sukunatdir: autentifikatsiya xatosi yo'q, proksi rad etishi yo'q, nom hal qilish nosozligi yo'q, faqat hech qachon tugamaydigan uzatish.
Bu uchtasi birgalikda paket hajmi haqidagi gipotezani oqlaydi. DNS nosozligi, muddati o'tgan token, rad etilgan SSH kaliti va CONNECT ni rad etuvchi proksi har biri o'z xatosini beradi va hech biri muvaffaqiyatdan keyingi to'xtashga o'xshamaydi. Sinov paytida o'sha ombor, transport va vaqt oynasini saqlash taqqoslashni halol qiladigan narsadir.
Qaror qabul qilishdan oldin ikkala interfeysni solishtiring
Bir sessiyada Windows ko'rinishi va Linux ko'rinishini to'plang va qaysi interfeys uni olib yurishini taxmin qilish o'rniga ombor manzilini ushlab turing. Quyidagi buyruq avval manzilni hal qiladi, shunda yo'l qidiruvi klon haqiqatda bog'lanadigan serverni tasvirlaydi, u brauzer ko'rsatgan nomdan farq qilishi mumkin. Ikkala yarmni bir-biriga yaqin vaqtda ishga tushiring, chunki VPN urinishlar orasida interfeys metrikalarini o'zgartirishi mumkin.
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 yarmini Windows qobig'iga chiqishni yopishtirish o'rniga distributiv ichida ishga tushiring, chunki interfeys nomlari va yo'l tanlovi faqat u yerda mazmunga ega. Windows qobig'idan yopishtirilgan natija noto'g'ri raqamlarni katta ishonch bilan xabar qiladi. Biror narsani o'zgartirishdan oldin har tomondan qurilmani, tanlangan yo'lni va MTU ni yozib oling.
Raqam kichikroq bo'lishi kerakmi, qaror qiling
Interfeys MTU si yo'l ko'tara oladiganidan katta bo'lishi avtomatik nuqson emas, chunki yo'l MTU sini aniqlash aynan shu uchun mavjud. Nosozlik rejimi aniqlash bostirilganda paydo bo'ladi: ICMP xabarlari yo'lda qayerdadir filtrlanadi, jo'natuvchi chegarani hech qachon bilmaydi va katta paketlar yo'qoladi, kichiklari esa o'tadi. Bu yo'lning xususiyati, Git ning emas. Bu ham kichik fayl katta fayl hech qachon tugamaydigan ulanishda muvaffaqiyat qozonishining sababidir.
Agar dalillar buni qo'llab-quvvatlasa, Linux interfeysidagi vaqtinchalik o'zgarish eng arzon sinovdir. Foydalanish mumkin bo'lgan yo'l hajmidan pastroq qiymat tanlang, avvalgisini yozib oling va taqqoslash mazmunli bo'lishi uchun qolgan hammasini barqaror tuting. Agar uzatish kichikroq qiymatda tugasa, sizda tasodif emas, tashxis bor.
ip -br link show dev eth0
sudo ip link set dev eth0 mtu 1380
ip -br link show dev eth0
Sozlama qayerda yashashi kerakligini hal qiling
Sinovdan uch variant kelib chiqadi va odatda ulardan faqat bittasi mos keladi. Agar kichikroq qiymat uzatishni tuzatsa va qiymat bu tarmoq uchun haqiqatan zarur bo'lsa, sozlama hayot tsikli egasiga muhtoj: distributivda ishga tushish ilgagi, platforma boshqaradigan tarmoq konfiguratsiyasi yoki hujjatlashtirilgan tartib. Agar qiymat hech narsani tuzatmasa, uni qaytaring va transport, proksi hamda autentifikatsiya savollariga qayting.
Ishga tushish ilgagi bor-yo'qligi ishlatilayotgan Windows va WSL versiyalariga hamda konfiguratsiya qilingan tarmoq rejimiga bog'liq. Windows tarmog'ini aks ettirish VPN ning distributiv bilan o'zaro ta'sirini MTU sozlashdan muhimroq usullarda o'zgartirishi mumkin, shuning uchun u uchun aylanma yechim loyihalashdan oldin rejimni aniqlang. Bitta operator yoki bitta VPN profiliga mos qiymat keyingisi uchun standart emas.
Oldini olish kerak bo'lgan narsa — vasvasaga soluvchi joylashtirish: har bir interaktiv qobiqning ishga tushish faylida imtiyozli tarmoq buyrug'i yoki skript bitta satrni bajara olishi uchun butun ip binar fayliga parolsiz sudo. Ikkalasi ham tashxisni doimiy ta'sirga aylantiradi va asl muammoni keyinroq ko'rishni qiyinlashtiradi.
Toza ishga tushirishdan keyin tekshiring, so'ngra qaytaring
Faqat distributiv qayta ishga tushgunga qadar davom etadigan o'zgarish tuzatish emas. Distributivni qayta ishga tushiring, VPN ni qayta ulang va ping yoki kichik HTTP so'rovi kabi o'rinbosar o'rniga asl Git amalini takrorlang. So'ngra yangi sessiyada interfeys nazarda tutilgan qiymatni olib yurishini tasdiqlang.
ip -br link show dev eth0
ip route get "$(getent ahostsv4 github.com | awk 'NR==1{print $1}')"
Yozib olingan asl qiymatni o'zgarish yonida saqlang, tajribani toza qaytarish mumkin bo'lsin, va qaysi manzil oilasi sinovdan o'tkazilganini qayd eting, chunki IPv4 natijasi o'sha xostdagi IPv6 ulanishi haqida hech narsa demaydi. WSL tarmoqlari hujjatlari tuzatish qanday bo'lishi kerakligini belgilovchi rejimlarni tavsiflaydi; MTU raqamining o'zi mahalliy o'lchov, tavsiya emas.