Halo teman-teman semua, selamat datang kembali di blog ini! Pernah nggak sih kalian lagi semangat-semangatnya mau ngoding Next.js, lalu pas menjalankan perintah yarn dev atau npm run dev, eh tiba-tiba malah disambut dengan error berwarna merah yang bunyinya kurang lebih seperti ini:
Error: listen EACCES: permission denied 0.0.0.0:3000
at <unknown>
code: 'EACCES',
errno: -4092,
syscall: 'listen',
Logika pertama kita pasti berpikir, "Oh, paling port 3000 lagi dipakai sama aplikasi lain". Tapi yang bikin garuk-garuk kepala, pas kita cek pakai perintah netstat -ano | findstr :3000 di terminal, hasilnya... kosong! Nggak ada aplikasi apapun yang lagi pakai port tersebut.
Lalu, siapa yang menahan port 3000 kita? Hantu? Tentu saja bukan, teman-teman. Ini adalah masalah klasik bagi para developer yang menggunakan sistem operasi Windows. Yuk, kita bedah penyebabnya dan bagaimana cara ampuh mengatasinya.
Penyebab Port 3000 "Permission Denied" Padahal Kosong
Bagi kalian pengguna Windows (terutama yang mengaktifkan fitur WSL atau Hyper-V), OS Windows memiliki sebuah layanan internal yang bernama WinNAT (Windows NAT). Layanan ini terkadang secara acak "mengunci" atau me-reserve sejumlah rentang port untuk kebutuhan sistem jaringan mereka sendiri.
Sialnya, Port 3000 yang merupakan port default kesayangan aplikasi seperti React, Next.js, dan Express, sering kali tanpa sengaja ikut masuk ke dalam blok port yang disandera oleh Windows ini. Itulah alasannya mengapa port tersebut tidak muncul di netstat; karena yang memblokir bukanlah sebuah aplikasi, melainkan level sistem operasinya langsung.
Cara Ampuh Memperbaiki Error Port 3000 di Windows
Ada dua solusi utama yang bisa teman-teman pilih untuk mengatasi masalah permission denied 0.0.0.0:3000 ini. Silakan gunakan cara yang dirasa paling mudah.
1. Restart Layanan WinNAT (Solusi Paling Direkomendasikan)
Ini adalah cara favorit saya karena langsung menyelesaikan akar masalahnya. Kita hanya perlu "mereset" layanan jaringan Windows agar melepaskan port 3000 yang sedang terkunci. Berikut langkah-langkahnya:
- Klik tombol Start Windows, ketik
cmd. - Klik kanan pada Command Prompt lalu pilih Run as administrator (Wajib sebagai admin ya!).
- Ketik perintah di bawah ini untuk mematikan layanan jaringan sementara, lalu tekan Enter:
net stop winnat - Setelah ada pesan berhasil berhenti, jalankan kembali layanannya dengan mengetik:
net start winnat - Selesai! Sekarang coba kembali ke terminal proyek kamu dan jalankan
yarn dev. Dijamin port 3000 sudah bisa dipakai lagi.
2. Ganti Port Next.js (Solusi Praktis dan Cepat)
Kalau teman-teman kebetulan lagi buru-buru, malas membuka Command Prompt as Admin, atau PC di kantor tidak memberikan akses admin, cara paling cepat adalah mengalah. Kita pindahkan saja aplikasi Next.js ke port lain, misalnya ke Port 3001.
Kalian cukup menambahkan flag -p saat menjalankan server. Jalankan perintah ini di terminal proyek kamu:
yarn dev -p 3001
Atau jika menggunakan NPM:
npm run dev -- -p 3001
Jika ingin menjadikannya permanen, teman-teman bisa mengubah skrip di dalam file package.json pada bagian scripts seperti ini:
"scripts": {
"dev": "next dev -p 3001",
"build": "next build",
"start": "next start"
}
Kesimpulan
Error EACCES: permission denied di port 3000 pada Windows sering kali disebabkan oleh intervensi layanan WinNAT / Hyper-V yang secara otomatis me-reserve port tersebut. Dengan sekadar merestart layanan winnat melalui Command Prompt Administrator, masalah ini biasanya langsung teratasi dalam hitungan detik.
Sekian dulu tips singkat kali ini. Mudah-mudahan artikel ini bermanfaat dan bisa menyelamatkan mood ngoding teman-teman yang sempat rusak karena error gaib ini. Kalau ada pertanyaan atau pengalaman lain terkait masalah ini, jangan sungkan untuk menuliskannya di kolom komentar di bawah ya!
Sampai jumpa di artikel tutorial selanjutnya, dan Happy Coding!

Posting Komentar