Docker VPN port xaritangiz nega hech qachon OpenVPN ga yetib bormaydi
Xost porti, konteyner porti va transport uch xil qaror. Sertifikatlarga tegishdan oldin bitta UDP urinishini har bir chegaradan kuzatib chiqing.
Konteyneringiz UDP 1195 da tinglashi mumkin, xost esa 1194 ni e'lon qiladi, va xarita shunday deyishicha bu to'g'ri. Raqamlar tarjima jadvalini hosil qiladi: mijoz xost portiga murojaat qiladi, Docker manzilni konteyner portiga qayta yozadi, va OpenVPN o'z konfiguratsiyasi ko'rsatgan portda javob beradi. Bu halqalardan birortasidagi nomuvofiqlik xavfsizlik devoriga o'xshash jim nosozlikni keltirib chiqaradi. Sertifikatlar va shifrlar bundan keyin turadi va buni tuzata olmaydi.
Autentifikatsiya haqida biror narsani o'zgartirishdan oldin bitta paketni mijozdan jarayongacha kuzatib chiqing.
Uch raqam, bitta ulanish
Bu uch raqam — mijoz ishlatadigan uzoq manzil, xostdagi e'lon qilingan xarita va konteyner ichidagi tinglovchi. Ular teng bo'lishi shart emas, lekin zanjir hosil qilishi kerak. Teng raqamlar tasodifan eng keng tarqalgan alohida holat, shuning uchun nomuvofiqlikni bir marta yozish oson, keyin ko'rish qiyin.
Nosozlikni tuzatishdan oldin zanjirni bitta satrda yozing: mijoz manzili va porti, xost xaritasi, konteyner tinglovchisi, transport. Zanjirdagi nuqson turli qiymatlar bilan ikki marta ko'rinadigan raqam sifatida namoyon bo'ladi.
| Location | Example |
|---|---|
| Remote client destination | Host address, UDP 1194 |
| Published mapping | Host UDP 1194 to container UDP 1195 |
| Container listener | OpenVPN on UDP 1195 |
Qisqa sintaksis aslida nima deydi
Qisqa shaklda chap tomon xost porti, o'ng tomon konteyner porti, va qiya chiziqli qo'shimcha transportni tanlaydi. Qo'shimchani tashlab ketsangiz, Docker xaritani TCP deb qabul qiladi, shuning uchun protokolsiz xarita orqasidagi UDP tinglovchisi hech kim yetib bora olmaydigan tinglovchi bo'ladi. Bu standart hujjatlashtirilgan va raqamlarni moslashtirib ishni bitirdim deb o'ylaganlarni hanuz hayratda qoldiradi.
Uzun shakl bog'lash manzili va protokolni aniq belgilaydi, bu tarmoqqa qaragan har qanday narsa uchun qo'shimcha satrlarga arziydi. Xaritani yaratgan faylga ishonish o'rniga e'lon qilingan xaritani qayta o'qing.
ports:
- 1194:1195/udpPaket qayerda to'xtashi mumkin
So'rov Docker dan oldin, Docker ichida yoki tinglovchida tashlanishi mumkin. Docker oldida bulut xavfsizlik devori yoki o'zi yo'naltiruvchi router bo'lishi mumkin, va bu qurilmaga xost tomonga qaragan port va to'g'ri transport kerak. Docker ichida noto'g'ri konteyner portiga xarita yopiq soketga yo'naltiradi.
Keyin tinglovchi: OpenVPN konfiguratsiyasi port va protokolni nomlaydi, konteyner ichida boshqasiga kelgan mijoz hech narsaga yetmaydi. UDP xizmatini TCP bilan sinash bu bosqichlarning hech birida hech narsani isbotlamaydi, shuning uchun mijoz ishlatadigan transportni ishlating.
Bog'lash manzillari yetib borishni belgilaydi
loopback ga bog'langan e'lon qilingan xarita faqat xostdan yetib boriladi, barcha interfeyslarga bog'langan xarita esa xavfsizlik devori ruxsat bergan har yerda yetib boriladi. Manzilni tashlab ketgan Compose faylida ikkalasi bir xil ko'rinadi, va Docker standarti kengrog'i.
Joylashtirish qanday ochiqlikni nazarda tutishini hal qiling, keyin uni aniq yozing. loopback orqali ulanadigan ichki sinov va ulana olmaydigan uzoq mijoz ikkalasi ham bir xil konteynerning aniq tavsifi bo'lishi mumkin.
Ishlayotgan holatni o'qing
Ishlayotgan konteynerning haqiqiy xaritasini va uning tarmoq nom fazosidagi tinglovchini tekshiring. Compose fayli konteyner ishga tushgandan keyin tahrirlangan bo'lishi mumkin, image metama'lumotlari portni e'lon qilmasdan e'lon qilishi mumkin, va ikkinchi konteyner xost portini allaqachon egallagan bo'lishi mumkin. Imageda portni e'lon qilish uni e'lon qilish emas, va ikkalasi ham tinglashga teng emas.
Uch xil holat, uch xil buyruq, va faqat oxirgisi OpenVPN bilan bog'liq.
Xarita to'g'ri bo'lgandan keyin
Paket OpenVPN ga yetgach, uning jurnali TLS va autentifikatsiya haqida o'qiladigan joy. Hech qachon kelmagan paketni tuzatish uchun sertifikatlarni qayta generatsiya qilish ikkinchi o'zgaruvchini qo'shadigan behuda ish. Xarita eslatmasini mijoz profili yonida saqlang, shunda keyingi odam uch raqamni qaytadan kashf qilish o'rniga bitta satr o'qiydi. Xost tomonida bir marta paketni ushlash uch halqadan qaysi biri xato ekanini hal qiladi, va bu sertifikatni qayta generatsiya qilishdan arzon.
Bu yerda tasvirlangan holat ko'prik orqali e'lon qilishdir. Xost tarmog'i va yo'naltirilgan konteyner manzillari tarjimani chetlab o'tadi, shuning uchun o'sha loyihalarda bir xil raqamlar boshqa ma'noni bildiradi.