An saita abokin ciniki ɗinka zuwa UDP, sabar Nginx tana da toshe location da ke nuni ga tashar VPN, kuma babu abin da ke zuwa. Wannan abin tsammani ne: location na HTTP ba zai iya ɗaukar datagram na UDP ba, duk sunan da aka ba ɓangaren gaba. Nginx na buƙatar mai sauraron stream don wannan, kuma da zarar ka matsa saitin zuwa can, wani rukuni na biyu na bayanai ne ke yanke shawara ko zama zai ci gaba.

Matakin proxy yana zuwa kafin adireshin

Modul ɗin stream na Nginx yana yin proxy na TCP da UDP ba tare da nazarin HTTP ba. Modul ɗin HTTP ɗinsa yana tsammanin layin buƙata, kawuna da amsa, babu ɗaya daga cikinsu a cikin OpenVPN datagram na asali. Don haka zaɓin matakin shine yanke shawara ta farko, kuma bai dogara da ko mai sauraro IPv4 ne ko IPv6 ba.

Saitin da ya bayyana yana aiki da OpenVPN na TCP bai ce komai ba game da yanayin UDP. Sufuri a nan wani ɓangare ne na ka'ida, ba cikakken bayani na turawa ba.

Mai sauraro da backend

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

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

Tabbatar build ɗin ya ƙunshi modul ɗin stream kafin ka gyara wani abu; kunshin rarrabawa na iya raba shi zuwa wani modul daban, kuma rashin modul yana haifar da kuskuren saiti maimakon tunnel. Saka toshe a cikin babban mahallin saiti, ba cikin http ba, kuma maye gurbin adireshin takardu da ainihin backend.

Dukan hanyoyi biyu da dukan ganuwar wuta biyu dole su yarda da datagrams: hanyar zuwa mai sauraro da hanyar daga proxy zuwa backend. Mai sauraron IPv6 shima ba ya ƙirƙirar hanyar IPv4, don haka idan wasu abokan ciniki har yanzu suna amfani da IPv4, wannan mai sauraro wata shiga ce ta daban da nata gwajin. Duba nata gidan wuta na backend daga adireshin proxy, ba daga kwamfutar tafi da gidanka ba.

Lokacin zama ba lokacin buƙata ba ne

Proxy ɗin stream yana riƙe da yanayin zama na UDP kuma yana watsar da shi bisa ga lokacinsa da saitunan amsa. Lokaci kaɗan da aka kwafa daga relay ɗin DNS bai dace da VPN da ke tsammanin musayar datagrams na sa'o'i ba, kuma gazawar tana bayyana a matsayin haɗin da ke mutuwa shiru maimakon wanda ya ƙi farawa.

Karanta ingantaccen proxy_timeout na turawa da kowane saitin ƙidayar amsa, sannan ka kwatanta su da halin keepalive da VPN ke amfani da shi da gaske. Lambobi biyu da mutane daban-daban suka rubuta a fayiloli daban-daban shine yanayin al'ada na tsarin da ke aiki. Lambobi biyu waɗanda ba a taɓa kwatanta su ba shine yanayin al'ada na tsarin da ke katsewa. Rubuta duka biyun a cikin rikodin sabis don kwatancen ya faru sau ɗaya, cikin hasken rana.

Abin da relay ɗin ke canzawa, da abin da ba ya canzawa

Proxy ɗin stream ba ya ƙare tashar sarrafawa ta TLS ta OpenVPN kuma ba ya mai da ita HTTPS. Backend ɗin ya kasance sabis ɗin VPN, kuma dangantakar takardar shaida tana kasancewa tsakanin abokin ciniki da wannan sabis ɗin. Kiyaye ainihin backend ɗin da aka nufa aikin abokin ciniki ne da sabar har yanzu.

Proxy na yau da kullum yana canza adireshin tushen da backend ke gani. Logs za su nuna proxy ɗin, kuma duk wata ka'idar shiga ta IP a sabar VPN za ta auna wannan adireshin maimakon na abokin ciniki. Kiyaye tushe a bayyane wani tsari ne na dabaru da izini daban, ba wani abu da ya biyo daga ƙara udp ga mai sauraro ba. Shirya shi kafin a rubuta manufar da ta dogara da adireshin abokin ciniki.

Tabbatar daga abokin ciniki, ba daga tashar ba

Binciken gida cewa tashar UDP a buɗe yana tabbatar da akwai mai sauraro. Ba ya tabbatar da cewa abokin ciniki zai iya tabbatar da kansa ta hanyarsa ko ya ci gaba da musayar zirga-zirga. Kammala haɗi na gaske daga abokin ciniki da aka amince da shi, sannan ka tabbatar zaman ya daɗe isa ya zama mai mahimmanci.

Lokacin da wani ya ba da rahoton cewa Nginx ba zai iya UDP ba saboda wani kayan aikin relay mai sauƙi ya yi aiki a maimakonsa, waɗannan gaskiyar biyu ba su da alaƙa. Kayan aikin ya tabbatar backend yana amsawa; bai ce komai ba game da abin da ɓangaren gaba ke tallafawa. Duka biyu na iya zama gaskiya, kuma ɗaya ne kawai daga cikinsu saitin wannan turawa.

Labarai masu alaƙa