Verificare se la porta 80 è aperta ti dice se il tuo web server è raggiungibile via HTTP - il protocollo che i browser usano di default quando digiti un URL senza "https://". Se la porta 80 è bloccata o non è in ascolto, i visitatori ricevono errori di connessione e il tuo sito diventa irraggiungibile. Ecco come diagnosticare e risolvere il problema.
Indice dei contenuti
- A cosa serve davvero la porta 80
- Come verificare se la porta 80 è aperta
- Usare netstat per analizzare la porta 80
- Diagnosticare la porta 80 bloccata dal firewall
- Porta HTTP non risponde: cause comuni e soluzioni
- Testare la porta 80 dall'esterno della tua rete
- Porta 80 vs porta 443: quando conta ciascuna
A cosa serve davvero la porta 80
La porta 80 è la porta TCP di default per
HTTP (Hypertext Transfer Protocol)
. Quando un browser si connette a
http://example.com
, punta automaticamente alla porta 80 sull'indirizzo IP di quel server. Il software server - Apache, Nginx, IIS, Caddy o qualsiasi altro - deve essere attivamente in ascolto sulla porta 80 affinché la connessione vada a buon fine.
La porta 80 è definita nel registro ufficiale delle porte IANA ed è standardizzata nell'RFC 9110. È una porta "well-known": i numeri da 0 a 1023 sono riservati ai servizi di sistema e richiedono privilegi elevati per essere associati su Linux/macOS.
Come verificare se la porta 80 è aperta
Esistono diversi modi per controllare se la porta 80 è aperta, a seconda che tu stia eseguendo il test in locale (direttamente sul server) o da remoto (da un'altra macchina o da internet).
Usare telnet
Telnet è il test manuale più rapido. Eseguilo da qualsiasi macchina che abbia accesso di rete all'host di destinazione:
telnet example.com 80
Se la porta 80 è aperta e un web server è in ascolto, vedrai un cursore vuoto o un banner HTTP. Se è chiusa o filtrata, riceverai "Connection refused" oppure il comando rimarrà in attesa fino al timeout.
Usare curl
curl fornisce maggiori dettagli - mostra la risposta HTTP effettiva:
curl -v http://example.com
Il flag
-v
stampa un output dettagliato, incluso il handshake TCP e gli header della risposta. Una connessione riuscita mostra
* Connected to example.com (93.184.216.34) port 80
. Un errore mostra
curl: (7) Failed to connect
.
Usare nmap
nmap è lo standard di riferimento per la scansione delle porte. Per testare specificamente la porta 80:
nmap -p 80 example.com
Il risultato mostrerà uno di tre stati: open (qualcosa è in ascolto), closed (la porta è raggiungibile ma nessun servizio è in ascolto), oppure filtered (un firewall sta scartando i pacchetti e nmap non riesce a determinare lo stato).
Usare PowerShell su Windows
Test-NetConnection -ComputerName example.com -Port 80
Il cmdlet
Test-NetConnection
di PowerShell restituisce un chiaro
TcpTestSucceeded : True
o
False
, il che lo rende facile da usare negli script. Per una guida completa sul controllo delle porte su Windows, consulta
il controllo delle porte aperte su Windows
.
Usare netstat per analizzare la porta 80
Quando sei direttamente sul server,
netstat
ti mostra esattamente quale processo è associato alla porta 80. È lo strumento giusto quando devi rispondere alla domanda "c'è qualcosa in ascolto sulla porta 80 su questa macchina?"
Linux / macOS
sudo netstat -tlnp | grep :80
Spiegazione dei flag:
-
-t- solo connessioni TCP -
-l- solo socket in ascolto -
-n- mostra gli indirizzi numerici (più veloce, salta i lookup DNS) -
-p- mostra il nome del processo e il PID
Un risultato tipico appare così:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
. Questo indica che nginx (PID 1234) è in ascolto su tutte le interfacce sulla porta 80.
Sui sistemi Linux moderni,
ss
è più veloce ed è preferito rispetto a
netstat
:
sudo ss -tlnp | grep :80
Windows
netstat -ano | findstr :80
Questo elenca tutte le connessioni sulla porta 80 con il relativo PID. Per trovare il nome del processo a partire dal PID (ad esempio PID 4892):
tasklist /fi "pid eq 4892"
Diagnosticare la porta 80 bloccata dal firewall
Un blocco del firewall è la causa più comune per cui la porta 80 risulta chiusa dall'esterno anche quando il tuo web server funziona correttamente in locale. Il blocco può avvenire a tre livelli:
| Livello | Dove controllare | Strumento |
|---|---|---|
| Firewall del sistema operativo (server) | iptables / ufw (Linux), Windows Defender Firewall |
iptables -L -n
o regole di Windows Firewall
|
| Security group cloud | AWS EC2 Security Groups, Azure NSG, GCP Firewall Rules | Regole in entrata nella console cloud |
| Firewall di rete/ISP | ACL del router, blocco porte residenziali dell'ISP | Contatta l'ISP o usa uno scanner di porte esterno |
Controllare iptables su Linux
sudo iptables -L INPUT -n -v | grep 80
Se vedi una regola DROP o REJECT per la porta 80, quello è il problema. Per consentire la porta 80 con ufw:
sudo ufw allow 80/tcp
sudo ufw reload
Controllare i Security Group di AWS
Se il tuo server è su EC2, vai alla console EC2 - Security Groups - Regole in entrata. Hai bisogno di una regola che consenta il traffico TCP sulla porta 80 da
0.0.0.0/0
(o dal tuo intervallo di IP specifico). Senza questa regola, tutto il traffico sulla porta 80 viene scartato prima ancora di raggiungere il firewall del sistema operativo.
Per un'analisi più approfondita della diagnostica delle porte lato Linux, la guida completa al controllo delle porte aperte su Linux tratta in dettaglio iptables, ufw, firewalld e nftables.
Porta HTTP non risponde: cause comuni e soluzioni
Quando la porta HTTP non risponde, il problema rientra in una di queste categorie:
-
Web server non in esecuzione
- Controlla con
systemctl status nginxosystemctl status apache2. Se è fermo, avvialo:sudo systemctl start nginx. -
Web server andato in crash all'avvio
- Controlla i log:
sudo journalctl -u nginx --since "10 minutes ago". Un errore di sintassi nella configurazione o un conflitto di porta verranno registrati qui. -
Server associato solo a localhost
- Se la configurazione del server indica
listen 127.0.0.1:80invece dilisten 0.0.0.0:80, non accetterà connessioni esterne. Correggi l'indirizzo di bind nella configurazione del server. - Porta 80 già in uso - Un altro processo ha occupato la porta 80 prima che il tuo web server si avviasse. Usa netstat per identificarlo, quindi fermalo o riconfigura uno dei due servizi.
-
SELinux o AppArmor bloccano il bind
- Sui sistemi RHEL/CentOS, SELinux può impedire a un processo non standard di associarsi alla porta 80. Controlla
ausearch -m AVC -ts recentper i rifiuti.
curl http://127.0.0.1
direttamente sul server. Se funziona ma le connessioni esterne falliscono, il problema è un firewall o una regola di rete - non il web server in sé.
Testare la porta 80 dall'esterno della tua rete
Testare dalla tua macchina può essere fuorviante - potresti trovarti sulla stessa LAN del server, bypassando le regole del firewall che si applicano al traffico esterno. Per testare la porta 80 come la sperimenta un visitatore reale, hai bisogno di un test esterno.
Puoi controllare gli header di risposta HTTP del tuo server dall'esterno usando il nostro strumento HTTP Headers Checker . Recupera gli header dal tuo URL e mostra esattamente ciò che riceve un browser - codici di stato, tipo di server, catene di redirect e altro ancora - tutto da un punto di osservazione esterno.
Altre opzioni esterne:
- Scanner di porte online - Siti come portchecker.co o canyouseeme.org ti permettono di inserire un IP e un numero di porta per testare dai loro server.
-
Da un VPS o cloud shell
- Avvia un'istanza cloud gratuita in una regione diversa ed esegui
nc -zv your-server-ip 80da lì. -
Usando nc (netcat) in locale
-
nc -zv example.com 80fornisce un risultato rapido aperto/chiuso senza installare nulla di aggiuntivo sulla maggior parte dei sistemi Linux/macOS.
Porta 80 vs porta 443: quando conta ciascuna
La porta 443 gestisce HTTPS (HTTP cifrato tramite TLS). La maggior parte dei siti moderni reindirizza immediatamente tutto il traffico sulla porta 80 verso la porta 443. Ma la porta 80 rimane importante per diversi motivi:
- Challenge HTTP-01 di ACME/Let's Encrypt - certbot di Let's Encrypt usa la porta 80 per verificare la proprietà del dominio. Se la porta 80 è bloccata, l'emissione del certificato fallisce.
- Servizi interni senza TLS - Molti strumenti interni, agenti di monitoraggio e microservizi comunicano tramite HTTP semplice sulla porta 80 all'interno di una rete privata.
- Client legacy e dispositivi IoT - Alcuni dispositivi embedded e client più datati non supportano TLS e si affidano alla porta 80.
- Infrastruttura di redirect - Anche se servi tutto tramite HTTPS, hai bisogno della porta 80 aperta per intercettare e reindirizzare le richieste HTTP, evitando che gli utenti ricevano un errore di connessione.
Scopri immediatamente cosa restituisce la porta 80
Il nostro HTTP Headers Checker recupera la risposta in tempo reale da qualsiasi URL, così puoi confermare che la porta 80 è aperta, verificare le catene di redirect e vedere i codici di stato esatti che il tuo server invia - senza riga di comando.
Controlla gli header HTTP ora →
Su Linux, esegui
sudo ss -tlnp | grep :80
o
sudo netstat -tlnp | grep :80
. Entrambi i comandi mostrano il nome del processo e il PID associati alla porta 80. Su Windows, usa
netstat -ano | findstr :80
per ottenere il PID, poi
tasklist /fi "pid eq [PID]"
per trovare il nome del processo. I processi più comuni sono nginx, apache2, IIS e i server Node.js.
Usa gli stessi comandi netstat o ss ma filtra per 8080:
sudo ss -tlnp | grep :8080
su Linux, oppure
netstat -ano | findstr :8080
su Windows. La porta 8080 è una porta HTTP alternativa molto usata dai server di sviluppo, Tomcat, Jenkins e i proxy. Se qualcosa è già associato a quella porta, dovrai fermarlo o configurare il nuovo servizio su una porta diversa.
Sui web server dedicati e sulle istanze VPS, sì - la porta 80 è tipicamente aperta e prevista. Sulle connessioni internet residenziali, molti ISP bloccano la porta 80 in entrata per impedire ai clienti di ospitare server pubblici da casa. Sulle istanze cloud, la porta 80 è spesso chiusa di default nel security group finché non aggiungi esplicitamente una regola in entrata che la consenta.
Dall'esterno del server, usa
nmap -p 80 your-server-ip
o
telnet your-server-ip 80
. Dal server stesso, usa
ss -tlnp | grep :80
per confermare che qualcosa è in ascolto. Controlla anche le regole del firewall - su Linux con ufw, esegui
sudo ufw status
per vedere se la porta 80 è elencata come consentita.
Su Linux con ufw:
sudo ufw allow 80/tcp
. Con iptables direttamente:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
. Su Windows, aggiungi una regola in entrata in Windows Defender Firewall per la porta TCP 80. Su un server cloud, aggiungi una regola in entrata nel tuo security group o network security group che consenta la porta TCP 80 dall'intervallo di sorgenti desiderato.
La porta 80 è aperta quando un web server è configurato per servire traffico HTTP, che è lo standard per qualsiasi sito pubblico. Rimane aperta anche sui server che reindirizzano HTTP verso HTTPS (porta 443), perché il redirect stesso richiede di accettare la connessione iniziale sulla porta 80. Strumenti di rinnovo dei certificati come certbot di Let's Encrypt richiedono inoltre la porta 80 per le challenge di validazione del dominio HTTP-01.
Apri Windows Defender Firewall con sicurezza avanzata, clicca su "Regole in entrata", poi su "Nuova regola". Scegli "Porta", seleziona TCP, inserisci 80 come porta locale specifica, scegli "Consenti la connessione", applica a tutti i profili (Dominio, Privato, Pubblico) e assegna un nome alla regola. In alternativa, esegui questo comando in un prompt PowerShell con privilegi elevati:
New-NetFirewallRule -DisplayName "HTTP Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
.
Sì, su Linux e macOS la porta 80 è una porta privilegiata (le porte da 0 a 1023 richiedono i permessi di root o la capability CAP_NET_BIND_SERVICE per essere associate). Ciò significa che un processo utente normale non può mettersi in ascolto sulla porta 80 senza permessi elevati. Web server come nginx e Apache vengono tipicamente avviati come root per associarsi alla porta 80, per poi passare a un utente con privilegi ridotti per la gestione delle richieste. Su Windows non esiste una restrizione equivalente per la porta 80.
La porta 80 (HTTP) viene usata al posto della 443 (HTTPS) in scenari in cui TLS non è necessario o praticabile - come i microservizi interni su una rete privata affidabile, gli ambienti di sviluppo locale o i dispositivi IoT privi di supporto TLS. La porta 80 è inoltre richiesta per le challenge di certificato HTTP-01 di Let's Encrypt. Per qualsiasi sito pubblico, la porta 443 con TLS è fortemente preferita, con la porta 80 aperta solo per i redirect.
No, sono porte diverse. La porta 80 è lo standard assegnato da IANA per HTTP e viene usata automaticamente dai browser quando non viene specificata alcuna porta. La porta 8000 è un'alternativa non ufficiale comunemente usata dai server di sviluppo - il modulo
python -m http.server
di Python usa 8000 di default, così come il server di sviluppo di Django. Per raggiungere un servizio sulla porta 8000, devi specificarla esplicitamente nell'URL:
http://example.com:8000
.