127.0.0.1:49342: Alamat IP Localhost, Port, dan Panduan Debug

127.0.0.1:49342: Alamat IP Localhost, Port, dan Panduan Debug

Mungkin Anda mengklik sesuatu. Mungkin jendela terminal muncul sekilas. Mungkin sebuah file log menarik perhatian Anda. Apa pun itu, muncullah string ini: `127.0.0.1:49342`. Browser Anda langsung menuju halaman yang tidak ada di internet. Alat pengembang menandainya. Jendela pop-up login muncul sebentar lalu menghilang. Tidak ada yang terlihat rusak. Namun, tetap saja ada sesuatu yang terasa aneh.

Tenang, tidak ada yang rusak. Deretan kecil itu sebenarnya adalah salah satu hal paling umum yang akan Anda lihat saat menggunakan komputer, dan begitu Anda memahami kedua bagiannya, setiap `127.0.0.1:` di masa mendatang akan terbaca seperti kalimat biasa. Alamat IP di sebelah kiri adalah loopback universal, sama di setiap mesin yang Anda gunakan. Port di sebelah kanan hanyalah port spesifik yang diberikan sistem operasi ke layanan lokal, aplikasi web, atau layanan jaringan tertentu untuk percakapan singkat antara program yang berjalan di perangkat keras Anda sendiri. Tidak ada satu pun yang menyentuh jaringan eksternal. Semuanya tetap berada di satu kotak di depan Anda.

Jadi, inilah rencananya. Satu penjelasan ditambah satu panduan pemecahan masalah, digabungkan menjadi satu. Dari mana alamat tersebut berasal secara historis. Apa sebenarnya yang diwakili oleh nomor port. Mengapa 49342, khususnya, bukanlah sesuatu yang istimewa sama sekali. Kapan pengguna Windows melihatnya dibandingkan dengan pengguna Linux atau macOS. Seperti apa gambaran keamanannya di tahun 2026 secara spesifik. Bagaimana pengembang kripto menggunakan pola yang sama dalam lingkungan pengembangan Web3 dengan Hardhat, Anvil, Ganache, dan Bitcoin Core. Bacalah dari awal hingga akhir, atau langsung lompat ke bagian mana pun yang sesuai dengan apa yang membuat Anda mencari.

Apa Itu 127.0.0.1: Penjelasan Alamat Loopback

Mari kita bahas bagian IP-nya terlebih dahulu. 127.0.0.1 lebih tua daripada sebagian besar yang Anda gunakan secara online saat ini. Pada Oktober 1989, jauh sebelum ada web komersial, IETF mengeluarkan RFC 1122. Di dalam Bagian 3.2.1.3 terdapat salah satu aturan jaringan paling tegas yang pernah ditulis: "Alamat dengan bentuk ini TIDAK BOLEH muncul di luar host." Sistem operasi ponsel Anda memberlakukannya hingga saat ini. Router rumah Anda juga. Setiap sistem operasi yang dirilis sejak saat itu diam-diam terus menghormatinya.

Skala membuat orang bingung. Aturan itu berlaku untuk 16.777.216 alamat. Semuanya. Enam belas juta alamat disimpan sebagai cadangan sehingga salah satunya, 127.0.0.1, dapat diandalkan untuk berarti "mesin ini, tepat di sini" di mana pun di Bumi. Agak boros? Ya, keluhan telah terdengar selama beberapa dekade. Kumpulan IPv4 global IANA menjadi nol pada 3 Februari 2011. ARIN mencapai nol pada 24 September 2015. RIPE NCC memberikan blok /22 terakhirnya pada 25 November 2019. Sebuah draf IETF yang disebut `draft-schoen-intarea-unicast-127` telah beredar yang menunjukkan bahwa sebagian besar ruang 127 sebenarnya dapat kembali ke penggunaan unicast. Tidak ada yang mau menyentuhnya. Terlalu banyak perangkat lunak yang ada mengasumsikan 127 tidak akan pernah berubah.

