Lewati ke konten

Teruskan port dari terminal

Server yang Anda jalankan di terminal sebuah percakapan hanya dipublikasikan untuk space itu. Panel port mendeteksi pendengar yang dijalankan aplikasi ini di sana, memetakannya, dan memberi Anda alamat untuk setiap tempat yang mungkin Anda gunakan untuk menjangkaunya. Dua space dapat sama-sama mendengarkan di 5173; peta keduanya tidak pernah tercampur.

Tidak ada apa pun di sini yang membuka mesinnya: setiap jalur dibuat oleh server, atas permintaan, dan mati bersama terminal atau rig.

  1. Buka Terminal (VM) percakapan atau shell host (di sebuah space atau di halaman PR).
  2. Jalankan server Anda — pnpm dev, python -m http.server 8000, apa saja.
  3. Dalam beberapa detik, ikon plug di sudut kanan atas terminal akan mendapat titik. Klik ikon itu.

Panel ini mencantumkan setiap port yang mendengarkan beserta proses pemiliknya, dalam bentuk 3000 → 3000: port yang diikat proses di sebelah kiri, port yang dijawabnya secara lokal di sebelah kanan (nomor yang sama bila port itu bebas di mesin Anda). Setiap baris juga menyatakan apakah localhost desktop, Browser (VM), dan Android dapat menjangkaunya.

Penemuan dibatasi: Terminal (VM) di-polling di dalam sistem tamu itu; shell host di-polling dari pohon proses PTY sesi tersebut. Space lain, dan proses lain di Mac Anda, tidak dicantumkan.

Port baru di terminal ini diteruskan secara otomatis. Matikan Teruskan port otomatis di panel yang sama jika Anda hanya ingin port yang Anda tambahkan sendiri.

Gunakan Salin URL lokal pada baris itu — http://localhost:3000. Penerusan ini hanya mendengarkan di loopback, sehingga tidak ada hal lain di jaringan Anda yang dapat melihatnya.

Jika dua space sama-sama mengekspos 5173 milik sistem tamu dan mesin Anda sudah memakai 127.0.0.1:5173, space kedua tetap memakai 5173 sistem tamu dan mendapat port lokal efemeral. Salin URL memakai nomor di sebelah kanan.

Pada shell host, prosesnya sudah ada di mesin Anda. Memetakan port lokal yang sama tidak melakukan apa pun; memilih port lokal yang berbeda akan mengikat proxy loopback ke port yang Anda pilih.

--host (atau mengikat 0.0.0.0) tidak membuat Browser (VM) terkurung dapat menjangkau server di Mac. Sistem tamu punya loopback sendiri; server menanam tunnel ke sistem tamu itu saat tab Browser berada di space yang sama.

Buka browser terkurung di percakapan yang sama. Ketik localhost:<left-hand port> — nomor yang diikat proses. Pemetaan ulang (5173 → 3000) juga menjawab di nomor sebelah kanan di browser itu, sehingga Salin URL berfungsi di sana juga. browser_use milik agen dapat menavigasi ke salah satunya. Server di Space A tidak pernah muncul sebagai localhost:5173 di browser Space B.

Gunakan localhost, bukan IP LAN dan bukan --host. Sistem tamu punya loopback sendiri; tunnel mendengarkan di sana pada IPv4 maupun IPv6.

Halaman yang membuka banyak koneksi sekaligus (puluhan aset, soket live reload) berbagi tunnel yang sama itu. Browser (VM) memultipleksnya ke satu exec persisten, sehingga semburan permintaan tidak menjadi satu spawn proses per koneksi dan tidak habis waktu sebagai halaman putih.

Di dalam satu space, penerusan Terminal (VM) menang atas shell host pada nomor yang sama. Di antara space tidak ada prioritas — keduanya peta yang terpisah.

Buka tab Android space tersebut. localhost:<port> milik emulator lalu di-reverse ke port yang dipublikasikan space ini (adb reverse). Satu emulator bersifat global perangkat: menempelkan Space B mengalihkan target :5173 ke B dan melepas milik A. Tutup tabnya dan reverse yang ditanam rig ini akan dihapus.

Simulator iOS sudah merupakan Mac itu sendiri — tanpa reverse. iPhone fisik tetap memerlukan berbagi LAN.

⋯ → Bagikan di jaringan lokal mempublikasikan port di <server-ip>:<random port> — berguna untuk membuka halaman itu di ponsel Anda, atau saat server berjalan di mesin lain.

  • Port LAN selalu ditetapkan oleh OS, bukan nomor sistem tamu, sehingga paparannya adalah alamat yang disengaja dan terlihat, bukan alamat yang bisa ditebak.
  • Port itu tetap privat (hanya loopback) sampai Anda mengaktifkannya, dan ⋯ → Hanya lokal menariknya kembali dari jaringan.

⋯ → Atur domain browser (.test) menetapkan domain dev seperti myapp.test untuk port itu. Di dalam Browser (VM), https://myapp.test lalu memuat server Anda dengan gembok yang sah — berguna untuk apa pun yang berperilaku berbeda pada origin bernama atau konteks aman (cookie, service worker, callback OAuth).

  • Domain harus berakhiran .test atau .localhost — dua TLD yang dicadangkan untuk pengembangan, sehingga nama dev tidak akan pernah membayangi situs sungguhan.
  • Nama domain unik di server; nomor port tidak. Dua space boleh sama-sama memakai 5173, tetapi keduanya tidak dapat sama-sama mengklaim myapp.test.
  • Sertifikatnya berasal dari otoritas lokal yang dicetak di server Anda saat pertama kali dibutuhkan. Kuncinya berada di bawah direktori data server dan tidak pernah masuk ke sistem tamu mana pun; browser terkurung hanya memercayai kunci yang satu itu, sehingga TLS ke internet nyata tetap tervalidasi seperti biasa.
  • Domain itu hanya di-resolve di dalam Browser (VM). Browser Anda sendiri di host justru memakai localhost:<port>.
  • http://myapp.test biasa juga berfungsi.

Tambah port di bagian bawah panel memetakan port sebelum (atau terlepas dari) ada yang mendengarkan di port itu. Penerusan manual mempertahankan alamatnya saat server Anda dimulai ulang — barisnya menampilkan tidak mendengarkan sampai server kembali — sedangkan penerusan otomatis menghilang ketika portnya hilang. Pada shell host Anda juga dapat menetapkan port lokal yang berbeda.

Port dikunci berdasarkan ruang kerja dan space. Peta port milik hypervisor ditetapkan saat mesin boot, sehingga Terminal (VM) menumpang dua kanal sempit yang dikendalikan server: satu jalur masuk yang sudah dibuat sebelumnya ke sistem tamu yang menolak terhubung ke port yang tidak benar-benar didengarkan sistem tamu, dan tunnel balik yang dijaga server tetap terbuka untuk Browser (VM) dan Android. Shell host tidak pernah memindai seluruh mesin. Tidak ada pendengar yang pernah dibuat di dalam sistem tamu yang tidak diletakkan server di sana, dan semuanya dibongkar bersama terminal atau rig. Desainnya dijelaskan di Rigs dan lingkungan terisolasi; port yang dicadangkan dan aturan domain yang tepat ada di referensi rigs.