Tá do chliant socraithe ar UDP, tá bloc location ag an bhfreastalaí Nginx a dhíríonn ar phort an VPN, agus ní thagann aon rud. Tá sé sin le súil: ní féidir le location HTTP datagram UDP a iompar, cibé ainm a thugtar ar an bhfronta. Teastaíonn éisteoir stream ó Nginx le haghaidh seo, agus a luaithe a bhogann tú an chumraíocht ansin, socraíonn dara sraith sonraí an maireann seisiún.

Tagann an tsraith proxy roimh an seoladh

Déanann modúl stream Nginx proxy ar TCP agus UDP gan HTTP a pharsáil. Fanann a mhodúl HTTP le líne iarratais, ceanntásca agus freagra, agus níl aon cheann acu i OpenVPN datagram dúchasach. Is é an rogha sraithe an chéad chinneadh dá bhrí sin, agus tá sé neamhspleách ar cibé an bhfuil an t-éisteoir IPv4 nó IPv6.

Ní deir cumraíocht a bhfeictear ag obair le OpenVPN TCP aon rud faoin gcás UDP. Tá an t-iompar anseo ina chuid den phrótacal, ní sonra den imscaradh.

An t-éisteoir agus an backend

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

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

Deimhnigh go bhfuil modúl stream sa build sula n-athraíonn tú aon rud; féadfaidh pacáiste dáileacháin é a scoilt isteach i modúl ar leith, agus cruthaíonn modúl atá ar iarraidh earráid chumraíochta seachas tollán. Cuir an bloc sa phríomhchomhthéacs cumraíochta, ní taobh istigh de http, agus cuir an backend fíor in ionad sheoladh an doiciméadaithe.

Caithfidh an dá bhealach agus an dá bhalla dóiteáin na datagramanna a cheadú: an cosán chuig an éisteoir agus an cosán ón proxy chuig an backend. Ní chruthaíonn éisteoir IPv6 cosán IPv4 ach an oiread, mar sin má tá IPv4 in úsáid fós ag roinnt cliant, is iontráil ar leith é an t-éisteoir sin lena thástáil féin. Seiceáil balla dóiteáin an backend féin ó sheoladh an proxy, ní ó do ríomhaire glúine.

Ní teorainneacha ama iarratais iad teorainneacha ama seisiúin

Coinníonn an proxy stream staid do sheisiún UDP agus caitheann sé amach í de réir a theorainneacha ama agus a shocruithe freagartha. Ní oireann teorainn ama ghearr a cóipeáladh ó athsheachadán DNS do VPN a bhfuil súil aige datagramanna a mhalartú ar feadh uaireanta, agus feictear an teip mar nasc a fhaigheann bás go ciúin seachas ceann a dhiúltaíonn tosú.

Léigh an proxy_timeout éifeachtach den imscaradh agus aon socrú comhairimh freagartha, ansin cuir i gcomparáid iad leis an iompar keepalive a úsáideann an VPN i ndáiríre. Is é dhá uimhir a scríobh daoine éagsúla i gcomhaid éagsúla gnáthstaid córais a oibríonn. Is é dhá uimhir nár cuireadh i gcomparáid riamh gnáthstaid córais a theipeann go hannamh. Scríobh an dá cheann sa taifead seirbhíse ionas go dtarlóidh an chomparáid uair amháin, faoi sholas an lae.

Cad a athraíonn an t-athsheachadadh, agus cad nach n-athraíonn sé

Ní chríochnaíonn an proxy stream cainéal rialaithe TLS OpenVPN ná ní athraíonn sé go HTTPS é. Fanann an backend mar sheirbhís VPN, agus fanann an gaol teastais idir an cliant agus an tseirbhís sin. Is obair an chliaint agus an fhreastalaí fós an fhéiniúlacht bheartaithe atá beartaithe don backend a chaomhnú.

Athraíonn proxying rialta an seoladh foinse a fheiceann an backend freisin. Taispeánfaidh logaí an proxy, agus déanfaidh aon riail rochtana bunaithe ar IP ar an bhfreastalaí VPN an seoladh sin a mheas seachas seoladh an chliaint. Is dearadh ródaithe agus pribhléidí ar leith é caomhnú foinse trédhearcach, ní rud a leanann as udp a chur le héisteoir. Pleanáil é sula scríobhtar polasaí a bhraitheann ar sheoladh an chliaint.

Deimhnigh ón gcliant, ní ón bport

Cruthaíonn seiceáil áitiúil go bhfuil an port UDP oscailte go bhfuil an t-éisteoir ann. Ní chruthaíonn sé gur féidir le cliant fíordheimhniú tríd nó leanúint ar aghaidh ag malartú tráchta. Críochnaigh fíor-nasc ó chliant ceadaithe, ansin deimhnigh go bhfanann an seisiún fada go leor le bheith tábhachtach.

Nuair a deir duine éigin nach féidir le Nginx UDP a dhéanamh mar gur oibrigh uirlis athsheachadta shimplí ina ionad, níl aon bhaint ag an dá fhíric lena chéile. Chruthaigh an uirlis go bhfreagraíonn an backend; ní dúirt sé aon rud faoin méid a thacaíonn an fronta leis. Is féidir an dá rud a bheith fíor, agus ní cumraíocht don imscaradh seo ach ceann acu.

Ailt ghaolmhara