Satu hal yang selalu mengejutkan pendatang baru: paket tersebut secara harfiah tidak pernah mencapai kartu jaringan fisik. Bahkan tidak mendekati. Paket yang ditujukan ke tujuan 127.xxx mana pun ditangkap oleh tumpukan TCP/IP OS pada lapisan 3 dan diteruskan melalui antarmuka virtual (Linux dan macOS menyebutnya `lo`). Kernel masih melakukan pekerjaan nyata — membangun segmen TCP, menjalankan checksum, menelusuri jalur penerimaan. Overhead nyata, bukan nol. Tetapi tidak ada switch di LAN Anda yang pernah melihat lalu lintas itu. Tidak ada router yang melihatnya. Tidak ada tulang punggung internet yang melihatnya.

Kata "localhost" hanyalah alias yang mudah dipahami manusia yang dipetakan dalam file teks biasa yang dapat Anda buka sekarang juga. Di Linux dan macOS: `/etc/hosts`. Di Windows: `C:\Windows\System32\drivers\etc\hosts`. Resolver akan mengakses file tersebut sebelum meminta server DNS mana pun, itulah sebabnya `localhost` dapat diresolusi dengan baik di pesawat dengan wifi mati. IPv6 menghadirkan versinya sendiri, `::1/128`, yang didefinisikan oleh RFC 4291 pada Februari 2006. Salah satu masalah klasik di hari Jumat: browser modern pertama-tama menyelesaikan `localhost` sebagai `::1`, tetapi aplikasi Python hanya mengikat 127.0.0.1. Soket yang berbeda, tidak ada persimpangan, kegagalan tanpa pemberitahuan. Mengganggu alur kerja seseorang setiap minggu di suatu tempat.

Apa itu 127.0.0.1:49342?

Mengapa Anda Melihat Port 49342: Port Sementara dan Rentang IANA

Sekarang bagian kedua. Nomor port lebih membingungkan orang daripada IP, dan itu ada alasannya. Registri port nama layanan dan protokol transport IANA membagi ruang 16-bit penuh (0 hingga 65535) menjadi tiga kelompok, dan kelompok mana yang ditempati oleh 49342 adalah inti ceritanya.

Jangkauan Angka Tujuan
Sistem (terkenal) 0–1023 Layanan standar (HTTP 80, HTTPS 443, SSH 22, SMTP 25). Hak akses admin diperlukan untuk melakukan binding.
Pengguna (terdaftar) 1024–49151 Layanan yang diberikan kepada vendor (PostgreSQL 5432, MySQL 3306, RDP 3389)
Dinamis / Pribadi / Sementara 49152–65535 Alokasi terbatas; reservasi layanan tidak diperbolehkan.

Port 49342 berada di dalam rentang dinamis. Tidak ada yang "terdaftar" di port ini, dan tidak akan pernah ada, karena IANA menolak untuk menetapkan layanan dalam rentang ini agar sistem operasi dapat dengan bebas memberikan nomor port di sini untuk penggunaan sementara. Port sementara adalah port yang ditetapkan secara dinamis yang tidak diminta oleh aplikasi dengan nomor port tertentu. Aplikasi tersebut berkata kepada sistem operasi, "berikan saya port bebas apa pun, saya hanya membutuhkannya untuk sesi ini." Sistem operasi mengembalikan 49342, aplikasi mengikat soket pendengar, dan alur apa pun yang membutuhkan kombinasi alamat dan port berumur pendek mendapatkannya. Port 49342 sering digunakan untuk server lokal sementara menggunakan pengikatan ad-hoc semacam ini.

Rentang sementara default sebenarnya bervariasi tergantung pada sistem operasi.

Sistem Operasi Rentang sementara default Sumber
Linux 32768–60999 `/proc/sys/net/ipv4/ip_local_port_range`, dokumentasi kernel
Windows (Vista / Server 2008+) 49152–65535 Microsoft Learn
macOS (Darwin / BSD) 49152–65535 `sysctl net.inet.ip.portrange.first/hifirst`
FreeBSD 49152–65535 sysctl defaults

