A ti ṣètò kíláìẹ́ńtì rẹ sí UDP, sáfà Nginx ní bulọ́ọ̀kì location tí ó ń tọ́ka sí ibudo VPN, kò sì sí ohun tí ó ń dé. Ìyẹn ni a retí: location HTTP kò lè gbé dátàgírámù UDP, bí a bá ti ń pe ẹ̀yà iwájú. Nginx nílò olùgbọ́ stream fún èyí, àti pé nígbà tí o bá gbé ìṣètò lọ síbẹ̀, ẹ̀ka kejì ti àwọn àlàyé ni yóò pinnu bóyá ìpàdé yóò wà láàyè.

Ìpele proxy wá ṣáájú àdírẹ́sì

Mọ́dùùlì stream Nginx ń ṣe proxy TCP àti UDP láìṣe ìtúpalẹ̀ HTTP. Mọ́dùùlì HTTP rẹ̀ ń retí ìlà ìbéèrè, àwọn àkọlé àti ìdáhùn, kò sì sí ọ̀kan nínú wọn nínú OpenVPN dátàgírámù àbínibí. Nítorí náà yíyan ìpele ni ìpinnu àkọ́kọ́, kò sì sinmi lórí bóyá olùgbọ́ jẹ́ IPv4 tàbí IPv6.

Ìṣètò tí ó dà bí ẹni pé ó ń ṣiṣẹ́ pẹ̀lú OpenVPN lórí TCP kò sọ ohunkóhun nípa ọ̀ràn UDP. Nínú èyí, gbígbé ni apákan pẹ̀tẹ́lẹ̀, kì í ṣe àlàyé ìmúṣẹ.

Olùgbọ́ àti backend

nginx -V 2>&1 | tr ' ' '\n' | grep stream

stream {
    server {
        listen [::]:1194 udp reuseport;
        proxy_pass [2001:db8::20]:1194;
    }
}

Rí i dájú pé build ní mọ́dùùlì stream kí o tó ṣàtúnṣe ohunkóhun; àpò ìpínlẹ̀ lè pín ì ṣe mọ́dùùlì ọ̀tọ̀, mọ́dùùlì tí ó kù yóò sì mú àṣìṣe ìṣètò wá dípò tunnel. Fi bulọ́ọ̀kì náà sínú ẹ̀yà ìṣètò àkọ́kọ́, kì í ṣe nínú http, kí o sì fi backend gidi rọ́pò àdírẹ́sì ìwé.

Àwọn ọ̀nà méjì àti àwọn odi iná méjì gbọdọ̀ gba àwọn dátàgírámù láàyè: ọ̀nà sí olùgbọ́ àti ọ̀nà láti proxy sí backend. Olùgbọ́ IPv6 kò tún dá ọ̀nà IPv4, nítorí náà bí àwọn kíláìẹ́ńtì kan ṣì ń lo IPv4, olùgbọ́ yẹn jẹ́ àkọsílẹ̀ ọ̀tọ̀ pẹ̀lú ìdánwò tirẹ̀. Ṣàyẹ̀wò odi iná backend fúnra rẹ̀ láti àdírẹ́sì proxy, kì í ṣe láti kọ̀mpútà rẹ.

Àkókò ìparí ìpàdé kì í ṣe àkókò ìparí ìbéèrè

Proxy stream ń tọ́jú ipò fún ìpàdé UDP, ó sì ń sọ ọ́ nù gẹ́gẹ́ bí àkókò ìparí àti ètò ìdáhùn rẹ̀. Àkókò ìparí kúkúrú tí a dà láti relay DNS kò bá VPN tí ó ń retí pàṣípààrọ̀ dátàgírámù fún wákàtí pọ̀ mu, àti ìkùnà náà máa ń farahàn bí ìsopọ̀ tí ó ń kú ní ìdákẹ́jẹ́ dípò ọ̀kan tí ó kọ̀ láti bẹ̀rẹ̀.

Ka proxy_timeout gidi ti ìmúṣẹ àti èyíkéyìí ètò kíkà àwọn ìdáhùn, lẹ́yìn náà fi wọ́n wé ìhùwàsí keepalive tí VPN ń lò ní ti gidi. Nọ́mbà méjì tí àwọn ènìyàn ọ̀tọ̀ kọ sínú àwọn fáìlì ọ̀tọ̀ ni ipò déédéé ti ẹ̀rọ tí ó ń ṣiṣẹ́. Nọ́mbà méjì tí a kò fi wé rí ni ipò déédéé ti ẹ̀rọ tí ó ń dáwọ́ dúró lẹ́ẹ̀kọ̀ọ̀kan. Kọ àwọn méjèèjì sínú àkọsílẹ̀ iṣẹ́ kí ìfiwéra náà lè ṣẹlẹ̀ lẹ́ẹ̀kan, ní ìmọ́lẹ̀ ọ̀sán.

Kí ni relay ń yí padà, kí ni kò yí padà

Proxy stream kò parí ikanni ìṣàkóso TLS OpenVPN, kò sì yí i padà sí HTTPS. Backend ń jẹ́ iṣẹ́ VPN, àti ìbáṣepọ̀ ìwé-ẹ̀rí wà láàrin kíláìẹ́ńtì àti iṣẹ́ yẹn. Pípa idánimọ̀ backend tí a ní lọ́kàn mọ́ ṣì jẹ́ iṣẹ́ kíláìẹ́ńtì àti sáfà.

Proxy déédéé tún ń yí àdírẹ́sì orísun tí backend ń rí padà. Àwọn àkọsílẹ̀ yóò fi proxy hàn, àti èyíkéyìí ìlànà ìwọlé tí ó dá lórí IP lórí sáfà VPN yóò ṣàyẹ̀wò àdírẹ́sì yẹn dípò ti kíláìẹ́ńtì. Pípa orísun mọ́ ní àràánù jẹ́ àpẹẹrẹ ìtọ́sọ́nà àti ẹ̀tọ́ ọ̀tọ̀, kì í ṣe ohun tí ó ń wá láti àfikún udp sí olùgbọ́. Ṣètò fún un kí a tó kọ ìlànà tí ó gbára lé àdírẹ́sì kíláìẹ́ńtì.

Ṣàyẹ̀wò láti kíláìẹ́ńtì, kì í ṣe láti ibudo

Ìṣàyẹ̀wò àdúgbò pé ibudo UDP ṣí sílẹ̀ fìdí rẹ̀ múlẹ̀ pé olùgbọ́ wà. Kò fìdí rẹ̀ múlẹ̀ pé kíláìẹ́ńtì lè ṣe ìjẹ́rìí nípasẹ̀ rẹ̀ tàbí tẹ̀síwájú pàṣípààrọ̀ ìrìnàjò. Parí ìsopọ̀ gidi láti kíláìẹ́ńtì tí a fọwọ́ sí, lẹ́yìn náà ṣe àfimọ́ pé ìpàdé dúró pẹ́ tó láti ní ìtumọ̀.

Nígbà tí ẹnìkan bá ròyìn pé Nginx kò lè ṣe UDP nítorí pé irinṣẹ́ relay rírọrùn kan ṣiṣẹ́ dípò rẹ̀, àwọn òtítọ́ méjì yẹn kò ní ìbáṣepọ̀. Irinṣẹ́ náà fìdí rẹ̀ múlẹ̀ pé backend ń dáhùn; kò sọ ohunkóhun nípa ohun tí ẹ̀yà iwájú ń gbà. Àwọn méjèèjì lè jẹ́ òtítọ́, ọ̀kan nínú wọn nìkan sì ni ìṣètò fún ìmúṣẹ yìí.

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