Taip nama hos dalam pelayar dan skema menentukan port destinasi: 80 untuk http, 443 untuk https. Tiada apa-apa dalam jawapan DNS yang mengatasi itu, dan tiada peraturan pemajuan pada mesin anda boleh mencipta pendengar di tepi penyedia. Apabila penyedia VPN memberi anda port awam tinggi seperti 45000, URL eksplisit berfungsi dan yang bersih tidak. Jurang itu terletak pada titik masuk, bukan di dalam aplikasi.

Telusuri laluan dari pelayar ke proses sekali, dan tiga pilihan penerbitan berhenti kelihatan misteri.

Lihat ke mana permintaan sebenarnya pergi

Pelayar menyelesaikan nama kepada alamat, kemudian menyambung ke alamat itu pada port lalai skema melainkan URL menyebut yang lain. Tepi penyedia anda menentukan apa yang berlaku kepada sambungan yang tiba. Jika jadual pemajuannya hanya memetakan 45000 ke alamat dalaman anda, sambungan ke 80 tiada tempat untuk pergi dan ditolak atau digugurkan sebelum mesin anda terlibat.

Penolakan itu berlaku di tepi, sebab itulah log aplikasi anda tidak menunjukkan apa-apa. Ketiadaan log ialah bukti tentang di mana paket berhenti, bukan bukti bahawa aplikasi itu rosak.

Mengapa peraturan tempatan tidak dapat membaiki tepi

Lencongan atau peraturan DNAT pada hos aplikasi bertindak ke atas paket yang sudah tiba. Paket yang dihantar ke port 80 di penyedia tidak pernah tiba, jadi peraturan itu tidak pernah dinilai. Ini jam yang paling kerap terbuang dalam seluruh masalah ini.

DNS juga tidak boleh membawa port. spesifikasi HTTP mentakrifkan nilai lalai skema, dan rekod A atau AAAA mengembalikan alamat manakala CNAME mengembalikan nama lain. Pelayar masih menggabungkan port skema, jadi hanya port eksplisit dalam URL mengubah destinasi.

Pilihan satu: kekalkan port eksplisit

Selalunya jawapan yang betul ialah yang tidak menyerlah. Terbitkan URL penuh dengan port, tamatkan TLS pada entri yang menyokongnya, dan pastikan setiap pautan yang dijana mengekalkan asal yang sama. Untuk audiens kecil yang terkawal ini sudah lengkap, dan ia tidak memerlukan kos selain nombor port yang kelihatan.

Semak lencongan dan skop kuki semasa anda di sana, kerana backend yang menulis nama hosnya sendiri ke dalam pengepala Location membatalkan susunan itu.

Pilihan dua: dapatkan entri port lalai yang sebenar

Sesetengah penyedia dan susunan pengehosan memajukan 80 dan 443 pada alamat dikongsi atau khusus sebagai perkhidmatan yang didokumenkan. Tanya apa yang sebenarnya disertakan daripada menganggap bahawa alamat keluar awam bermaksud port masuk sewenang-wenangnya. Alamat keluar khusus tidak berkata apa-apa tentang pemajuan masuk.

Sahkan pemilikan dan ketersediaan secara bertulis, termasuk apa yang berlaku kepada entri apabila terowong menyambung semula dengan alamat berbeza. Entri yang bergerak bersama terowong menghasilkan gangguan yang kelihatan seperti kegagalan DNS.

Pilihan tiga: letakkan frontend di hadapan

Proksi terbalik pada alamat yang boleh dicapai boleh mendengar pada 443 dan menamatkan TLS dan membuka sambungan berasingan ke backend melalui VPN. Pelawat melihat nama dan port lalai frontend, manakala frontend bercakap dengan port tinggi backend bagi pihak anda. Ini berfungsi kerana ia mengubah seni bina daripada bertarung dengan titik masuk. Backend kemudian tidak memerlukan sebarang port masuk di internet awam.

Ia juga mengubah apa yang anda kendalikan. Frontend memiliki TLS awam, dasar akses, log dan ketersediaan, dan ia mesti mengehadkan pemilihan backend kepada perkhidmatan yang dimaksudkan. Jika lonjakan dari frontend ke backend menggunakan HTTPS, kekalkan pengesahan sijil pada lonjakan itu.

Kekalkan satu asal

Nama hos awam, skema dan port frontend membentuk asal yang digunakan pelawat, jadi konfigurasikan URL luaran aplikasi, lencongan dan kuki untuk asal itu. Hantar hos asal dan skema yang dimajukan jika aplikasi membina pautan mutlak. Respons yang memantulkan pengguna ke nama peribadi atau port tinggi membatalkan entri bersih yang baru anda bina.

Kemudian putuskan dengan mengambil kira audiens. URL pendek boleh mewajarkan frontend terurus, dan tidak berbaloi untuk menukar perkhidmatan peribadi khusus VPN menjadi awam secara tidak sengaja.

Artikel berkaitan