Pada Windows atau macOS, 49342 berada tepat di dalam rentang default. Alokator OS hampir pasti memberikannya. Pada Linux ceritanya berbeda — 49342 berada di atas rentang default 32768 hingga 60999, sehingga dipilih oleh aplikasi yang meminta kernel untuk `bind(('127.0.0.1', 0))` dan mendapatkan port yang tersedia. RFC 6056, dari IETF pada Januari 2011, memberi tahu stack untuk mengacak pemilihan port sementara di seluruh ruang 1024 hingga 65535 untuk alasan keamanan. Port yang dapat diprediksi membuat aliran lebih mudah dibajak. Itulah mengapa server pengembangan yang sama mungkin menggunakan 49342 hari ini, 54871 besok, dan 33200 lusa.

Di mana 127.0.0.1:49342 Muncul di Mesin Anda

Jadi, kapan hal ini sebenarnya muncul pada hari biasa? Server lokal yang berjalan di port 49342 bisa berupa apa saja, mulai dari daftar panjang kategori alat untuk pengembang tempat pengembang menguji aplikasi terhadap soket loopback lokal. Tabel di bawah ini mencakup kasus sehari-hari di mana port seperti 49342 muncul di lapangan, dengan layanan yang berjalan dan menerima koneksi pada port yang ditentukan setiap saat.

Perangkat lunak Pelabuhan tipikal Apa yang Anda lihat
Masuk menggunakan CLI OAuth (gh, aws, gcloud) Acak sementara Browser membuka 127.0.0.1:, mengkonfirmasi, lalu menutup.
Jupyter Notebook 8888, lalu bersifat sementara Soket kernel menggunakan port acak dalam rentang 49152.
Server pengembangan Vite 5173 Pembaruan cepat antarmuka pengguna
React / webpack-dev-server 3000 Keluarga yang sama
Debug VS Code / JetBrains Acak sementara Adaptor debug mengikat server lokal.
Aplikasi Electron (Slack, Discord, Spotify) Acak sementara Jembatan IPC internal
Node helm pengaman 8545 Ethereum JSON-RPC
Landasan Besi (Pabrik Pengecoran) 8545 Ethereum JSON-RPC
GUI Ganache 7545 Rantai uji Ethereum
Tes registrasi Bitcoin Core Tahun 18443 RPC sejak v0.16

Satu-satunya kasus yang benar-benar menampilkan `127.0.0.1:49342` di bilah alamat browser? Hampir selalu OAuth. RFC 8252 IETF, berjudul "OAuth 2.0 untuk Aplikasi Native," dirilis pada Oktober 2017 dan menyarankan aplikasi native untuk menggunakan alur pengalihan loopback, dengan satu aturan yang mutlak: server otorisasi "HARUS mengizinkan nomor port apa pun." Jalankan `gh auth login` atau `gcloud auth login`. CLI akan menjalankan server http kecil pada port sementara acak, mengirimkan browser ke penyedia identitas, menangkap callback pada alamat loopback tersebut, dan kemudian menutup dirinya sendiri. Anda akan melihat salah satu alamat localhost seperti 127.0.0.1:49342 muncul sebentar sebelum menghilang. Bukan bug. Bukan pelacak. Bukan penipuan. Hanya jabat tangan yang sangat singkat, sepenuhnya lokal, tidak pernah mencapai jaringan eksternal sama sekali.

Panduan pemecahan masalah 127.0.0.1:49342 Kesalahan dan Konflik Port

Menurut pengalaman saya, masalah localhost muncul dalam lima bentuk. Secara harfiah, apa pun yang membuat Anda mencari solusi pada pukul 11 malam pasti termasuk dalam salah satu kategori ini.

Port sudah digunakan. Node berteriak `EADDRINUSE`. Python memberi Anda `OSError: [Errno 98] Address already in use`, bagus dan jelek. Windows hanya mengedipkan `WinSock 10048` dan pergi. Realitas mendasar yang sama dalam setiap kasus: proses lain di mesin Anda telah mengambil port 49342 terlebih dahulu. Tugas Anda adalah menemukannya, menghentikannya, dan mengklaimnya kembali.

  • Di Linux: `ss -tulpn | grep :49342`, atau gunakan cara lama `sudo lsof -i :49342`
  • Di Mac: `lsof -nP -iTCP:49342 -sTCP:LISTEN`
  • Di Windows melalui PowerShell: `netstat -ano | findstr :49342`, lalu `tasklist /fi "PID eq "` untuk mengubah PID tersebut menjadi nama program

