Клон баталгаажуулалт хийж, объектын тоо гарч ирээд дараа нь хэдэн минутын турш юу ч хөдлөхгүй. 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 тоо өөрөө нь локал хэмжилт, зөвлөмж биш.

Холбоотой нийтлэлүүд