Mijozingiz UDP ga sozlangan, Nginx serverida VPN portiga ishora qiluvchi location bloki bor, lekin hech narsa kelmaydi. Bu kutilgan holat: HTTP location UDP datagrammasini tashiy olmaydi, oldingi qism qanday nomlansa ham. Buning uchun Nginx ga stream tinglovchisi kerak, va konfiguratsiyani u yerga ko'chirgandan so'ng, sessiya omon qolishini detallarning ikkinchi to'plami hal qiladi.

Proksi qatlami manzildan oldin keladi

Nginx ning stream moduli HTTP ni tahlil qilmasdan TCP va UDP ni proksilaydi. Uning HTTP moduli so'rov satri, sarlavhalar va javobni kutadi, ularning hech biri mahalliy OpenVPN datagrammasida yo'q. Shuning uchun qatlam tanlash birinchi qaror bo'lib, u tinglovchining IPv4 yoki IPv6 ekanligiga bog'liq emas.

TCP OpenVPN bilan ishlayotgandek ko'rinadigan konfiguratsiya UDP holati haqida hech narsa demaydi. Bu yerda transport protokolning qismi, joylashtirishning detali emas.

Tinglovchi va backend

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

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

Biror narsani tahrirlashdan oldin build stream modulini o'z ichiga olishiga ishonch hosil qiling; distributiv paket uni alohida modulga ajratishi mumkin, va modul yo'q bo'lsa tunnel emas, konfiguratsiya xatosi chiqadi. Blokni asosiy konfiguratsiya kontekstiga qo'ying, http ichiga emas, va hujjat manzilini haqiqiy backend bilan almashtiring.

Ham ikkala yo'nalish, ham ikkala xavfsizlik devori datagrammalarga ruxsat berishi kerak: tinglovchigacha bo'lgan yo'l va proksidan backendgacha bo'lgan yo'l. IPv6 tinglovchisi ham IPv4 yo'lini yaratmaydi, shuning uchun ba'zi mijozlar hali ham IPv4 ishlatsa, bu tinglovchi o'z sinoviga ega alohida yozuv. Backendning o'z xavfsizlik devorini proksi manzilidan tekshiring, noutbukingizdan emas.

Sessiya taymautlari so'rov taymautlari emas

stream proksisi UDP sessiyasi uchun holatni saqlaydi va uni o'z taymauti hamda javob sozlamalariga muvofiq tashlaydi. DNS relayidan ko'chirilgan qisqa taymaut soatlab datagramma almashishni kutayotgan VPN ga yaramaydi, va nosozlik boshlashdan bosh tortgan ulanish emas, jimgina o'layotgan ulanish sifatida ko'rinadi.

Joylashtirishning amaldagi proxy_timeout qiymatini va javoblarni sanashning istalgan sozlamasini o'qing, so'ng ularni VPN haqiqatda ishlatadigan keepalive xatti-harakati bilan solishtiring. Turli odamlar turli fayllarga yozgan ikki raqam ishlayotgan tizimning odatiy holatidir. Hech qachon solishtirilmagan ikki raqam vaqti-vaqti bilan to'xtab qoladigan tizimning odatiy holatidir. Taqqoslash bir marta, kunduzgi yorug'likda bo'lishi uchun ikkalasini ham xizmat yozuviga yozing.

Relay nimani o'zgartiradi va nimani yo'q

stream proksisi OpenVPN ning TLS boshqaruv kanalini tugatmaydi va uni HTTPS ga aylantirmaydi. Backend VPN xizmati bo'lib qoladi, va sertifikat munosabati mijoz bilan o'sha xizmat o'rtasida qoladi. Mo'ljallangan backend identifikatsiyasini saqlash hali ham mijoz va serverning ishi.

Oddiy proksilash backend ko'radigan manba manzilini ham o'zgartiradi. Jurnallar proksini ko'rsatadi, va VPN serveridagi IP ga asoslangan har qanday kirish qoidasi mijoznikini emas, o'sha manzilni baholaydi. Manbani shaffof saqlash alohida marshrutlash va imtiyozlar dizaynidir, tinglovchiga udp qo'shishdan kelib chiqadigan narsa emas. Mijoz manziliga bog'liq siyosat yozilishidan oldin buni rejalashtiring.

Portdan emas, mijozdan tekshiring

UDP porti ochiqligini mahalliy tekshirish tinglovchi mavjudligini isbotlaydi. Bu mijozning u orqali autentifikatsiyadan o'tishi yoki trafik almashinuvini davom ettirishi mumkinligini isbotlamaydi. Tasdiqlangan mijozdan haqiqiy ulanishni tugating, so'ng sessiya mazmunli bo'ladigan darajada uzoq turishini tasdiqlang.

Kimdir Nginx UDP qila olmaydi deb xabar qilsa, chunki uning o'rniga oddiy relay vositasi ishlagan bo'lsa, bu ikki fakt bog'liq emas. Vosita backend javob berishini isbotladi; oldingi qism nimani qo'llab-quvvatlashi haqida hech narsa demadi. Ikkalasi ham to'g'ri bo'lishi mumkin, va ulardan faqat bittasi bu joylashtirish uchun konfiguratsiya.

O'xshash maqolalar