Server berjalan, tetapi tidak ada yang bisa terhubung. Anda sering mengalami ini. IPv4 dan IPv6 diam-diam saling bertabrakan. Server Anda mengikat dirinya ke 127.0.0.1. Browser Anda menyelesaikan `localhost` sebagai `::1` tanpa alasan sama sekali. Keduanya adalah soket yang berbeda, jadi tentu saja tidak ada yang terhubung. Perbaiki dengan mengikat kedua keluarga sekaligus (mendengarkan pada `::` cenderung menangkap alamat yang dipetakan IPv4 pada sebagian besar tumpukan juga) atau cukup tulis 127.0.0.1 langsung ke URL.

VPN mengganggu lalu lintas loopback. Cloudflare WARP adalah pelaku utama, jauh di atas yang lain. Cloudflare sendiri mengakui hal ini di halaman dokumentasi keterbatasan yang diketahui: khususnya di macOS, memutuskan koneksi WARP dapat langsung menghapus rute 127.0.0.1. Jika localhost Anda mati total setelah Anda mengaktifkan VPN, hampir pasti itulah penyebabnya. Sambungkan kembali WARP, atau kembalikan rute secara manual dengan `sudo ifconfig lo0 127.0.0.1 alias`. Proton VPN, Mullvad, dan NordVPN pada dasarnya tidak pernah menyebabkan hal ini, meskipun itu tidak terlalu penting. Produk antivirus dan EDR perusahaan adalah cerita yang berbeda; beberapa di antaranya mencegat dan memproksi lalu lintas loopback dengan cara yang cepat menjadi aneh.

HSTS mengingat pengujian HTTPS yang Anda lupakan. Beberapa bulan lalu, Anda menguji sertifikat yang ditandatangani sendiri di `localhost`. Chrome melakukan apa yang biasa dilakukan Chrome dan menyimpan header HSTS dalam cache. Sekarang setiap permintaan `http://localhost` biasa secara diam-diam diubah menjadi https. Sangat menyenangkan untuk di-debug. Perbaikan dua menit: buka `chrome://net-internals/#hsts` dan hapus entri tersebut.

Aturan firewall. Loopback dapat melewati sebagian besar firewall secara default. Sebagian besar. Beberapa citra laptop perusahaan sengaja memfilter localhost sebagai bagian dari upaya pengamanan malware mereka, dan Anda baru menyadarinya di penghujung hari Kamis yang panjang. Aturan masuk lanjutan Windows Defender Firewall adalah tempat untuk memeriksanya. Di Linux, gunakan `sudo ufw status verbose`. Jika memang ada yang perlu dibuka, izinkan hanya port spesifik yang dimaksud; jangan menghapus seluruh firewall.

Namun, ada satu kebiasaan yang selalu menyelamatkan saya. Sebelum mengubah aturan atau rute firewall apa pun, jalankan `lsof` atau `netstat`. Separuh waktu, ternyata itu adalah proses zombie yang bersikeras memegang port dari proses pengembangan yang mengalami crash beberapa waktu sebelumnya. `kill -9` PID tersebut. Masalahnya hilang dalam hitungan detik.

Menyiapkan Konfigurasi Localhost dan Server untuk Penggunaan Pengembangan

Membangun alih-alih melakukan debugging? Pelajari beberapa kebiasaan konfigurasi server dan Anda akan menghemat banyak waktu. Semua ini tidak rumit. Kita mengejar sesuatu yang sederhana: pengujian dan debugging yang andal di berbagai layanan jaringan dan layanan berbeda pada satu laptop, hanya itu.

