Git dúró ní WSL2 lórí VPN: MTU interface tàbí ọ̀nà?
Ṣé Git ń jẹ́rìí sí i kí ó sì dúró nínú WSL2? Fi interface Linux wé àdáptà VPN Windows, dán ìwọ̀n kan tí ó kéré wò, kí o sì ṣètò ìgbésí ayé rẹ̀.
Klonu náà ń jẹ́rìí sí i, iye ohun náà ń farahàn, lẹ́yìn náà kò sí ohun tí ń rìn fún ìṣẹ́jú. Windows ń sọ pé VPN ti so pọ̀, orúkọ agbàlejò náà ń yanjú, àti aṣàwákiri lórí ẹrọ náà ń gba ojú-ìwé ìpamọ́ náà láìsí ìṣòro. Àpapọ̀ yẹn ń tọ́ka sí ìwọ̀n pákẹ́tì dípò ẹ̀rí ìdánimọ̀, àti pé ìbéèrè ìwọ̀n náà gbọ́dọ̀ béèrè ní ibi méjì nítorí WSL2 ní interface Linux tirẹ̀ pẹ̀lú MTU tirẹ̀. Nọ́mbà kan jẹ́ ti ẹ̀gbẹ́ Windows ti ọ̀nà náà, èkejì jẹ́ ti ìpín náà, àti kíka àdáptà VPN nìkan ń fi ìdajì ọ̀nà náà sílẹ̀ láìṣàyẹ̀wò.
Àmì mẹ́ta ń ya ìṣòro ìwọ̀n kúrò lára àwọn mìíràn
Àmì àkọ́kọ́ ni ìrísí: ìdásílẹ̀ ìsopọ̀ àti pàṣípààrọ̀ kékeré ń ṣàṣeyọrí, lẹ́yìn náà gbígbé ńlá náà dáwọ́ ìtẹ̀síwájú. Èkejì ni ìbáraẹnisọ̀rọ̀: ìpamọ́ kan náà àti ọ̀nà gbígbé kan náà ń kùnà nígbà tí agbàlejò mìíràn lórí ọ̀nà kan náà ń ṣiṣẹ́, tàbí àìṣeyọrí náà ń yí padà pẹ̀lú ìwọ̀n ẹrù náà dípò àkókò ọjọ́. Ẹ̀kẹta ni ìdákẹ́jẹ́: kò sí àṣìṣe ìjẹ́rìí, kò sí ìkọ̀sílẹ̀ proxy, kò sí àìṣeyọrí yíyanjú orúkọ, kìkì gbígbé tí kì í parí rárá.
Àwọn mẹ́ta wọ̀nyí pọ̀ ń dá àbá ìwọ̀n pákẹ́tì láre. Àìṣeyọrí DNS, token tí ó ti pẹ́, kọ́kọ́rọ́ SSH tí a kọ̀, àti proxy tí ó kọ CONNECT—ọ̀kọ̀ọ̀kan wọn ń dá àṣìṣe tirẹ̀, kò sì sí ọ̀kan tí ó dàbí ìdúró lẹ́yìn àṣeyọrí. Pípa ìpamọ́ kan náà, ọ̀nà gbígbé kan náà àti fèrèsé àkókò kan náà mọ́ nígbà ìdánwò ni ó ń jẹ́ kí ìfiwéra náà jẹ́ olóòtítọ́.
Fi àwọn interface méjèèjì wé kí o tó pinnu
Kó ojú-ríran Windows àti ojú-ríran Linux jọ nínú ìpàdé kan, kí o sì di àdírẹ́sì ìpamọ́ náà mú dípò ṣíṣe àbá nípa irú interface tí ń gbé e. Àṣẹ tí ó wà nísàlẹ̀ ń yanjú ibi tí a ń lọ ní àkọ́kọ́ kí ìwádìí ọ̀nà náà lè ṣàpèjúwe olùpèsè gidi tí klonu náà ń bá sọ̀rọ̀, tí ó lè yàtọ̀ sí orúkọ tí aṣàwákiri fi hàn. Ṣiṣẹ́ àwọn ìdajì méjèèjì ní àkókò tí ó súnmọ́ ara wọn, nítorí VPN lè yí àwọn ìwọ̀n interface padà láàrín àwọn ìgbìyànjú.
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"'
Ṣiṣẹ́ ìdajì Linux nínú ìpín náà dípò lílẹ̀ ẹ̀dá jáde mọ́ shell Windows, nítorí orúkọ interface àti yíyan ọ̀nà ní ìtumọ̀ níbẹ̀ nìkan. Lílẹ̀ láti shell Windows ń sọ àwọn nọ́mbà tí kò tọ́ pẹ̀lú ìgbẹ́kẹ̀lé ńlá. Ṣàkọsílẹ̀ ẹrọ náà, ọ̀nà tí a yàn àti MTU láti ẹ̀gbẹ́ kọ̀ọ̀kan kí o tó yí ohunkóhun padà.
Pinnu bóyá nọ́mbà náà yẹ kí ó kéré
MTU interface tí ó tóbi ju ohun tí ọ̀nà náà lè gbé lọ kì í ṣe àbùkù lẹ́ẹ̀kọ̀ọ̀kan, nítorí ìwádìí MTU ọ̀nà náà wà fún ìdí yẹn gan-an. Ipò àìṣeyọrí ń farahàn nígbà tí a bá tẹ̀ ìwádìí náà mọ́lẹ̀: a ń ṣe àwọn ìfiránṣẹ́ ICMP jáde níbì kan lórí ọ̀nà, ẹni tí ń ránṣẹ́ kò ní mọ ààlà rárá, àwọn pákẹ́tì ńlá sì ń pòórá nígbà tí àwọn kékeré ń kọjá. Ìyẹn jẹ́ ànímọ́ ọ̀nà náà, kì í ṣe ànímọ́ Git. Ìyẹn náà ni ìdí tí fáìlì kékeré lè ṣàṣeyọrí lórí ìsopọ̀ tí fáìlì ńlá kì í parí rárá.
Tí ẹ̀rí bá ṣe àtìlẹ́yìn fún un, ìyípadà àkókò díẹ̀ lórí interface Linux ni ìdánwò tí ó kéré jùlọ ní owó. Yan ìwọ̀n tí ó kéré ju ìwọ̀n ọ̀nà tí a lè lò lọ, ṣàkọsílẹ̀ èyí tí ó ṣáájú, kí o sì pa gbogbo ohun mìíràn mọ́ bí ó ti wà kí ìfiwéra náà lè ní ìtumọ̀. Tí gbígbé náà bá parí pẹ̀lú ìwọ̀n kékeré náà, ìwọ ní àyẹ̀wò àrùn kì í ṣe àpapọ̀ àròtẹ́lẹ̀.
ip -br link show dev eth0
sudo ip link set dev eth0 mtu 1380
ip -br link show dev eth0
Pinnu ibi tí ètò náà yẹ kí ó gbé
Àwọn àṣàyàn mẹ́ta ń jáde láti inú ìdánwò náà, ìgbà púpọ̀ ni ọ̀kan nìkan ló yẹ. Tí ìwọ̀n kékeré bá tún gbígbé náà ṣe, tí ìwọ̀n náà sì ṣe pàtàkì fún nẹ́tíwọ́kì yìí, ètò náà nílò ẹni tí ó ní ìgbésí ayé rẹ̀: ìkọ̀kọ̀ ìbẹ̀rẹ̀ nínú ìpín, ìṣètò nẹ́tíwọ́kì tí pẹpẹ ń ṣàkóso, tàbí ìlànà tí a kọ sílẹ̀. Tí ìwọ̀n náà kò bá tún ohunkóhun ṣe, dá a padà kí o sì padà sí àwọn ìbéèrè nípa gbígbé, proxy àti ìjẹ́rìí.
Bóyá ìkọ̀kọ̀ ìbẹ̀rẹ̀ wà dá lórí àwọn ẹ̀yà Windows àti WSL tí a ń lò àti ipò nẹ́tíwọ́kì tí a ti ṣètò. Dídi ojú nẹ́tíwọ́kì Windows lè yí bí VPN ṣe ń bá ìpín náà sọ̀rọ̀ padà ní àwọn ọ̀nà tí ó ṣe pàtàkì ju àtúnṣe MTU lọ, nítorí náà dán ipò náà mọ̀ kí o tó ṣètò ojútùú àyíká fún un. Ìwọ̀n tí ó bá ẹnìkan tí ń ṣiṣẹ́ tàbí profáìlì VPN kan mu kì í ṣe ìpilẹ̀ fún èyí tí ó tẹ̀lé.
Ohun tí ó yẹ kí a yẹ̀wò ni ibi tí ó ń fani mọ́ra: àṣẹ nẹ́tíwọ́kì pẹ̀lú àǹfààní nínú fáìlì ìbẹ̀rẹ̀ gbogbo shell ìbáraẹnisọ̀rọ̀, tàbí sudo láìsí ọ̀rọ̀ ìpamọ́ fún gbogbo ip binary kí script lè ṣiṣẹ́ ìlà kan. Àwọn méjèèjì ń yí àyẹ̀wò àrùn padà sí ìṣípayá tí ó wà títí, wọ́n sì ń jẹ́ kí ó ṣòro láti rí ìṣòro ìpilẹ̀ náà lẹ́yìn.
Ṣàyẹ̀wò lẹ́yìn ìbẹ̀rẹ̀ mímọ́, lẹ́yìn náà dá a padà
Ìyípadà tí ó wà nìkan títí ìpín yóò fi tún bẹ̀rẹ̀ kì í ṣe àtúnṣe. Tún ìpín náà bẹ̀rẹ̀, so VPN pọ̀ mọ́ ẹ̀ẹ̀kan sí i, kí o sì tún iṣẹ́ Git ìpilẹ̀ náà ṣe dípò àropo bí ping tàbí ìbéèrè HTTP kékeré. Lẹ́yìn náà jẹ́rìí sí i pé interface náà ń gbé ìwọ̀n tí a fẹ́ nínú ìpàdé tuntun.
ip -br link show dev eth0
ip route get "$(getent ahostsv4 github.com | awk 'NR==1{print $1}')"
Pa ìwọ̀n ìpilẹ̀ tí a kọsílẹ̀ mọ́ lẹ́gbẹ̀ẹ́ ìyípadà náà kí a lè dá ìdánwò náà padà lọ́nà mímọ́, kí o sì ṣàkọsílẹ̀ irú ìdílé àdírẹ́sì tí a dán wò, nítorí àbájáde IPv4 kò sọ ohunkóhun nípa ìsopọ̀ IPv6 lórí agbàlejò kan náà. Àwọn ìwé nẹ́tíwọ́kì WSL ń ṣàpèjúwe àwọn ipò tí ń pinnu bí àtúnṣe yẹ kí ó rí; nọ́mbà MTU fúnra rẹ̀ jẹ́ ìwọ̀n àdúgbò, kì í ṣe àbá.