Overlay N2N bukan proxy: gambar kedua koneksi
Overlay bisa mencapai peer sementara browser masih menerima penolakan. Itu listener yang hilang atau bind yang salah, bukan kegagalan routing di N2N.
Firefox mengarah ke 127.0.0.1:8000, edge N2N aktif, peer menjawab ping di alamat overlay-nya, dan browser masih melaporkan bahwa proxy menolak koneksi. Tidak ada yang kontradiktif dalam rantai itu. Overlay memberikan host alamat yang dapat dijangkau di jaringan privat; overlay tidak membuat proses yang berbicara protokol proxy. Browser tidak meminta rute ke peer. Browser meminta listener lokal.
Dua koneksi tertukar di sini, dan menggambarnya secara terpisah menjernihkan sebagian besar kebingungan dalam satu menit.
Dua koneksi, bukan satu
Koneksi pertama berjalan dari browser ke apa pun yang mendengarkan di port loopback. Itu socket lokal, dan jika tidak ada yang memilikinya, koneksi ditolak sebelum satu paket pun mencapai N2N. Yang kedua berjalan dari proses proxy ke origin yang diambilnya. Jalur itu dipilih oleh tabel routing host proxy, dan bisa berupa uplink biasa, tunnel lain, atau rute kebijakan yang tidak ada hubungannya dengan overlay.
Melakukan ping ke peer membuktikan overlay dapat mengirimkan paket antar alamat edge. Itu tidak membuktikan apa pun tentang listener di port 8000, dan tidak membuktikan apakah host itu dapat mencapai origin. Kegagalan terpisah, perbaikan terpisah.
Di mana listener harus berada
Proxy yang di-bind ke 127.0.0.1 sengaja bersifat lokal: proxy ini hanya menerima koneksi dari mesin tempat ia berjalan. Itu default yang benar untuk proxy pribadi dan bentuk yang salah untuk membagikannya lewat overlay. Melayani peer overlay memerlukan alamat bind di antarmuka overlay atau komponen penerusan yang mengakhiri koneksi loopback dan meneruskannya. Bagaimanapun, kebijakan eksplisit harus memutuskan sumber overlay mana yang boleh menggunakan layanan, karena proxy terbuka di jaringan bersama adalah undangan.
Periksa bind sebenarnya dengan daftar socket, bukan file konfigurasi. Daemon yang dimulai sebelum overlay aktif bisa masih terikat ke alamat yang sudah tidak ada.
localhost bukan peer
Di kolom proxy browser, localhost menunjuk ke mesin browser itu sendiri. Itu bukan edge, bukan supernode, dan bukan host di ujung jauh tunnel. Jika proxy berjalan di peer lain, masukkan alamat overlay yang dapat dijangkau dan port peer itu ke kolom, lalu pastikan listener menerima koneksi dari alamat edge Anda.
Supernode membantu edge saling menemukan; supernode bukan layanan proxy. Memperlakukan alamat supernode sebagai endpoint proxy menghasilkan penolakan yang sama dengan tambahan satu lompatan kebingungan.
Rute tidak dapat melakukan handshake
Bahkan dengan alamat yang benar, routing bukanlah proxying. Koneksi proxy HTTP dimulai dengan permintaan CONNECT atau baris permintaan bentuk absolut, dan proxy SOCKS dimulai dengan negosiasi versi dan metode. Router atau overlay meneruskan byte; router tidak mengurai pesan itu atau membuka koneksi berikutnya untuk Anda. Itulah sebabnya rute yang berfungsi untuk ping dan SSH masih bisa gagal untuk proxy browser: browser membutuhkan proses yang bekerja sama, bukan sekadar keterjangkauan.
Jika tujuannya hanya menjangkau layanan di peer, hapus pengaturan proxy dan gunakan alamat overlay layanan secara langsung.
Uji batasannya secara berurutan
Pastikan alamat overlay menjawab, lalu pastikan listener ada di port yang dikonfigurasi dan catat alamat bind-nya. Buat satu permintaan terkontrol dan baca log proxy, agar Anda tahu apakah kegagalannya ada di listener atau di pengambilan berikutnya. Terakhir, periksa rute host proxy dan kebijakan DNS untuk origin.
Proyek N2N mendokumentasikan edge dan supernode sebagai komponen overlay. Proyek ini tidak mengubah edge menjadi proxy aplikasi, dan tidak ada konfigurasi routing yang menambahkan penangan protokol yang tidak dimulai siapa pun.