Таны контейнер UDP 1195 дээр сонсож, хост 1194-ийг нийтэлж болно, зураглал тэгж хэлж байгаа л бол энэ зөв. Тоонууд орчуулгын хүснэгт үүсгэдэг: клиент хостын портыг залгаж, Docker очих газрыг контейнерийн порт руу дахин бичнэ, OpenVPN өөрийн тохиргоонд нэрлэсэн порт дээр хариулна. Эдгээр холбоосын аль нэгэнд тохирохгүй байх нь галт хана мэт харагдах чимээгүй алдаа үүсгэдэг. Гэрчилгээ, шифрүүд үүнээс доогуур байрладаг бөгөөд үүнийг засаж чадахгүй.

Баталгаажуулалтын талаар ямар нэг зүйл өөрчлөхөөс өмнө нэг пакетыг клиентээс процесс хүртэл дагаж үзээрэй.

Гурван тоо, нэг холболт

Эдгээр гурван тоо нь клиентийн ашигладаг алсын очих газар, хост дээр нийтэлсэн зураглал, контейнерийн доторх сонсогч юм. Тэд тэнцүү байх шаардлагагүй, гэхдээ гинжилсэн байх ёстой. Тэнцүү тоо нь санамсаргүйгээр хамгийн түгээмэл тохиолдол тул тохирохгүй байдлыг нэг удаа бичихэд хялбар, дараа нь анзаарахад хэцүү байдаг.

Дибаг хийхээс өмнө гинжийг нэг мөрөнд бичээрэй: клиентийн хаяг ба порт, хостын зураглал, контейнерийн сонсогч, тээвэрлэлт. Гинжийн гэмтэл нь өөр утгатайгаар хоёр удаа гарч ирэх тоо хэлбэрээр илэрдэг.

LocationExample
Remote client destinationHost address, UDP 1194
Published mappingHost UDP 1194 to container UDP 1195
Container listenerOpenVPN on UDP 1195

Богино синтакс үнэндээ юу гэж хэлдэг вэ

Богино хэлбэрт зүүн тал нь хостын порт, баруун тал нь контейнерийн порт бөгөөд налуу зураастай дагавар нь тээвэрлэлтийг сонгоно. Дагаврыг орхивол Docker зураглалыг TCP гэж үздэг тул протоколгүй зураглалын ард байгаа UDP сонсогч нь хэн ч хүрч чадахгүй сонсогч болно. Энэ анхдагч нь баримтжуулсан бөгөөд тоонуудыг тааруулж, ажлаа дуусгасан гэж үзсэн хүмүүсийг одоо ч гайхшруулдаг.

Урт хэлбэр нь холбох хаяг болон протоколыг тодорхой тогтоодог бөгөөд сүлжээ рүү харсан бүх зүйлд нэмэлт мөрүүд үнэ цэнэтэй. Үүнийг үүсгэсэн файлд итгэхийн оронд нийтэлсэн зураглалыг дахин уншаарай.

ports:
  - 1194:1195/udp

Пакет хаана зогсож болох вэ

Хүсэлтийг Docker-оос өмнө, Docker дотор эсвэл сонсогч дээр хаяж болно. Docker-ын өмнө үүлэн галт хана эсвэл өөрөө дамжуулдаг чиглүүлэгч байж болох бөгөөд тэр төхөөрөмжид хост руу харсан порт болон зөв тээвэрлэлт хэрэгтэй. Docker дотор буруу контейнерийн порт руу зураглах нь хаалттай сокет руу дамжуулдаг.

Дараа нь сонсогч: OpenVPN-ийн тохиргоо порт болон протоколыг нэрлэдэг бөгөөд контейнерийн дотор өөр порт руу ирсэн клиент юунд ч хүрдэггүй. UDP үйлчилгээг TCP-ээр шалгах нь эдгээр үе шатын аль нэгэнд юу ч батлахгүй тул клиентийн ашиглах тээвэрлэлтийг ашиглаарай.

Холбох хаягууд хүрэх боломжийг тодорхойлдог

loopback-д холбосон нийтэлсэн зураглал зөвхөн хостод хүрэх боломжтой, харин бүх интерфейсэд холбосон нь галт хана зөвшөөрсөн газар бүрт хүрэх боломжтой. Хаягийг орхигдуулсан Compose файлд хоёулаа ижил харагдана, Docker-ын анхдагч нь өргөн нь юм.

Байршуулалт ямар илрүүлэлт хийхийг хүсч байгааг шийдээд дараа нь тодорхой бичээрэй. loopback-аар холбогддог дотоод шалгалт болон холбогдож чадахгүй алсын клиент хоёулаа нэг контейнерийн үнэн зөв тайлбар байж болно.

Ажиллаж буй төлөвийг уншаарай

Ажиллаж буй контейнерийн бодит зураглал болон түүний сүлжээний нэрийн орон зай дахь сонсогчийг шалгаарай. Контейнер эхэлсний дараа Compose файл засварлагдсан байж болно, дүрсийн мета өгөгдөл портыг нийтлэхгүйгээр зарлаж болно, хоёр дахь контейнер хостын портыг аль хэдийн эзэмшиж болно. Дүрс дотор порт зарлах нь түүнийг нийтлэхтэй ижил биш бөгөөд аль нь ч сонсохтой ижил биш.

Гурван өөр төлөв, гурван өөр команд, зөвхөн сүүлийнх нь OpenVPN-тэй холбоотой.

Зураглал зөв болсны дараа

Пакет OpenVPN-д хүрсний дараа түүний лог нь TLS болон баталгаажуулалтын тухай унших газар юм. Хэзээ ч ирээгүй пакетыг засахын тулд гэрчилгээг дахин үүсгэх нь хоёр дахь хувьсагч нэмдэг дэмий ажил. Зураглалын тэмдэглэлийг клиентийн профайлын дэргэд хадгаарай, ингэснээр дараагийн хүн гурван тоог дахин нээхийн оронд нэг мөр уншина. Хостын талд нэг удаа пакет барих нь гурван холбоосын алийг нь буруу болохыг тогтоодог бөгөөд энэ нь гэрчилгээ дахин үүсгэхээс хямд.

Энд тайлбарласан тохиолдол бол гүүрээр нийтлэх явдал юм. Хостын сүлжээ болон чиглүүлсэн контейнерийн хаягууд орчуулгыг алгасах тул тэдгээр загварт ижил тоо өөр утгатай.

Холбоотой нийтлэлүүд