Kāpēc jūsu Docker VPN ostu kartējums nekad nesasniedz OpenVPN
Resursdatora osts, konteinera osts un transports ir trīs atsevišķi lēmumi. Izsekojiet vienu UDP mēģinājumu caur katru robežu, pirms pieskaraties sertifikātiem.
Jūsu konteiners var klausīties UDP 1195, kamēr resursdators publicē 1194, un tas ir pareizi, ja vien kartējums tā saka. Skaitļi veido tulkošanas tabulu: klients sastāda resursdatora ostu, Docker pārraksta galamērķi uz konteinera ostu, un OpenVPN atbild uz ostu, ko nosauc tā pati konfigurācija. Neatbilstība jebkurā no šiem posmiem rada klusu kļūmi, kas izskatās kā ugunsmūris. Sertifikāti un šifri atrodas tālāk un nevar to salabot.
Izsekojiet vienu paketi no klienta līdz procesam, pirms maināt kaut ko autentifikācijā.
Trīs skaitļi, viens savienojums
Šie trīs skaitļi ir attālais galamērķis, ko izmanto klients, publicētais kartējums resursdatorā un klausītājs konteinera iekšienē. Tiem nav jābūt vienādiem, bet jāveido ķēde. Vienādi skaitļi ir īpašs gadījums, kas nejauši ir visizplatītākais, tāpēc neatbilstību ir viegli vienreiz uzrakstīt un grūti vēlāk pamanīt.
Pirms atkļūdošanas pierakstiet ķēdi vienā rindā: klienta adrese un osts, resursdatora kartējums, konteinera klausītājs, transports. Ķēdes defekts izpaužas kā skaitlis, kas parādās divreiz ar dažādām vērtībām.
| Location | Example |
|---|---|
| Remote client destination | Host address, UDP 1194 |
| Published mapping | Host UDP 1194 to container UDP 1195 |
| Container listener | OpenVPN on UDP 1195 |
Ko īsā sintakse patiešām saka
Īsajā formā kreisā puse ir resursdatora osts un labā puse ir konteinera osts, un slīpsvītras sufikss izvēlas transportu. Ja sufiksu izlaižat, Docker kartējumu uzskata par TCP, tāpēc UDP klausītājs aiz kartējuma bez protokola ir klausītājs, kuram neviens netiek klāt. Šī noklusējuma vērtība ir dokumentēta un joprojām pārsteidz tos, kuri saskaņoja skaitļus un uzskatīja lietu par pabeigtu.
Garā forma skaidri fiksē piesaistes adresi un protokolu, kas ir tā vērts papildu rindām visam, kas vērsts pret tīklu. Nolasiet publicēto kartējumu atpakaļ, nevis uzticieties failam, kas to radīja.
ports:
- 1194:1195/udpKur pakete var apstāties
Pieprasījums var tikt nomests pirms Docker, Docker iekšienē vai pie klausītāja. Docker priekšā var būt mākoņa ugunsmūris vai maršrutētājs, kas pats veic pāradresāciju, un šai ierīcei ir vajadzīgs resursdatora puses osts un pareizais transports. Docker iekšienē kartējums uz nepareizo konteinera ostu pāradresē uz slēgtu ligzdu.
Tad klausītājs: OpenVPN konfigurācija nosauc ostu un protokolu, un klients, kas ierodas uz citu ostu konteinera iekšienē, nekur netiek. UDP pakalpojuma testēšana ar TCP neko nepierāda nevienā no šiem posmiem, tāpēc izmantojiet to transportu, ko izmantos klients.
Piesaistes adreses nosaka sasniedzamību
Publicēts kartējums, kas piesaistīts loopback, ir sasniedzams tikai no resursdatora, savukārt tas, kas piesaistīts visām saskarnēm, ir sasniedzams visur, kur ugunsmūris atļauj. Compose failā, kurā adrese ir izlaista, abi izskatās vienādi, un Docker noklusējums ir platākais.
Izlemiet, kādu atklāšanu izvietojums paredz, un pēc tam skaidri to pierakstiet. Iekšējs tests, kas savienojas pa loopback, un attāls klients, kas nevar savienoties, abi var būt precīzi viena un tā paša konteinera apraksti.
Lasiet darbības stāvokli
Pārbaudiet darbojošā konteinera faktisko kartējumu un klausītāju tā tīkla vārdu telpā. Compose fails var būt rediģēts pēc konteinera palaišanas, attēla metadati var deklarēt ostu to nepublicējot, un otrs konteiners var jau būt aizņēmis resursdatora ostu. Ostas deklarēšana attēlā nav tā publicēšana, un neviens no tiem nav tas pats, kas klausīšanās.
Trīs dažādi stāvokļi, trīs dažādas komandas, un tikai pēdējā attiecas uz OpenVPN.
Kad kartējums ir pareizs
Kad pakete sasniedz OpenVPN, tā žurnāls ir vieta, kur lasīt par TLS un autentifikāciju. Sertifikātu ģenerēšana no jauna, lai salabotu paketi, kas nekad nav pienākusi, ir veltīgs darbs, kas pievieno otru mainīgo. Turiet kartējuma piezīmi blakus klienta profilam, lai nākamā persona izlasītu vienu rindu, nevis no jauna atklātu visus trīs skaitļus. Viens paketes uztveršanas gadījums resursdatora pusē nosaka, kura no trim posmiem ir nepareiza, un tas maksā mazāk nekā sertifikāta atjaunošana.
Šeit aprakstītais gadījums ir publicēšana caur tiltu. Resursdatora tīkls un maršrutētas konteinera adreses izlaiž tulkojumu, tāpēc šajos risinājumos tie paši skaitļi nozīmē ko citu.