Клон аутентификациядан өтеді, объектілер саны пайда болады, содан кейін бірнеше минут бойы ештеңе қозғалмайды. Windows VPN қосылған деп хабарлайды, хост атауы шешіледі және сол машинадағы браузер сол репозиторий бетін қиындықсыз ашады. Бұл үйлесім тіркелгі деректеріне емес, пакет өлшеміне нұсқайды, ал өлшем сұрағын екі жерде қою керек, өйткені WSL2-нің өз MTU-ы бар өз Linux интерфейсі бар. Бір сан жолдың Windows жағына, екіншісі дистрибутивке тиесілі, ал тек VPN адаптерін оқу жолдың жартысын тексерілмей қалдырады.

Үш белгі өлшем мәселесін басқалардан бөледі

Бірінші белгі — пішін: байланыс орнату және шағын алмасу сәтті болады, содан кейін жаппай тасымалдау ілгерілеуді тоқтатады. Екіншісі — симметрия: сол репозиторий мен сол транспорт сәтсіз болады, ал сол жолдағы басқа хост жұмыс істейді, немесе сәтсіздік тәулік уақытымен емес, пайдалы жүктеме өлшемімен өзгереді. Үшіншісі — тыныштық: аутентификация қатесі жоқ, прокси бас тартуы жоқ, атау шешу сәтсіздігі жоқ, тек ешқашан аяқталмайтын тасымалдау.

Осы үшеуі бірге пакет өлшемі туралы гипотезаны негіздейді. DNS сәтсіздігі, мерзімі өткен токен, қабылданбаған SSH кілті және CONNECT-тен бас тартатын прокси — әрқайсысы өз қатесін шығарады және олардың ешқайсысы сәттіліктен кейінгі тоқырауға ұқсамайды. Тестілеу кезінде сол репозиторийді, транспортты және уақыт терезесін сақтау салыстыруды адал ететін нәрсе.

Шешім қабылдамас бұрын екі интерфейсті салыстырыңыз

Windows көрінісі мен Linux көрінісін бір сессияда жинаңыз және оны қай интерфейс тасымалдайтынын болжаудың орнына репозиторий мекенжайын ұстаныңыз. Төмендегі команда алдымен межелі орынды шешеді, сондықтан маршрут іздеуі клон шын мәнінде байланысатын серверді сипаттайды, ол браузер көрсеткен атаудан өзгеше болуы мүмкін. Екі жартыны бір-біріне жақын уақытта іске қосыңыз, өйткені VPN әрекеттер арасында интерфейс метрикаларын өзгертуі мүмкін.

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 жартысын Windows қабығына шығысты қоюдың орнына дистрибутив ішінде іске қосыңыз, өйткені интерфейс атаулары мен маршрут таңдауы тек сонда мағыналы. Windows қабығынан қойылған нәтиже қате сандарды үлкен сеніммен хабарлайды. Бірдеңені өзгертуден бұрын әр жақтан құрылғыны, таңдалған маршрутты және MTU-ды жазып алыңыз.

Сан кішірек болуы керек пе, соны шешіңіз

Интерфейс MTU-ы жол көтере алатыннан үлкен болуы автоматты түрде ақау емес, өйткені жол MTU-ын анықтау дәл осы үшін бар. Ақау режимі анықтау басылған кезде пайда болады: ICMP хабарлары жолдың әлдебір жерінде сүзіледі, жіберуші шектеуді ешқашан білмейді және үлкен пакеттер жоғалып, кішілері өтеді. Бұл жолдың қасиеті, Git-тің емес. Бұл сонымен қатар кішкентай файл үлкені ешқашан аяқталмайтын қосылымда сәтті бола алатынының себебі.

Егер дәлелдер осыны қолдаса, Linux интерфейсіндегі уақытша өзгеріс ең арзан тест болып табылады. Пайдалануға болатын жол өлшемінен төмен мәнді таңдаңыз, алдыңғысын жазып алыңыз және салыстыру мағыналы болуы үшін қалғанын тұрақты ұстаңыз. Егер тасымалдау кішірек мәнде аяқталса, сізде диагноз бар, кездейсоқтық емес.

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

Параметр қайда өмір сүруі керек екенін шешіңіз

Тесттен үш нұсқа шығады және әдетте олардың тек біреуі ғана орынды. Егер кішірек мән тасымалдауды түзетсе және мән осы желі үшін шынымен қажет болса, параметрге өмірлік цикл иесі керек: дистрибутивтегі іске қосу ілгегі, платформа басқаратын желі конфигурациясы немесе құжатталған процедура. Егер мән ештеңені түзетпесе, оны қайтарыңыз және транспорт, прокси және аутентификация сұрақтарына оралыңыз.

Іске қосу ілгегінің бар-жоғы қолданылатын Windows және WSL нұсқаларына және конфигурацияланған желі режиміне байланысты. Windows желісін айнаға түсіру VPN-тың дистрибутивпен әрекеттесуін MTU түзетуінен маңыздырақ тәсілдермен өзгертуі мүмкін, сондықтан ол үшін айналып өту жолын жобаламас бұрын режимді анықтаңыз. Бір операторға немесе бір VPN профиліне сай мән келесісі үшін әдепкі емес.

Аулақ болу керек нәрсе — азғызатын орналасу: әр интерактивті қабықтың іске қосу файлында артықшылықты желілік команда, немесе скрипт бір жолды орындай алуы үшін бүкіл ip бинарлық файлына құлпсыз sudo. Екеуі де диагнозды тұрақты әсер етуге айналдырады және бастапқы мәселені кейінірек көруді қиындатады.

Таза іске қосқаннан кейін тексеріңіз, содан кейін қайтарыңыз

Тек дистрибутив қайта іске қосылғанға дейін сақталатын өзгеріс түзету емес. Дистрибутивті қайта іске қосыңыз, VPN-ты қайта қосыңыз және ping немесе шағын HTTP сұрауы сияқты алмастырғыштың орнына бастапқы Git операциясын қайталаңыз. Содан кейін жаңа сессияда интерфейс көзделген мәнді алып жүретінін растаңыз.

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

Жазылған бастапқы мәнді өзгерістің қасында ұстаңыз, экспериментті таза түрде кері қайтаруға болатындай, және қай мекенжай тобының сыналғанын белгілеңіз, өйткені IPv4 нәтижесі сол хосттағы IPv6 қосылымы туралы ештеңе айтпайды. WSL желілерінің құжаттамасы түзетудің қандай болуы керегін анықтайтын режимдерді сипаттайды; MTU санының өзі жергілікті өлшеу, ұсыныс емес.

Қатысты мақалалар