Kontena anda boleh mendengar pada UDP 1195 sementara hos menerbitkan 1194, dan itu betul selagi pemetaan menyatakannya. Nombor-nombor itu membentuk jadual terjemahan: klien mendail port hos, Docker menulis semula destinasi ke port kontena, dan OpenVPN menjawab pada port yang dinamakan oleh konfigurasinya sendiri. Ketidakpadanan pada mana-mana pautan itu menghasilkan kegagalan senyap yang kelihatan seperti firewall. Sijil dan sifer berada di hilir dan tidak dapat membaikinya.

Ikuti satu paket daripada klien ke proses sebelum mengubah apa-apa tentang pengesahan.

Tiga nombor, satu sambungan

Ketiga-tiga nombor itu ialah destinasi jauh yang digunakan klien, pemetaan yang diterbitkan pada hos, dan pendengar di dalam kontena. Ia tidak perlu sama, tetapi ia mesti membentuk rantaian. Nombor yang sama ialah kes khas yang kebetulan paling biasa, sebab itu ketidakpadanan mudah ditulis sekali dan sukar dilihat kemudian.

Tulis rantaian itu dalam satu baris sebelum menyahpepijat: alamat dan port klien, pemetaan hos, pendengar kontena, pengangkutan. Kecacatan dalam rantaian muncul sebagai nombor yang muncul dua kali dengan nilai berbeza.

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

Apa yang sebenarnya dikatakan sintaks pendek

Dalam bentuk pendek, sebelah kiri ialah port hos dan sebelah kanan ialah port kontena, dan akhiran garis miring memilih pengangkutan. Jika akhiran itu ditinggalkan, Docker menganggap pemetaan sebagai TCP, jadi pendengar UDP di belakang pemetaan tanpa protokol ialah pendengar yang tiada siapa dapat capai. Lalai itu didokumenkan dan masih mengejutkan mereka yang telah memadankan nombor dan menganggapnya selesai.

Bentuk panjang menetapkan alamat ikatan dan protokol secara eksplisit, yang berbaloi dengan baris tambahan pada apa-apa yang menghadap rangkaian. Baca semula pemetaan yang diterbitkan daripada mempercayai fail yang menghasilkannya.

ports:
  - 1194:1195/udp

Di mana paket boleh berhenti

Permintaan boleh digugurkan sebelum Docker, dalam Docker, atau di pendengar. Di hadapan Docker mungkin ada firewall awan atau penghala yang melakukan pengforwardan sendiri, dan peranti itu memerlukan port yang menghadap hos dan pengangkutan yang betul. Di dalam Docker, pemetaan ke port kontena yang salah memajukan ke soket tertutup.

Kemudian pendengar: konfigurasi OpenVPN menamakan port dan protokol, dan klien yang tiba pada port lain di dalam kontena tidak mencapai apa-apa. Menguji perkhidmatan UDP dengan TCP tidak membuktikan apa-apa pada mana-mana peringkat ini, jadi gunakan pengangkutan yang akan digunakan klien.

Alamat ikatan menentukan kebolehcapaian

Pemetaan terbit yang terikat pada loopback hanya boleh dicapai dari hos, manakala yang terikat pada semua antara muka boleh dicapai di mana-mana firewall membenarkan. Kedua-duanya kelihatan sama dalam fail Compose yang meninggalkan alamat, dan lalai Docker ialah yang luas.

Tentukan pendedahan mana yang dimaksudkan oleh penggunaan, kemudian tulisnya secara eksplisit. Ujian dalaman yang bersambung melalui loopback dan klien jauh yang tidak dapat bersambung kedua-duanya boleh menjadi penerangan tepat bagi kontena yang sama.

Baca keadaan yang sedang berjalan

Periksa pemetaan berkesan kontena yang berjalan dan pendengar dalam ruang nama rangkaiannya. Fail Compose mungkin telah diedit selepas kontena dimulakan, metadata imej mungkin mengisytiharkan port tanpa menerbitkannya, dan kontena kedua mungkin sudah memegang port hos. Mengisytiharkan port dalam imej bukan menerbitkannya, dan kedua-duanya bukan sama dengan mendengar.

Tiga keadaan berbeza, tiga arahan berbeza, dan hanya yang terakhir melibatkan OpenVPN.

Selepas pemetaan betul

Sebaik sahaja paket sampai ke OpenVPN, lognya ialah tempat membaca tentang TLS dan pengesahan. Menjana semula sijil untuk membaiki paket yang tidak pernah tiba ialah kerja sia-sia yang menambah pemboleh ubah kedua. Simpan nota pemetaan di sebelah profil klien supaya orang seterusnya membaca satu baris daripada menemui semula ketiga-tiga nombor. Satu tangkapan paket di sebelah hos menyelesaikan pautan mana antara tiga yang salah, dan kosnya lebih rendah daripada penjanaan semula sijil.

Penerbitan jambatan ialah kes yang diterangkan di sini. Rangkaian hos dan alamat kontena yang dihalakan melangkau terjemahan, jadi nombor yang sama bermaksud sesuatu yang lain dalam reka bentuk itu.

Artikel berkaitan