Cek port 80 digunakan untuk memastikan apakah web server kamu bisa diakses melalui HTTP - protokol yang digunakan browser secara default saat kamu mengetik URL biasa tanpa "https://". Kalau port 80 diblokir atau tidak ada yang mendengarkan, pengunjung akan mendapat error koneksi dan situsmu tidak bisa diakses. Berikut cara mendiagnosis dan memperbaikinya.
Daftar Isi
- Apa Fungsi Sebenarnya Port 80
- Cara Mengecek Apakah Port 80 Terbuka
- Menggunakan netstat untuk Memeriksa Port 80
- Mendiagnosis Port 80 yang Diblokir Firewall
- Port HTTP Tidak Merespons: Penyebab Umum dan Solusinya
- Uji Konektivitas Port 80 dari Luar Jaringan
- Port 80 vs. Port 443: Kapan Masing-masing Dibutuhkan
Apa Fungsi Sebenarnya Port 80
Port 80 adalah port TCP default untuk
HTTP (Hypertext Transfer Protocol)
. Saat browser terhubung ke
http://example.com
, secara otomatis ia menargetkan port 80 pada alamat IP server tersebut. Software server - Apache, Nginx, IIS, Caddy, atau lainnya - harus aktif mendengarkan di port 80 agar koneksi berhasil.
Port 80 didefinisikan dalam registri port resmi IANA dan distandarisasi dalam RFC 9110. Ini adalah port "well-known", artinya nomor 0-1023 dicadangkan untuk layanan tingkat sistem dan membutuhkan hak akses tinggi (elevated privileges) untuk melakukan bind di Linux/macOS.
Cara Mengecek Apakah Port 80 Terbuka
Ada beberapa cara untuk mengecek apakah port 80 terbuka, tergantung apakah kamu memeriksa secara lokal (dari server itu sendiri) atau secara remote (dari mesin lain atau internet).
Menggunakan telnet
Telnet adalah cara pengujian manual yang paling cepat. Jalankan perintah ini dari mesin mana pun yang memiliki akses jaringan ke host target:
telnet example.com 80
Jika port 80 terbuka dan ada web server yang mendengarkan, kamu akan melihat kursor kosong atau banner HTTP. Jika tertutup atau difilter, kamu akan mendapat pesan "Connection refused" atau perintah akan menggantung hingga timeout.
Menggunakan curl
curl memberikan detail lebih banyak - ia menampilkan respons HTTP yang sebenarnya:
curl -v http://example.com
Flag
-v
menampilkan output verbose, termasuk TCP handshake dan header respons. Koneksi yang berhasil menampilkan
* Connected to example.com (93.184.216.34) port 80
. Kegagalan koneksi menampilkan
curl: (7) Failed to connect
.
Menggunakan nmap
nmap adalah standar terbaik untuk port scanning. Untuk menguji port 80 secara spesifik:
nmap -p 80 example.com
Hasilnya akan menampilkan salah satu dari tiga status: open (ada yang mendengarkan), closed (port dapat dijangkau tapi tidak ada yang mendengarkan), atau filtered (firewall membuang paket dan nmap tidak dapat menentukan statusnya).
Menggunakan PowerShell di Windows
Test-NetConnection -ComputerName example.com -Port 80
Perintah
Test-NetConnection
di PowerShell mengembalikan nilai
TcpTestSucceeded : True
atau
False
yang bersih, sehingga mudah digunakan dalam skrip. Untuk panduan lengkap tentang pengecekan port di Windows, lihat
cara mengecek port terbuka di Windows
.
Menggunakan netstat untuk Memeriksa Port 80
Saat kamu berada langsung di server,
netstat
menunjukkan dengan tepat proses mana yang terikat ke port 80. Ini adalah alat yang tepat saat kamu perlu menjawab pertanyaan "apakah ada sesuatu yang benar-benar mendengarkan di port 80 pada mesin ini?"
Linux / macOS
sudo netstat -tlnp | grep :80
Penjelasan flag:
-
-t- hanya koneksi TCP -
-l- hanya socket yang sedang mendengarkan -
-n- tampilkan alamat numerik (lebih cepat, melewati pencarian DNS) -
-p- tampilkan nama proses dan PID
Hasil yang umum terlihat seperti:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
. Ini menunjukkan bahwa nginx (PID 1234) mendengarkan di semua interface pada port 80.
Pada sistem Linux modern,
ss
lebih cepat dan lebih direkomendasikan dibanding
netstat
:
sudo ss -tlnp | grep :80
Windows
netstat -ano | findstr :80
Perintah ini menampilkan semua koneksi dengan port 80 beserta PID-nya. Untuk menemukan nama proses dari PID (misalnya PID 4892):
tasklist /fi "pid eq 4892"
Mendiagnosis Port 80 yang Diblokir Firewall
Pemblokiran oleh firewall adalah alasan paling umum mengapa port 80 tampak tertutup dari luar meskipun web server berjalan dengan baik secara lokal. Ada tiga lapisan di mana pemblokiran bisa terjadi:
| Lapisan | Tempat Memeriksa | Alat |
|---|---|---|
| Firewall OS (server) | iptables / ufw (Linux), Windows Defender Firewall |
iptables -L -n
atau aturan Windows Firewall
|
| Security group cloud | AWS EC2 Security Groups, Azure NSG, GCP Firewall Rules | Aturan inbound di konsol cloud |
| Firewall jaringan/ISP | Router ACL, pemblokiran port residensial oleh ISP | Hubungi ISP atau gunakan port scanner eksternal |
Cek iptables di Linux
sudo iptables -L INPUT -n -v | grep 80
Jika kamu melihat aturan DROP atau REJECT untuk port 80, itulah penyebabnya. Untuk mengizinkan port 80 dengan ufw:
sudo ufw allow 80/tcp
sudo ufw reload
Cek AWS Security Groups
Jika server kamu berada di EC2, buka konsol EC2 - Security Groups - Inbound rules. Kamu perlu aturan yang mengizinkan TCP port 80 dari
0.0.0.0/0
(atau rentang IP spesifik kamu). Tanpa ini, semua traffic port 80 akan dibuang bahkan sebelum mencapai firewall OS kamu.
Untuk pembahasan lebih mendalam tentang diagnostik port di sisi Linux, lihat panduan lengkap mengecek port terbuka di Linux yang mencakup iptables, ufw, firewalld, dan nftables secara detail.
Port HTTP Tidak Merespons: Penyebab Umum dan Solusinya
Ketika port HTTP tidak merespons, masalahnya biasanya masuk ke salah satu kategori berikut:
-
Web server tidak berjalan
- Periksa dengan
systemctl status nginxatausystemctl status apache2. Jika berhenti, jalankan kembali:sudo systemctl start nginx. -
Web server crash saat startup
- Periksa log:
sudo journalctl -u nginx --since "10 minutes ago". Error sintaks konfigurasi atau konflik port akan tercatat di sini. -
Server hanya terikat ke localhost
- Jika konfigurasi server kamu menyebutkan
listen 127.0.0.1:80alih-alihlisten 0.0.0.0:80, server tidak akan menerima koneksi eksternal. Perbaiki alamat bind di konfigurasi server kamu. - Port 80 sudah digunakan - Proses lain mengambil port 80 sebelum web server kamu dijalankan. Gunakan netstat untuk mengidentifikasinya, lalu hentikan atau konfigurasi ulang salah satu layanan tersebut.
-
SELinux atau AppArmor memblokir bind
- Pada sistem RHEL/CentOS, SELinux mungkin mencegah proses non-standar melakukan bind ke port 80. Periksa
ausearch -m AVC -ts recentuntuk melihat penolakan akses.
curl http://127.0.0.1
langsung di server. Jika berhasil tapi koneksi eksternal gagal, masalahnya ada di firewall atau aturan jaringan - bukan pada web server itu sendiri.
Uji Konektivitas Port 80 dari Luar Jaringan
Pengujian dari mesin sendiri bisa menyesatkan - kamu mungkin berada di LAN yang sama dengan server, sehingga melewati aturan firewall yang berlaku untuk traffic eksternal. Untuk menguji konektivitas port 80 sebagaimana yang dialami pengunjung nyata, kamu membutuhkan pengujian dari luar.
Kamu bisa memeriksa header respons HTTP server kamu dari luar menggunakan alat HTTP Headers Checker kami. Alat ini mengambil header dari URL kamu dan menampilkan persis apa yang diterima browser - status code, tipe server, rantai redirect, dan lainnya - semua dari sudut pandang eksternal.
Opsi eksternal lainnya:
- Port scanner online - Situs seperti portchecker.co atau canyouseeme.org memungkinkan kamu memasukkan IP dan nomor port untuk diuji dari server mereka.
-
Dari VPS atau cloud shell
- Buat instance cloud tier gratis di region berbeda dan jalankan
nc -zv your-server-ip 80dari sana. -
Menggunakan nc (netcat) secara lokal
-
nc -zv example.com 80memberikan hasil open/closed dengan cepat tanpa perlu menginstal apa pun di sebagian besar sistem Linux/macOS.
Port 80 vs. Port 443: Kapan Masing-masing Dibutuhkan
Port 443 menangani HTTPS (HTTP terenkripsi melalui TLS). Sebagian besar situs modern langsung mengalihkan semua traffic port 80 ke port 443. Namun port 80 tetap penting karena beberapa alasan:
- Challenge ACME/Let's Encrypt HTTP-01 - certbot dari Let's Encrypt menggunakan port 80 untuk memverifikasi kepemilikan domain. Jika port 80 diblokir, penerbitan sertifikat akan gagal.
- Layanan internal tanpa TLS - Banyak alat internal, agen monitoring, dan microservice berkomunikasi melalui HTTP biasa di port 80 dalam jaringan privat.
- Klien lawas dan perangkat IoT - Beberapa perangkat embedded dan klien lama tidak mendukung TLS dan bergantung pada port 80.
- Infrastruktur redirect - Meskipun kamu menyajikan segalanya melalui HTTPS, kamu tetap perlu port 80 terbuka untuk menangkap dan mengalihkan permintaan HTTP agar pengguna tidak mendapat error koneksi.
Lihat langsung apa yang sebenarnya dikembalikan port 80
HTTP Headers Checker kami mengambil respons langsung dari URL mana pun sehingga kamu bisa memastikan port 80 terbuka, memeriksa rantai redirect, dan melihat status code persis yang dikirim server kamu - tanpa perlu command line.
Cek HTTP Headers Sekarang →
Di Linux, jalankan
sudo ss -tlnp | grep :80
atau
sudo netstat -tlnp | grep :80
. Kedua perintah ini menampilkan nama proses dan PID yang terikat ke port 80. Di Windows, gunakan
netstat -ano | findstr :80
untuk mendapatkan PID, lalu
tasklist /fi "pid eq [PID]"
untuk menemukan nama prosesnya. Proses yang umum ditemukan antara lain nginx, apache2, IIS, dan server Node.js.
Gunakan perintah netstat atau ss yang sama tapi filter untuk 8080:
sudo ss -tlnp | grep :8080
di Linux, atau
netstat -ano | findstr :8080
di Windows. Port 8080 adalah port HTTP alternatif yang umum digunakan oleh server pengembangan, Tomcat, Jenkins, dan proxy. Jika ada sesuatu yang sudah terikat di sana, kamu perlu menghentikannya atau mengonfigurasi layanan baru untuk menggunakan port yang berbeda.
Pada server web khusus dan instance VPS, ya - port 80 biasanya terbuka dan memang diharapkan demikian. Pada koneksi internet residensial, banyak ISP memblokir port 80 inbound untuk mencegah pelanggan menjalankan server publik dari koneksi rumah. Pada instance cloud, port 80 sering ditutup secara default di security group hingga kamu secara eksplisit menambahkan aturan inbound yang mengizinkannya.
Dari luar server, gunakan
nmap -p 80 your-server-ip
atau
telnet your-server-ip 80
. Dari server itu sendiri, gunakan
ss -tlnp | grep :80
untuk memastikan ada sesuatu yang mendengarkan. Periksa juga aturan firewall kamu - di Linux dengan ufw, jalankan
sudo ufw status
untuk melihat apakah port 80 tercantum sebagai diizinkan.
Di Linux dengan ufw:
sudo ufw allow 80/tcp
. Dengan iptables langsung:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
. Di Windows, tambahkan aturan inbound di Windows Defender Firewall untuk TCP port 80. Pada server cloud, tambahkan aturan inbound di security group atau network security group yang mengizinkan TCP port 80 dari rentang sumber yang diinginkan.
Port 80 terbuka ketika web server dikonfigurasi untuk melayani traffic HTTP, yang merupakan standar untuk situs web yang menghadap publik. Port ini juga tetap terbuka pada server yang mengalihkan HTTP ke HTTPS (port 443), karena redirect itu sendiri memerlukan penerimaan koneksi port 80 awal. Alat pembaruan sertifikat seperti certbot dari Let's Encrypt juga memerlukan port 80 untuk challenge validasi domain HTTP-01.
Buka Windows Defender Firewall with Advanced Security, klik "Inbound Rules", lalu "New Rule". Pilih "Port", pilih TCP, masukkan 80 sebagai port lokal spesifik, pilih "Allow the connection", terapkan ke semua profil (Domain, Private, Public), dan beri nama aturan tersebut. Atau, jalankan perintah ini di PowerShell dengan hak akses tinggi:
New-NetFirewallRule -DisplayName "HTTP Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
.
Ya, di Linux dan macOS, port 80 adalah port privileged (port 0-1023 memerlukan akses root atau kapabilitas CAP_NET_BIND_SERVICE untuk melakukan bind). Artinya proses pengguna biasa tidak bisa mendengarkan di port 80 tanpa izin tinggi. Web server seperti nginx dan Apache biasanya dijalankan sebagai root untuk melakukan bind ke port 80, kemudian beralih ke pengguna dengan hak lebih rendah untuk menangani permintaan. Di Windows, tidak ada batasan setara untuk port 80.
Port 80 (HTTP) digunakan sebagai pengganti 443 (HTTPS) dalam skenario di mana TLS tidak diperlukan atau tidak praktis - seperti microservice internal di jaringan privat yang terpercaya, lingkungan pengembangan lokal, atau perangkat IoT tanpa dukungan TLS. Port 80 juga diperlukan untuk challenge sertifikat HTTP-01 dari Let's Encrypt. Untuk situs yang menghadap publik, port 443 dengan TLS sangat direkomendasikan, dengan port 80 tetap terbuka hanya untuk redirect.
Tidak, keduanya adalah port yang berbeda. Port 80 adalah standar yang ditetapkan IANA untuk HTTP dan digunakan secara otomatis oleh browser saat tidak ada port yang ditentukan. Port 8000 adalah alternatif tidak resmi yang umum digunakan oleh server pengembangan - perintah
python -m http.server
milik Python menggunakan 8000 secara default, begitu pula server pengembangan Django. Untuk mengakses layanan di port 8000, kamu harus menentukannya secara eksplisit di URL:
http://example.com:8000
.