Aturan pertama, yang membosankan: ikat ke `127.0.0.1`, bukan `0.0.0.0`. Jika Anda mendengarkan di `0.0.0.0`, server web pengembangan kecil Anda tiba-tiba mengiklankan dirinya di setiap antarmuka jaringan yang Anda miliki. Artinya: orang asing di meja sebelah di wifi kafe akan menemukannya. Ikat ke 127.0.0.1 dan hanya hal-hal yang sudah ada di mesin Anda yang dapat mengaksesnya. `http.server` Python, `express.listen()` Node, `http.ListenAndServe` Go — semuanya menerima IP literal. Cukup ketik saja.

Aturan kedua: jika Anda benar-benar tidak peduli port mana yang digunakan, jangan pilih. Berikan port 0 ke listener (`server.listen(0)` pada Node, `bind(('127.0.0.1', 0))` pada Python) dan kernel akan mengembalikan port apa pun yang tersedia pada milidetik tersebut. Panggil `getsockname()` setelahnya untuk mengetahui port apa yang sebenarnya Anda dapatkan dan berikan ke komponen mana pun yang membutuhkan URL tersebut. Pada dasarnya, setiap CLI OAuth dan setiap adapter debug yang pernah Anda gunakan melakukan hal yang persis sama.

Aturan ketiga: variabel lingkungan, bukan port yang dikodekan secara permanen. Ambil `PORT` dari variabel lingkungan, gunakan nilai default yang masuk akal jika tidak ada. Binary yang sama berjalan di lingkungan pengembangan pada 127.0.0.1:5173 dan di lingkungan produksi di belakang reverse proxy pada 443. Terapkan pola yang sama pada string basis data, kunci API, dan lainnya. Dokumen Twelve-Factor App lebih lama daripada beberapa kolega Anda dan masih merupakan cara termurah untuk menghindari gangguan.

Aturan keempat: HTTPS di localhost tidak lagi merepotkan. Chrome dan Firefox kini memberikan status Konteks Aman `localhost` dan `127.0.0.1` untuk sebagian besar fitur, bahkan tanpa sertifikat asli. Pustaka yang rewel masih menolak sertifikat yang ditandatangani sendiri? Gunakan `mkcert`, yang masih merupakan CA lokal paling tidak merepotkan. Alat bawaan seperti `http.server` Python dan modul `net` Node memungkinkan Anda untuk menyiapkan server lokal hanya dalam sekitar lima baris selama pengembangan lokal, yang memungkinkan pengembang untuk menguji aplikasi web di bawah beban realistis dengan mendaur ulang skrip yang sama untuk pengujian integrasi di mana layanan untuk berkomunikasi melalui loopback adalah semua yang Anda butuhkan.

Aturan terakhir, dan sebenarnya yang terpenting. Produksi bukanlah lokal. Titik. Mesin lokal Anda adalah batas kepercayaan; kontainer produksi bukanlah salah satunya. Jangan pernah membiarkan endpoint debug berjalan di 127.0.0.1 di dalam kontainer produksi, karena proses lain di kontainer yang sama akan mengaksesnya pada hari pertama, dan satu bug runtime kemudian penyerang dapat langsung masuk juga. Gunakan lalu lintas localhost hanya di tempat yang seharusnya, digunakan di lingkungan pengembangan dan bukan di tempat lain, dan pada hari API internal apa pun yang menggunakan port tersebut beralih ke lingkungan bersama atau lingkungan produksi, segera terapkan otentikasi yang sebenarnya. Tidak ada "kami akan memperbaikinya setelah peluncuran." Itu adalah perusahaan sebelumnya.

Apa itu 127.0.0.1:49342?

Menggunakan Port 49342 dengan Aman: Keamanan pada Alamat Loopback

Localhost terasa privat. Dan memang demikian, sebagian besar. Hingga tiba-tiba tidak lagi.

Inilah jebakan yang pada akhirnya akan dihadapi semua orang. Penyerang dari luar memang tidak dapat melakukan panggilan langsung ke 127.0.0.1. Tetapi penyerang dari luar pasti dapat mengelabui browser Anda sendiri , atau beberapa aplikasi di mesin Anda yang sudah Anda percayai, untuk melakukan panggilan atas nama mereka. Seluruh jenis serangan itu disebut DNS rebinding. Serangan ini telah menggerogoti layanan localhost sejak sebelum sebagian besar orang yang membaca ini menulis kode.

