O ṣí ẹnubodè inú ní aṣàwákiri, ó sì gbé wọ̀. O ṣe app tí ó pe host kan náà, ó sì kùnà, pẹ̀lú ìfiránṣẹ́ tí kò dárúkọ ìpele kankan. Tunnel ń gbé aṣàwákiri, nítorí náà tunnel kì í ṣe afurasi àkọ́kọ́. Nǹkan mẹ́rin wà láàárín ìbéèrè rẹ àti iṣẹ́, ọ̀kọ̀ọ̀kan sì fi àmì ọ̀tọ̀ọ̀tọ̀ sílẹ̀. Èyí ni ìtẹ̀lé tí mo tẹ̀lé, bẹ̀rẹ̀ láti ìbéèrè tí app fi ń rán ní tòótọ́, kì í ṣe ojú-ìwé ètò VPN kíláìàńtì.

Wo ìbéèrè tí app fi ń rán ní tòótọ́

Kí o tó fi ọwọ́ kan ìṣètò, jẹ́ kí app sọ fún ọ ohun tí ó ń ṣe. Gbígba ìbéèrè kan pẹ̀lú proxy tí a ti pa ní kedere àti ìdánwò ibùdó tí ó rọrùn fún ọ ní ìlà ìpìlẹ̀ méjì tí a ó fi àwọn ìgbésẹ̀ tó ń bọ̀ wé. Bí ìbéèrè bá ṣe àṣeyọrí pẹ̀lú proxy tí a pa, o ti parí ìpele mẹ́ta nínú mẹ́rin.

env | grep -i proxy            # Linux/macOS
netsh winhttp show proxy       # Windows, machine-wide
curl -sv --noproxy '*' https://svc.internal/
nc -vz svc.internal 8080

Ṣe méjì tí ó kẹ́yìn sí ibi-afẹ́de kan náà kí o sì wo ibi tí wọ́n ti yà. Aṣàwákiri tí ń ṣiṣẹ́ pẹ̀lú curl tí ń ṣiṣẹ́ pẹ̀lú app tí kò ṣiṣẹ́ ń dín ìṣòro kù sí ohun tí app ń fi kún: proxy, gbígbé tàbí ìwọ̀n ìfiránṣẹ́.

App jogún proxy tí ẹnikẹ́ni kò ṣètò

Ọ̀pọ̀ àwọn HTTP stack ń ka ìṣètò proxy láti inú ètò ìṣiṣẹ́ ní àìdábọ̀. VPN ilé-iṣẹ́ máa ń fi ọ̀kan sínú gẹ́gẹ́ bí apá kan profáìlì wíwọlé rẹ̀, nítorí náà àwọn ìbéèrè ń jáde nípasẹ̀ proxy tí olùdàgbàsókè kò dárúkọ rara nínú kóòdù. Nínú .NET olùṣètò àìdábọ̀ ń gbé láti ètò IE/WinHTTP; Java ń ka -Dhttp.proxyHost; Node kò ní àtìlẹ́yìn proxy inú títí tí ẹ̀kọ́ kan yóò fi kún. Ìkùnà kì í ṣe ìkọ̀sílẹ̀ mímọ́ ní ọ̀pọ̀ ìgbà, ìdí nìyẹn tí àwọn ènìyàn fi bẹ̀rẹ̀ sí wo server.

Ìdánwò náà gba ìbéèrè kan: pa proxy ní kedere lórí olùṣètò kan kí o sì fi wé.

var handler = new HttpClientHandler { UseProxy = false };
using var client = new HttpClient(handler);

Bí ìyẹn bá ṣiṣẹ́, àtúnṣe náà wà nínú ìṣètò app, kì í ṣe nínú tunnel. Tún ìgbéléwọ̀n náà ṣe fún gbogbo àyíká ìṣiṣẹ́ nínú iṣẹ́ náà, nítorí ọ̀kọ̀ọ̀kan ń ka orísun ọ̀tọ̀ọ̀tọ̀, ó sì lè jẹ́ ọ̀kan ṣoṣo ni ó ti bàjẹ́.

Ibùdó tí o yàn kì í ṣe ibùdó tí ìlànà gbà

Host tí a ti ṣe ipa kì í ṣe iṣẹ́ tí a gbà. Ìlànà ilé-iṣẹ́ sábà ń gba àwọn ibùdó wẹ́ẹ̀bù tí ń jáde, ó sì ń sọ ìyókù nù, nítorí náà iṣẹ́ lórí 8080 tàbí 1883 kò lè dé, nígbà tí 443 ń ṣiṣẹ́ dáadáa. Aṣàwákiri kò fi ohunkóhun hàn níbí: ó ń lo 443 nípasẹ̀ ìtumọ̀.

