Miért nem ér el soha a Docker VPN-portmappingje az OpenVPN-hez
A gazdagép portja, a konténer portja és az átvitel három külön döntés. Kövess végig egy UDP-kísérletet minden határon, mielőtt a tanúsítványokhoz nyúlsz.
A konténered figyelhet az UDP 1195 porton, miközben a gazdagép az 1194-et publikálja, és ez helyes, amíg a mapping ezt mondja. A számok fordítótáblát alkotnak: a kliens a gazdagép portját hívja, a Docker átírja a célt a konténer portjára, és az OpenVPN azon a porton válaszol, amelyet a saját konfigurációja megnevez. Ha e láncszemek bármelyikén eltérés van, csendes hiba keletkezik, amely tűzfalmak látszik. A tanúsítványok és a titkosítások ezek után vannak, és nem tudják helyrehozni.
Kövess végig egy csomagot a klienstől a folyamatig, mielőtt bármit változtatnál a hitelesítésen.
Három szám, egy kapcsolat
A három szám a kliens által használt távoli cél, a gazdagépen publikált mapping és a konténeren belüli figyelő. Nem kell egyenlőnek lenniük, de láncot kell alkotniuk. Az egyenlő számok különleges eset, amely épp a leggyakoribb, ezért az eltérést könnyű egyszer megírni és később nehéz észrevenni.
Írd le a láncot egy sorban a hibakeresés előtt: kliens címe és portja, gazdagép-mapping, konténer-figyelő, átvitel. A lánc hibája olyan számként jelenik meg, amely kétszer szerepel különböző értékkel.
| Location | Example |
|---|---|
| Remote client destination | Host address, UDP 1194 |
| Published mapping | Host UDP 1194 to container UDP 1195 |
| Container listener | OpenVPN on UDP 1195 |
Mit mond valójában a rövid szintaxis
A rövid formában a bal oldal a gazdagép portja, a jobb oldal a konténer portja, és a perjeles utótag választja ki az átvitelt. Ha elhagyod az utótagot, a Docker TCP-ként kezeli a mappinget, így a protokoll nélküli mapping mögötti UDP-figyelő olyan figyelő, amelyet senki sem ér el. Ez az alapértelmezés dokumentált, és még mindig meglepi azokat, akik összehangolták a számokat, és késznek nyilvánították a dolgot.
A hosszú forma kifejezetten rögzíti a kötési címet és a protokollt, ami megéri a plusz sorokat mindennél, ami hálózat felé néz. Olvasd vissza a publikált mappinget ahelyett, hogy megbíznál az őt létrehozó fájlban.
ports:
- 1194:1195/udpHol állhat meg a csomag
Egy kérés elakadhat a Docker előtt, a Dockerben vagy a figyelőnél. A Docker előtt lehet felhő-tűzfal vagy saját továbbítást végző router, és annak az eszköznek a gazdagép felé eső portra és a megfelelő átvitelre van szüksége. A Dockerben a rossz konténerportra mutató mapping zárt socketre továbbít.
Aztán a figyelő: az OpenVPN konfigurációja portot és protokollt nevez meg, és a konténeren belül másikra érkező kliens semmit sem ér el. Egy UDP-szolgáltatás TCP-s tesztelése egyik szakaszban sem bizonyít semmit, ezért azt az átvitelt használd, amelyet a kliens is használni fog.
A kötési címek döntik el az elérhetőséget
A loopbackhez kötött publikált mapping csak a gazdagépről érhető el, míg a minden interfészhez kötött ott érhető el, ahol a tűzfal engedi. A cím nélküli Compose-fájlban a kettő azonosnak látszik, és a Docker alapértelmezése a széles.
Döntsd el, milyen kitettséget akar a telepítés, aztán írd le kifejezetten. Egy loopbacken át csatlakozó belső teszt és egy nem csatlakozó távoli kliens is lehet ugyanannak a konténernek pontos leírása.
Olvasd a futó állapotot
Vizsgáld meg a futó konténer tényleges mappingjét és a figyelőt a hálózati névtérben. A Compose-fájl szerkeszthető volt a konténer indítása után, a kép metaadatai deklarálhatnak portot anélkül, hogy publikálnák, és egy második konténer már birtokolhatja a gazdagép portját. Portot deklarálni egy képben nem ugyanaz, mint publikálni, és egyik sem ugyanaz, mint figyelni.
Három különböző állapot, három különböző parancs, és csak az utolsó érinti az OpenVPN-t.
Amikor a mapping helyes
Amint a csomag eléri az OpenVPN-t, a naplója az a hely, ahol a TLS-ről és a hitelesítésről olvashatsz. A soha meg nem érkezett csomag javításáért tanúsítványokat újragenerálni elvesztegetett munka, amely második változót ad hozzá. Tartsd a mapping jegyzetét a kliensprofil mellett, hogy a következő ember egy sort olvasson a három szám újrafelfedezése helyett. Egy csomagrögzítés a gazdagép oldalán eldönti, melyik a három láncszem közül a hibás, és kevesebbe kerül, mint egy tanúsítvány újragenerálása.
Az itt leírt eset a hídon keresztüli publikálás. A gazdagép hálózata és az útvonalazott konténer-címek kihagyják a fordítást, ezért ugyanazok a számok mást jelentenek azokban a tervekben.