Contoh yang masih sering dirujuk oleh para pelaku kripto adalah MyEtherWallet pada 24 April 2018. Penyerang berhasil melakukan pembajakan BGP terhadap Route 53 milik Amazon, mengalihkan DNS untuk myetherwallet.com, dan menyajikan klon phishing yang cukup aktif untuk menguras sekitar 215 ETH (sekitar $152.000 hingga $160.000 tergantung pada waktu kejadian yang Anda tentukan, menurut laporan dari The Register dan Internet Society). Memang bukan peretasan localhost murni, saya tahu. Tetapi itu adalah titik balik di mana komunitas kripto berhenti berpura-pura bahwa model asal browser adalah batasan keamanan yang sebenarnya. Setiap jembatan dompet lokal yang diam-diam mendengarkan pada port loopback tiba-tiba terasa rentan.

Jawaban Chrome hadir sebagai Akses Jaringan Pribadi, yang awalnya disebut CORS-RFC1918 dalam draf. Sejak Maret 2024, browser sekarang mengirimkan preflight CORS yang membawa `Access-Control-Request-Private-Network: true` sebelum situs web publik mana pun diizinkan untuk mencapai alamat pribadi atau loopback. Layanan lokal Anda harus membalas dengan `Access-Control-Allow-Private-Network: true` agar berhasil. Penerapan penuh berlaku pada rilis Chrome 123 hingga 130. Jadi, jika Anda mengirimkan server pengembangan di 127.0.0.1:49342 yang mengharapkan halaman publik untuk mengaksesnya selama pengujian integrasi, atur header tersebut. Jika tidak, permintaan akan langsung gagal tanpa pemberitahuan.

Beberapa CVE Electron 2025 perlu disebutkan selagi kita membahas ini. CVE-2025-10585 adalah bug type-confusion V8, yang ditambahkan ke katalog Kerentanan yang Dieksploitasi CISA pada 23 September 2025. CVE-2025-55305 adalah bypass integritas kode yang memanipulasi snapshot heap V8, yang diungkapkan sekitar waktu yang sama. Electron membungkus Chromium, dan laptop Anda memiliki banyak aplikasi Electron di dalamnya (Slack, VS Code, Discord, Notion, Teams, dan mungkin lebih banyak lagi). Banyak di antaranya mengekspos layanan lokal pada loopback. Lakukan patch dengan cepat. Dan mohon, jangan pernah membuat endpoint RPC di 127.0.0.1 tanpa token otentikasi jika endpoint tersebut dapat membaca kunci, menandatangani transaksi, atau menangani uang dalam bentuk apa pun.

Bagaimana Pengembang Kripto Menggunakan Localhost di Hardhat, Anvil, dan Ganache

Pengembangan Web3 pada dasarnya adalah parade tanpa akhir dari referensi alamat jaringan 127.0.0.1 — baik fokus Anda pada penerapan kontrak, pengujian protokol, atau hanya pengembangan web sehari-hari terhadap rantai lokal. Ada sekelompok kecil node lokal yang berjalan di localhost di laptop Anda saat ini (bahkan jika Anda melupakan setengahnya). Masing-masing memiliki servernya sendiri pada aturan port. Masing-masing mengekspos kombinasi alamat IP dan port yang berbeda untuk klien untuk terhubung, biasanya menggunakan port tertentu yang telah ditetapkan secara default oleh alat tersebut.

Berikut contekan singkatnya. Hardhat Network dari Nomic Foundation memilih `http://127.0.0.1:8545` dengan ID rantai 31337 sebagai default-nya. Anvil dari Foundry mengklaim alamat dan port yang sama, yang dapat dikonfigurasi melalui `--port` untuk saat-saat ketika Anda memiliki dua rangkaian pengujian yang terbuka dan saling bersaing. GUI Ganache mengambil `127.0.0.1:7545` dengan ID jaringan 5777, meskipun versi CLI-nya berbagi 8545 dengan Hardhat. Sementara itu, mode regtest Bitcoin Core menjalankan JSON-RPC-nya pada `127.0.0.1:18443` — perubahan yang sebenarnya masuk kembali di v0.16 melalui permintaan pull #10825, setelah seseorang menunjukkan konflik dengan 18332 milik testnet.

