Mae'r clon yn dilysu, mae cyfrif yr eitemau'n ymddangos, ac yna nid oes dim yn symud am funudau. Mae Windows yn adrodd bod y VPN wedi'i gysylltu, mae'r enw gwesteiwr yn datrys, ac mae porwr ar yr un peiriant yn nôl yr un dudalen ystorfa heb drafferth. Mae'r cyfuniad hwnnw'n awgrymu maint y pecyn yn hytrach na'r manylion mewngofnodi, a rhaid gofyn y cwestiwn maint mewn dau le oherwydd bod gan WSL2 ei ryngwyneb Linux ei hun gyda'i MTU ei hun. Mae un rhif yn perthyn i ochr Windows y llwybr, y llall i'r dosbarthiad, ac mae darllen addasydd VPN yn unig yn gadael hanner y llwybr heb ei archwilio.

Mae tri signal yn gwahanu problem maint oddi wrth beth arall

Y signal cyntaf yw siâp: mae sefydlu'r cysylltiad a chyfnewid bach yn llwyddo, ac yna mae'r trosglwyddiad mawr yn stopio symud ymlaen. Yr ail yw cymesuredd: mae'r un ystorfa a'r un cludiant yn methu tra bod gwesteiwr arall ar yr un llwybr yn gweithio, neu mae'r methiant yn newid gyda maint y llwyth, nid ag amser y dydd. Y trydydd yw distawrwydd: dim gwall dilysu, dim gwrthodiad gan ddirprwy, dim methiant datrys enwau, dim ond trosglwyddiad nad yw byth yn gorffen.

Mae'r tri hyn gyda'i gilydd yn cyfiawnhau rhagdybiaeth maint pecyn. Mae methiant DNS, tocyn wedi dod i ben, allwedd SSH wedi'i gwrthod, a dirprwy sy'n gwrthod CONNECT pob un yn cynhyrchu ei wall ei hun, ac nid oes yr un ohonynt yn edrych fel stop ar ôl llwyddiant. Cadw'r un ystorfa, cludiant a ffenestr amser wrth brofi sy'n gwneud y gymhariaeth yn onest.

Cymharwch y ddau ryngwyneb cyn penderfynu

Casglwch olwg Windows a golwg Linux yn yr un sesiwn, a chadwch gyfeiriad yr ystorfa yn hytrach na dyfalu pa ryngwyneb sy'n ei chario. Mae'r gorchymyn isod yn datrys y cyrchfan yn gyntaf fel bod chwiliad y llwybr yn disgrifio'r gweinydd gwirioneddol y mae'r clon yn cysylltu ag ef, a all fod yn wahanol i'r enw a ddangosodd porwr. Rhedwch y ddau hanner yn agos at ei gilydd, oherwydd gall y VPN newid metrigau'r rhyngwyneb rhwng ymgais.

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"'

Rhedwch hanner Linux y tu mewn i'r dosbarthiad yn hytrach na phastio'r allbwn i gragen Windows, gan mai dim ond yno y mae enwau rhyngwyneb a dewis llwybr yn gwneud synnwyr. Mae past o gragen Windows yn adrodd rhifau anghywir gyda hyder mawr. Cofnodwch y ddyfais, y llwybr a ddewiswyd a'r MTU o bob ochr cyn newid unrhyw beth.

Penderfynwch a ddylai'r rhif fod yn llai

Nid yw MTU rhyngwyneb yn fwy nag y gall y llwybr ei gario yn ddiffyg yn awtomatig, oherwydd bod darganfod MTU'r llwybr yn bodoli'n union ar gyfer hynny. Mae'r modd methiant yn ymddangos pan fydd darganfod yn cael ei atal: mae negeseuon ICMP yn cael eu hidlo rywle ar hyd y llwybr, nid yw'r anfonwr byth yn dysgu'r terfyn, ac mae pecynnau mawr yn diflannu tra bod rhai bach yn llwyddo. Mae hynny'n briodwedd o'r llwybr, nid yn briodwedd o Git. Dyna hefyd y rheswm y gall ffeil fach lwyddo ar gysylltiad lle nad yw un fawr byth yn gorffen.

Os yw'r dystiolaeth yn ei gefnogi, newid dros dro ar ryngwyneb Linux yw'r prawf rhataf. Dewiswch werth islaw maint defnyddiadwy'r llwybr, cofnodwch yr un blaenorol, a chadwch bopeth arall yn gyson fel bod y gymhariaeth yn golygu rhywbeth. Os yw'r trosglwyddiad yn gorffen ar y gwerth llai, mae gennych ddiagnosis yn hytrach na chyd-ddigwyddiad.

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

Penderfynwch ble y dylai'r gosodiad fyw

Mae tri opsiwn yn dilyn o'r prawf, ac fel arfer dim ond un ohonynt sy'n briodol. Os yw'r gwerth llai yn trwsio'r trosglwyddiad ac mae'r gwerth wir yn angenrheidiol ar gyfer y rhwydwaith hwn, mae angen perchennog cylch bywyd ar y gosodiad: bachyn cychwyn yn y dosbarthiad, cyfluniad rhwydwaith a reolir gan y platfform, neu weithdrefn wedi'i dogfennu. Os nad yw'r gwerth yn trwsio dim, dychwelwch ef a dychwelyd at gwestiynau cludiant, dirprwy a dilysu.

Mae bodolaeth bachyn cychwyn yn dibynnu ar y fersiynau Windows a WSL sy'n cael eu defnyddio ac ar y modd rhwydweithio a gyfluniwyd. Adlewyrchu rhwydwaith Windows gall newid sut mae VPN yn rhyngweithio â'r dosbarthiad mewn ffyrdd sy'n bwysicach nag addasiad MTU, felly nodwch y modd cyn dylunio datrysiad dros dro ar ei gyfer. Nid yw gwerth sy'n addas i un cludwr neu un proffil VPN yn rhagosodiad ar gyfer y nesaf.

Yr hyn i'w osgoi yw'r lleoliad temtasiwn: gorchymyn rhwydwaith breintiedig ym mhob ffeil cychwyn cragen ryngweithiol, neu sudo heb gyfrinair ar gyfer y ffeil ddeuaidd ip gyfan fel y gall sgript redeg un llinell. Mae'r ddau yn troi diagnosis yn amlygiad parhaol ac yn gwneud y broblem wreiddiol yn anoddach i'w gweld yn ddiweddarach.

Gwiriwch ar ôl cychwyn glân, yna gwrthdroi

Nid yw newid sy'n goroesi dim ond tan i'r dosbarthiad ailgychwyn yn atgyweiriad. Ailgychwynnwch y dosbarthiad, ailgysylltwch y VPN, ac ailadroddwch weithred Git wreiddiol yn hytrach na chyfnewidyn fel ping neu gais HTTP bach. Yna cadarnhewch fod y rhyngwyneb yn cario'r gwerth a fwriedir yn y sesiwn newydd.

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

Cadwch y gwerth gwreiddiol a gofnodwyd wrth ymyl y newid fel y gellir dadwneud yr arbrawf yn lân, a nodwch ba deulu cyfeiriadau a brofwyd, gan nad yw canlyniad IPv4 yn dweud dim am gysylltiad IPv6 ar yr un gwesteiwr. Mae dogfennaeth rwydweithio WSL yn disgrifio'r moddau sy'n pennu sut y dylai atgyweiriad edrych; mae'r rhif MTU ei hun yn fesuriad lleol, nid yn argymhelliad.

Erthyglau cysylltiedig