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.

LocationExample
Remote client destinationHost address, UDP 1194
Published mappingHost UDP 1194 to container UDP 1195
Container listenerOpenVPN 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/udp

Kur 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.

Saistītie raksti