Il-klijent tiegħek huwa ssettjat fuq UDP, is-server Nginx għandu blokk location li tipponta lejn il-port tal-VPN, u xejn ma jasal. Dan huwa mistenni: location HTTP ma jistax iġorr datagram UDP, tkun x'inhu l-isem tan-naħa ta' quddiem. Nginx jeħtieġ listener stream għal dan, u ladarba ċċaqlaq il-konfigurazzjoni hemmhekk, sett ieħor ta' dettalji jiddeċiedi jekk is-sessjoni tibqax ħajja.

Is-saff tal-proxy jiġi qabel l-indirizz

Il-modulu stream ta' Nginx jiproxyja TCP u UDP mingħajr ma janalizza HTTP. Il-modulu HTTP tiegħu jistenna linja tat-talba, headers u risposta, u xejn minn dan m'hemm f'datagram OpenVPN nattiv. L-għażla tas-saff hija għalhekk l-ewwel deċiżjoni, u hija indipendenti minn jekk il-listener huwiex IPv4 jew IPv6.

Konfigurazzjoni li tidher li taħdem ma' OpenVPN TCP ma tgħid xejn dwar il-każ UDP. It-trasport hawn huwa parti mill-protokoll, mhux dettall tad-deployment.

Il-listener u l-backend

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

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

Ivverifika li l-build jinkludi l-modulu stream qabel ma tedita xejn; pakkett tad-distribuzzjoni jista' jifirdu f'modulu separat, u modulu nieqes jagħti żball ta' konfigurazzjoni minflok tunnel. Poġġi l-blokk fil-kuntest tal-konfigurazzjoni prinċipali, mhux ġewwa http, u ibdel l-indirizz tad-dokumentazzjoni mal-backend veru.

Kemm iż-żewġ rotot kif ukoll iż-żewġ firewalls iridu jippermettu d-datagrammi: it-triq lejn il-listener u t-triq mill-proxy lejn il-backend. Listener IPv6 lanqas joħloq triq IPv4, allura jekk xi klijenti għadhom jużaw IPv4, dak il-listener huwa entrata separata bit-test tiegħu stess. Iċċekkja l-firewall tal-backend innifsu mill-indirizz tal-proxy, mhux mill-laptop tiegħek.

It-timeouts tas-sessjoni mhumiex timeouts tat-talba

Il-proxy stream iżomm l-istat għal sessjoni UDP u jarmih skont it-timeout u s-settings tar-risposta tiegħu. Timeout qasir ikkupjat minn relay DNS jaqbel ħażin ma' VPN li jistenna jbiddel datagrammi għal sigħat, u l-falliment jidher bħala konnessjoni li tmut bil-kwiet u mhux waħda li tirrifjuta tibda.

Aqra l-proxy_timeout effettiv tad-deployment u kwalunkwe setting tal-għadd tar-risposti, imbagħad qabbelhom mal-imġiba keepalive li l-VPN fil-fatt juża. Żewġ numri miktuba f'fajls differenti minn nies differenti huma l-istat normali ta' sistema li taħdem. Żewġ numri li qatt ma tqabblu huma l-istat normali ta' sistema intermittenti. Ikteb it-tnejn fir-rekord tas-servizz sabiex it-tqabbil iseħħ darba waħda, fid-dawl tal-jum.

X'jinbidel ir-relay, u x'ma jinbidilx

Il-proxy stream ma jtemmx il-kanal ta' kontroll TLS ta' OpenVPN u ma jibdilx f'HTTPS. Il-backend jibqa' s-servizz VPN, u r-relazzjoni taċ-ċertifikat tibqa' bejn il-klijent u dak is-servizz. Il-preservazzjoni tal-identità tal-backend intiża tibqa' xogħol il-klijent u s-server.

Il-proxy ordinarju jibdel ukoll l-indirizz tas-sors li jara l-backend. Il-logs se juru l-proxy, u kwalunkwe regola ta' aċċess ibbażata fuq l-IP fuq is-server VPN tevalwa dak l-indirizz minflok dak tal-klijent. Il-preservazzjoni trasparenti tas-sors hija disinn separat ta' routing u privileġġi, mhux xi ħaġa li tirriżulta miż-żieda ta' udp ma' listener. Ippjana għaliha qabel ma tinkiteb politika li tiddependi fuq l-indirizz tal-klijent.

Ivverifika mill-klijent, mhux mill-port

Verifika lokali li l-port UDP huwa miftuħ tipprova li l-listener jeżisti. Ma tipprovax li klijent jista' jawtentika minnu jew ikompli jbiddel it-traffiku. Tlesti konnessjoni vera minn klijent approvat, imbagħad ikkonferma li s-sessjoni tibqa' fis-seħħ biżżejjed biex tkun importanti.

Meta xi ħadd jirrapporta li Nginx ma jistax jagħmel UDP għax minflok ħadem għodda sempliċi ta' relay, iż-żewġ fatti mhumiex relatati. L-għodda wriet li l-backend iwieġeb; ma qalet xejn dwar dak li tappoġġja n-naħa ta' quddiem. It-tnejn jistgħu jkunu veri, u wieħed biss minnhom huwa konfigurazzjoni għal dan id-deployment.

Artikli relatati