MetaMask terhubung ke hampir semua jaringan tersebut. Tambahkan jaringan khusus dengan URL RPC lokal dan Anda siap terhubung. IP 127.0.0.1 hanya bertindak sebagai jembatan tipis antara UI dompet berbasis browser Anda dan blockchain simulasi apa pun yang berjalan di laptop Anda saat itu. Ketika Anda melihat `127.0.0.1:` dalam jejak tumpukan Web3, hampir selalu ada dua kemungkinan: adaptor debug IDE Anda yang mengutak-atik node, atau node itu sendiri yang menjalankan titik akhir WebSocket pada port acak tepat di sebelah RPC tetapnya.

Integrasi pembayaran mengulangi pola ini. Membangun sistem pembayaran kripto berbasis Plisio? Anda akhirnya menjalankan SDK secara lokal terhadap listener Flask atau Express kecil di `127.0.0.1:3000/plisio/callback`. Webhook gateway tidak akan pernah dapat mencapai laptop Anda secara langsung dari internet publik, jadi pengujian lokal menggunakan tunnel (ngrok, Cloudflare Tunnel, Tailscale Funnel) untuk mengekspos port. Itu adalah port spesifik pada nomor port spesifik yang Anda, sebagai pedagang, pilih dan kendalikan. SDK PHP, Python, Laravel, dan Node.js Plisio masing-masing menyediakan helper `verifyCallbackData` yang menghitung ulang HMAC-SHA1 dari payload terhadap kunci rahasia toko. Pemeriksaan berjalan terhadap setiap callback saat tiba di listener lokal. Alamat loopback yang sama, pekerjaan yang sama, tanda tangan asli terlampir.

Mari kita lihat dari sudut pandang yang lebih luas. Pola ini sebenarnya ada di mana-mana: pembayaran, OAuth, layanan jaringan Web3 yang digunakan dalam pengembangan semuanya terlihat sama dari dalam — server pada port 49342 atau port dinamis lainnya, koneksi nyata pada port yang ditentukan, dan berjalan di localhost sepanjang waktu.

Pemeriksaan Cepat Localhost dan Port untuk Sistem Operasi Apa Pun

Berikut adalah contekan singkat. Biarkan tetap terbuka di tab terminal. Anda akan sering menggunakannya.

Bayangkan sebuah komputer Linux, distro apa pun. `sudo ss -tulpn | grep :49342` menjawab pertanyaan "siapa yang ada di port 49342". Hilangkan grep tersebut dan Anda akan mendapatkan semua soket yang sedang digunakan oleh mesin tersebut. Ingin tahu tentang batasan port dinamis kernel? `cat /proc/sys/net/ipv4/ip_local_port_range`. Jika Anda hanya ingin bukti bahwa loopback itu sendiri aktif, `ip addr show lo` akan menunjukkannya kepada Anda. Dan hei — jika `lo` hilang dari output, Anda telah menemukan masalah yang jauh lebih besar daripada sekadar port.

Mac bekerja serupa, hanya dengan alat yang berbeda karena berada di lingkungan BSD. `lsof -nP -iTCP:49342 -sTCP:LISTEN` mencetak proses yang menggunakan port tersebut. Hilangkan titik dua dan angka, Anda akan melihat semua listener. Tambahkan sudo jika Anda memerlukan visibilitas ke soket pengguna lain. Rentang sementara berada di `sysctl net.inet.ip.portrange.first net.inet.ip.portrange.hifirst`. Loopback disebut `lo0` di sini (bukan `lo`), dan keunikan penamaan kecil itu hanya akan membuat orang salah paham sekali sebelum mereka mengingatnya selamanya. Periksa dengan `ifconfig lo0`.