Tẹ iṣẹ́ kan náà jáde lẹ́yìn 443 kí o sì dé ọ̀ ní orúkọ kí o tó béèrè ìyọkúrò. Bí ìyọkúrò bá wúlò gan-an, dín ìn kù sí ìwọ̀n ti orísun kan pẹ̀lú ibi-afẹ́de kan, kí o sì kà á sí apá kan ìtumọ̀ iṣẹ́, kì í ṣe ọ̀nà àdáni ẹnìkan.

TCP àìṣeéṣe tí ọ̀nà ń tún ṣe

Àwọn ìsopọ̀ TCP àìṣeéṣe tí ó pẹ́ ni ìpele tí ó ń kùnà ní ọ̀nà tí ó dàrú jùlọ. Ọ̀nà tí ó gba ìrìnàjò wẹ́ẹ̀bù ṣì lè tún TCP àjèjì tí ń jáde ṣe tàbí kọ ọ́ lẹ́ẹ̀kan sí i, kíláìàńtì sì ń fi àṣìṣe socket hàn tí a ń kà bí ìdálẹ́sẹ̀. Àwọn iṣẹ́ ìfiránṣẹ́ àti ìṣẹ̀lẹ̀ sábà ń pèsè gbígbé WebSocket fún irú nẹ́tíwọ́kì bẹ́ẹ̀, ìyípadà sì jẹ́ àṣàyàn kíláìàńtì, kì í ṣe ìyípadà tunnel.

Yí gbígbé padà, dánwò lẹ́ẹ̀kan sí i, kí o má sì yí ohunkóhun mìíràn padà nínú ìṣe kan náà. Ìdánwò oníyípadà kan náà yóò sọ bí àtúnṣe náà ti ọ̀nà wá tàbí ti iṣẹ́.

Àwọn ìsopọ̀ tí ó ń tì ní ẹrù ńlá nìkan

Ìbéèrè tí ó ṣe àṣeyọrí tí ó sì kú ní nǹkan bí ìṣẹ́jú-àáyá kan lẹ́yìn náà, ṣùgbọ́n nígbà tí ara bá tóbi nìkan, ń tọ́ka sí ààlà ìwọ̀n níbìkan ní àárín. Alárinà tí ń ka báìtì ìfiránṣẹ́ lè ju ìsopọ̀ náà nù ní àárín gbígbé, kíláìàńtì sì ń fi ìtìlẹ́yìn àìdánilójú hàn dípò àkókò ìdúró.

Pín ẹrù náà sí àwọn ege ní ìpele app. Pa èyí mọ́ sọ́tọ̀ sí iṣẹ́ MTU: dídín ìwọ̀n pákítì tunnel kù ń ràn ọ́ lọ́wọ́ nígbà tí àwọn ìpàdé TCP déédéé dúró ní iye báìtì tí kò yípadà, kò sì ṣe ohunkóhun fún ìfiránṣẹ́ tí alárinà kà sí tí ó tóbi jù.

Bí a ṣe lè yà mẹ́rin náà sọ́tọ̀ ní ìgbésẹ̀ kan

Àkíyèsí mẹ́ta ń yanjú ọ̀pọ̀ ìṣẹ̀lẹ̀. Ṣé ìkùnà náà ń ṣẹlẹ̀ lẹ́sẹ̀kẹsẹ̀ tàbí pẹ̀lú ara ńlá nìkan? Ṣé ìbéèrè kan náà ń ṣe àṣeyọrí pẹ̀lú proxy tí a pa? Ṣé èsì náà ń yípadà nígbà tí o bá yí ibùdó tàbí gbígbé padà? Kọ àwọn ìdáhùn sílẹ̀ kí ìyípadà tó ń bọ̀ tó dé, nítorí VPN ilé-iṣẹ́ pẹ̀lú proxy tí a jogún pẹ̀lú àìdábọ̀ app ń fún ọ ní àwọn ìdí mẹ́ta tí ó ṣeéṣe ní ẹ̀ẹ̀kan.

Pa yípadà kan mọ́ fún ìdánwò kọ̀ọ̀kan kí o sì kọ host ibi-afẹ́de tí o lò sílẹ̀. Láìsí ìlà ìpìlẹ̀ yẹn, ẹni tó ń bọ̀ yóò tún ìgbésẹ̀ mẹ́rin náà ṣe láti ìbẹ̀rẹ̀.

Àwọn àpilẹ̀kọ tó jọra