Windows membalikkan dialek sepenuhnya. Buka PowerShell sebagai administrator. `netstat -ano | findstr :49342` akan menampilkan PID. Masukkan itu ke dalam `tasklist /fi "PID eq "` untuk menerjemahkan angka tersebut menjadi nama aplikasi. Rentang dinamis? `netsh int ipv4 show dynamicport tcp`. Perlu menggeser rentang ke bawah karena aplikasi lama yang bandel membutuhkan sesuatu di ujung bawah? `netsh int ipv4 set dynamic tcp start=49152 num=16384` akan memindahkannya.

Hafalkan hal-hal tersebut dan masalah localhost Anda akan menyusut menjadi perbaikan lima menit, mungkin kurang. Coba ini suatu saat: jalankan `lsof -nP -iTCP -sTCP:LISTEN | grep 127.0.0.1` di laptop kerja Anda. Daftar yang bergulir selalu lebih panjang dari yang Anda duga. Tab latar belakang browser. Beberapa server bahasa editor, seringkali lebih dari satu. DNS internal Docker. Jembatan IPC Electron dari Slack, Discord, Linear, atau apa pun yang Anda jalankan. Beberapa daemon telemetri OS yang tidak pernah Anda ketahui keberadaannya. Ditambah enam atau tujuh server pengembangan dari pagi ini yang pasti lupa Anda matikan. Tingkat kebisingan itu normal. Itulah suara lingkungan pengembangan yang sedang berjalan.

Ada pertanyaan?

Sebagian besar, ya. Lalu lintas loopback tetap berada di mesin sehingga pihak luar tidak dapat mengaksesnya. Risiko sebenarnya adalah DNS rebinding (situs publik yang mengelabui browser Anda untuk memanggil hal-hal lokal) dan API lokal yang tidak terautentikasi. Akses Jaringan Pribadi Chrome memperbaiki yang pertama; token pada endpoint Anda memperbaiki yang kedua.

Di Mac atau Linux, jalur tercepat adalah `lsof -i :49342` (tambahkan sudo jika pengguna lain mungkin memilikinya). Di Windows, buka PowerShell dan coba `netstat -ano | findstr :49342`, lalu berikan PID ke `tasklist`. Jika tidak ada yang tercetak, port tersebut milik Anda — lanjutkan proses bind.

Sebagian besar: pekerjaan pengembangan. Pengujian aplikasi, debugging, RPC lokal, basis data selama pengujian integrasi, callback CLI OAuth. Bagi para penggemar kripto, di sinilah Hardhat, Anvil, Ganache, dan Bitcoin regtest berada. Bagi yang lain, ini adalah "server yang saya mulai lima menit yang lalu untuk melihat apakah semuanya berfungsi."

Tidak, bukan dengan sendirinya. Itu hanya loopback. Jika Anda kebetulan menjalankan dnsmasq, unbound, atau Pi-hole di mesin yang sama, tentu saja, salah satu dari itu akan mendengarkan di 127.0.0.1:53 dan berperan sebagai resolver DNS. Tetapi alamat tersebut bukanlah perannya. Pencarian `localhost` itu sendiri sebenarnya berasal dari file hosts, bukan DNS.

Cukup ketik saja. `http://localhost:` atau `http://127.0.0.1:`, keduanya berfungsi. Jika ada layanan yang berjalan, halaman akan dimuat; jika tidak ada layanan yang berjalan, Anda akan mendapatkan halaman kosong atau "koneksi ditolak". Untuk memeriksanya, jalankan `lsof` di Mac atau Linux, atau `netstat -ano` di Windows.

Intinya, ini adalah loopback. RFC 1122 menetapkannya pada tahun `89 agar mesin Anda dapat berkomunikasi dengan dirinya sendiri tanpa kartu yang terhubung ke kabel. Server web terhubung ke sana, begitu juga basis data, dan sebagian besar alat pengembangan menggunakan alamat tersebut secara default. Tidak ada yang rumit tentang alamat itu sendiri; setiap sistem operasi mengirimkannya dengan konfigurasi bawaan sehingga Anda tidak perlu memikirkannya.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.