Accedi
Accedi

Come scaricare file con cURL

Come scaricare file con cURL
Emmanuel Oyibo
Technical writer
Sistema: Linux
20.10.2025
Reading time: 8 min

Il download di contenuti da server remoti è un’attività comune sia per gli amministratori che per gli sviluppatori. Sebbene esistano numerosi strumenti per questo compito, cURL si distingue per la sua flessibilità e semplicità. È un’utilità da riga di comando che supporta protocolli come HTTP, HTTPS, FTP e SFTP, rendendola fondamentale per l’automazione, la creazione di script e il trasferimento efficiente dei file.

Puoi eseguire cURL direttamente sul tuo computer per scaricare file. Puoi anche integrarlo negli script per semplificare la gestione dei dati, riducendo così il lavoro manuale e gli errori. Questa guida mostra diversi modi per scaricare file con cURL. Seguendo questi esempi, imparerai a gestire i reindirizzamenti, rinominare i file e monitorare l’avanzamento dei download. Alla fine, sarai in grado di utilizzare cURL con sicurezza per le attività su server o ambienti cloud.

Comando di base cURL per scaricare file

Il comando curl funziona con più protocolli, ma viene utilizzato principalmente con HTTP e HTTPS per connettersi ai server web. All’occorrenza può anche interagire con server FTP o SFTP.

Per impostazione predefinita, cURL recupera una risorsa da un URL specificato e la visualizza nel terminale (output standard). Questo è utile per visualizzare il contenuto di un file senza salvarlo, soprattutto se si tratta di un piccolo file di testo.

Esempio: per visualizzare il contenuto di un file di testo ospitato su https://example.com/file.txt, esegui:

curl https://example.com/file.txt

Per documenti di testo brevi questo approccio va bene. Tuttavia, file di grandi dimensioni o binari possono riempire lo schermo di dati illeggibili, quindi di solito è preferibile salvarli.

Salvare file remoti

Spesso, l’obiettivo principale è salvare il file scaricato sul computer locale anziché visualizzarlo nel terminale. cURL semplifica questo con l’opzione -O (O maiuscola), che conserva il nome originale del file remoto.

curl -O https://example.com/file.txt

Questo scarica file.txt e lo salva nella directory corrente con lo stesso nome. Questo metodo è rapido e mantiene il nome esistente, utile se il nome del file ha un significato specifico.

Scegliere un nome di file diverso

A volte è importante rinominare il file scaricato per evitare conflitti o creare una convenzione di nomi chiara. In questo caso, usa l’opzione -o (o minuscola):

curl -o miofile.txt https://example.com/file.txt

Qui, cURL scarica il file remoto file.txt ma lo salva localmente come miofile.txt. Questo aiuta a mantenere i file organizzati e a evitare sovrascritture accidentali. È particolarmente utile negli script che richiedono nomi di file descrittivi.

Seguire i reindirizzamenti

Quando si richiede un file, i server possono istruire il client a passare a un altro URL. Comprendere e gestire i reindirizzamenti è fondamentale per completare correttamente i download.

Perché i reindirizzamenti sono importanti

I reindirizzamenti sono comunemente utilizzati per siti web riorganizzati, file spostati o mirror. Senza il supporto per i reindirizzamenti, cURL si ferma dopo aver ricevuto una risposta “spostato” e non otterrai il file.

Usare -L o --location

Per indicare a cURL di seguire una catena di reindirizzamenti fino alla destinazione finale, utilizza -L (o --location):

curl -L -O https://example.com/redirected-file.jpg

Questo consente a cURL di recuperare il file corretto anche se l’URL originale punta altrove. Se ometti -L, cURL mostrerà semplicemente il messaggio di reindirizzamento e terminerà, il che può essere un problema su siti con più reindirizzamenti.

Scaricare più file

cURL può anche gestire più download contemporaneamente, evitando di dover eseguire ripetutamente il comando.

Utilizzare parentesi graffe e modelli

Se i nomi dei file condividono un modello, le parentesi graffe {} consentono di specificare ciascun nome in modo conciso:

curl -O https://example.com/files/{file1.jpg,file2.jpg,file3.jpg}

cURL scarica ogni file in sequenza, rendendolo utile per i flussi di lavoro automatizzati.

Usare intervalli

Per una serie di file numerati o etichettati alfabeticamente, specifica un intervallo tra parentesi quadre:

curl -O https://example.com/files/file[1-5].jpg

cURL itera automaticamente tra i file file1.jpg e file5.jpg. È ideale per sequenze di file con nomi coerenti.

Collegare più download

Se hai URL diversi per ciascun file, puoi concatenarli:

curl -O https://example1.com/file1.jpg -O https://example2.com/file2.jpg

Questo approccio scarica file1.jpg dal primo sito e file2.jpg dal secondo senza dover eseguire più comandi.

Limitazione della velocità e timeout

In alcune situazioni, potresti voler controllare la velocità di download o evitare che cURL attenda troppo a lungo un server non reattivo.

Controllo della larghezza di banda

Per evitare di sovraccaricare la rete o simulare condizioni lente, limita la velocità di download con --limit-rate:

curl --limit-rate 2M -O https://example.com/bigfile.zip

2M indica 2 megabyte al secondo. Puoi anche usare K per kilobyte o G per gigabyte.

Timeout

Se un server è troppo lento, puoi chiedere a cURL di interrompere l’operazione dopo un determinato periodo. L’opzione --max-time serve proprio a questo:

curl --max-time 60 -O https://example.com/file.iso

Qui, cURL si interrompe dopo 60 secondi, utile negli script che necessitano di un fallimento rapido.

Modalità silenziosa e dettagliata

cURL può adattare la sua uscita per mostrare informazioni minime o dettagli estesi.

Download silenziosi

Per attività automatiche o cron job in cui non hai bisogno della barra di avanzamento, includi -s (o --silent):

curl -s -O https://example.com/file.jpg

Questo nasconde il progresso e gli errori, utile per log più puliti. Tuttavia, è più difficile eseguire il debug se si verifica un errore silenzioso.

Modalità dettagliata

Al contrario, -v (o --verbose) mostra informazioni dettagliate sulle richieste e risposte:

curl -v https://example.com

L’output dettagliato è prezioso per risolvere problemi come certificati SSL non validi o reindirizzamenti errati.

Autenticazione e sicurezza

Alcuni download richiedono credenziali o una connessione sicura.

Autenticazione HTTP/FTP

Quando un server richiede un nome utente e una password, usa -u:

curl -u username:password -O https://example.com/protected/file.jpg

Inserire direttamente le credenziali può essere rischioso, poiché potrebbero apparire nei log o nei processi. Prendi in considerazione l’uso di variabili d’ambiente o file .netrc per una gestione più sicura.

HTTPS e certificati

Per impostazione predefinita, cURL verifica i certificati SSL. Se il certificato non è valido, cURL blocca il trasferimento. Puoi ignorare questo controllo con -k o --insecure, anche se ciò comporta rischi per la sicurezza. Quando possibile, utilizza un’autorità di certificazione affidabile per mantenere connessioni autenticate.

Uso di un proxy

In alcuni ambienti, il traffico deve passare attraverso un server proxy prima di raggiungere la destinazione.

Scaricare tramite proxy

Usa l’opzione -x o --proxy per specificare il proxy:

curl -x http://proxy_host:proxy_port -O https://example.com/file.jpg

Sostituisci proxy_host e proxy_port con i dati appropriati. cURL inoltra la richiesta al proxy, che poi recupera il file per tuo conto.

Autenticazione proxy

Se il proxy richiede credenziali, includile nell’URL:

curl -x https://proxy.example.com:8080 -U mioutente:miapassword -O https://example.com/file.jpg

Anche in questo caso, archiviare dati sensibili in testo normale è pericoloso. È meglio usare variabili d’ambiente o file di configurazione.

Monitorare l’avanzamento del download

Monitorare l’avanzamento del download è importante per file di grandi dimensioni o connessioni lente.

Indicatore di avanzamento predefinito

Per impostazione predefinita, cURL mostra un indicatore di avanzamento che include dimensione totale, velocità di trasferimento e tempo stimato di completamento. Ad esempio:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  1256  100  1256    0     0   2243      0 --:--:-- --:--:-- --:--:--  2246

Questa visualizzazione ti aiuta a stimare quanto manca e se la velocità di trasferimento è adeguata.

Barra di avanzamento compatta

Se vuoi meno dettagli, aggiungi -#:

curl -# -O https://example.com/largefile.iso

Una barra più semplice mostra l’avanzamento complessivo in percentuale. È più leggibile ma non include statistiche dettagliate come la velocità attuale.

Registrare l’avanzamento negli script

Quando utilizzi cURL all’interno di script, potresti voler registrare i dati sull’avanzamento. Normalmente, cURL invia queste informazioni a stderr, quindi puoi reindirizzarle:

curl -# -O https://example.com/largefile.iso 2>progress.log

Qui, progress.log contiene gli aggiornamenti di stato che puoi analizzare o salvare per revisioni future.

Conclusione

cURL si distingue come uno strumento da riga di comando flessibile per scaricare file tramite diversi protocolli e ambienti. Che tu debba gestire reindirizzamenti complessi, rinominare file al volo o limitare la larghezza di banda, cURL offre tutte le opzioni necessarie. Padroneggiando i suoi principali parametri e modalità, potrai integrare cURL senza problemi nel tuo flusso di lavoro quotidiano per scripting, automazione e trasferimenti di file più efficienti.

Sistema: Linux
20.10.2025
Reading time: 8 min

Simili

Sistema: Linux

Come utilizzare il comando Telnet su Linux

Il comando Telnet è un pratico strumento di comunicazione di rete in Linux. Dall’analisi delle porte remote alla risoluzione dei problemi di connessione, Telnet offre un modo semplice e basato su testo per interagire con un host remoto. In questa guida passo passo vedremo come installare, configurare e utilizzare Telnet su Linux, insieme alle sue principali opzioni e funzionalità per una comprensione completa. Che cos’è Telnet? Telnet (abbreviazione di Telecommunication Network) è un protocollo di rete che consente di connettersi a un altro computer remoto tramite il TCP (Transmission Control Protocol). Permette di collegarsi direttamente a un host remoto su una porta specifica per inviare comandi e leggere le risposte in tempo reale. Telnet viene principalmente utilizzato per: Testare porte aperte: verificare se un server ha una porta disponibile. Accedere ai servizi: connessione diretta a servizi web, di posta elettronica o altri servizi di rete. Risoluzione dei problemi di rete: individuare problemi di connettività o porte bloccate. Installazione di Telnet su Linux Telnet non è preinstallato nella maggior parte delle distribuzioni Linux moderne. Il metodo di installazione varia in base al tipo di sistema. Per sistemi basati su Ubuntu/Debian Gli utenti di Ubuntu, Debian o distribuzioni simili possono installare Telnet con il gestore di pacchetti APT: sudo apt install telnet Per sistemi basati su Red Hat/CentOS Su Red Hat, CentOS o Fedora, usa yum o dnf: sudo yum install telnet oppure, per versioni più recenti: sudo dnf install telnet Sintassi del comando Telnet La sintassi del comando Telnet è molto semplice: telnet [hostname/IP] [port] Parametri: [hostname/IP]: Sspecifica il nome host o l’indirizzo IP del server remoto. [port]: definisce il numero della porta a cui connettersi (predefinito: 23). Telnet stabilisce una connessione diretta ai servizi su porte specifiche, ad esempio: HTTP (porta 80), SMTP (porta 25) e FTP (porta 21). Principali opzioni del comando Telnet Il comando Telnet è altamente configurabile e dispone di diverse opzioni che ne ampliano l’utilità. Opzione Descrizione -4 Forza l’uso di IPv4. -6 Forza l’uso di IPv6. -8 Consente la trasmissione di dati a 8 bit. -E Disabilita il carattere di escape. -K Impedisce l’invio automatico delle credenziali (es. ticket Kerberos). -L Attiva la modalità loopback per connettersi allo stesso host. -X atype Specifica il tipo di autenticazione (es. KERBEROS_V4). -a Inserisce automaticamente il nome utente durante l’accesso. -d Attiva la modalità debug e mostra dettagli sulla connessione. -e char Imposta un carattere di escape personalizzato. -l user Specifica il nome utente per il tentativo di login. -n tracefile Registra l’attività della sessione in un file di log. -b addr Definisce l’indirizzo o l’interfaccia locale per la connessione. -r Crea una connessione Telnet inversa (reverse Telnet). Utilizzo di Telnet: esempi pratici Telnet è uno strumento utile per testare e diagnosticare connessioni di rete. Vediamo alcuni esempi pratici. Testare porte aperte Per verificare se la porta 80 di un server è aperta: telnet example.com 80 Se la porta è aperta, Telnet mostrerà una schermata vuota, segno che la porta è in ascolto. Se la porta è chiusa o bloccata da un firewall, apparirà un messaggio come: Connection refused Interagire con server SMTP Telnet può essere utilizzato per debuggare server di posta elettronica, inviando comandi SMTP diretti: telnet mail.example.com 587 Una volta stabilita la connessione, puoi digitare comandi come HELO, MAIL FROM e RCPT TO per comunicare con il server. Inviare richieste HTTP Telnet può essere utilizzato per testare manualmente un server web inviando richieste HTTP: telnet example.com 80 Dopo la connessione, digita: GET / HTTP/1.1 Host: example.com Premi Invio due volte per inviare la richiesta. La risposta del server verrà visualizzata immediatamente. Forzare una connessione IPv4 Se il server supporta IPv4 e IPv6, puoi forzare la connessione tramite IPv4: telnet -4 example.com 80 Questo garantisce compatibilità con reti che utilizzano solo IPv4. Verificare un server MySQL Telnet può essere usato anche per verificare se la porta MySQL (3306) è aperta: telnet database.example.com 3306 Se la connessione riesce, Telnet mostrerà un messaggio di benvenuto dal server MySQL. Considerazioni sulla sicurezza Sebbene utile, Telnet è fondamentalmente insicuro, poiché trasmette tutti i dati — incluse le password — in chiaro. 👉 Quindi: Evita di utilizzare Telnet su reti non sicure. Preferisci sempre una rete privata o protetta. Utilizza alternative sicure come SSH (Secure Shell) per comunicazioni cifrate. Disattiva Telnet sui server se non è necessario. Casi d’uso avanzati Telnet può essere utile anche in contesti più specifici: Monitoraggio dei servizi: verifica protocolli come IMAP o POP3 per diagnosticare problemi di posta. Gestione di dispositivi IoT: alcuni dispositivi connessi utilizzano Telnet come interfaccia testuale. Uso didattico: ottimo strumento per studiare protocolli di rete e risposte dei server. Problemi comuni e soluzioni Nonostante la sua semplicità, Telnet può incontrare vari problemi. Connection Refused: La porta di destinazione è chiusa o bloccata. Time-Out Errors: Ritardo di rete o problemi di routing. Permission Denied: Permessi utente insufficienti o porta riservata. Controllare regolarmente le configurazioni del server e del firewall può aiutare a evitare questi errori. Alternative a Telnet Poiché Telnet non offre crittografia, rappresenta un rischio per la sicurezza. Esistono alternative più sicure e con funzionalità equivalenti: SSH (Secure Shell): l’alternativa più diffusa, con comunicazione cifrata e autenticazione sicura. → Usa il comando ssh per connetterti in modo sicuro ai server remoti. Netcat (nc): potente strumento per debugging, scansione di porte e test di connessione (TCP/UDP). OpenSSL s_client: utile per testare connessioni SSL/TLS in modo sicuro su porte specifiche. Conclusione Telnet è uno strumento semplice ma potente per la diagnosi e il debugging di reti su Linux. Finché si è consapevoli delle sue limitazioni in termini di sicurezza, rimane una risorsa pratica per testare servizi di rete e risolvere problemi di connettività. Con questa guida, puoi installare, configurare e utilizzare Telnet in modo efficiente e sicuro per gestire i tuoi sistemi Linux a distanza.
13 October 2025 · 6 min to read
Linux

Come copiare file tramite SSH

Il protocollo SSH (Secure Shell) è un protocollo di rete utilizzato per la gestione remota dei sistemi operativi tramite linea di comando ed è ampiamente considerato lo standard per l’accesso remoto alle macchine *nix. Consente l’accesso sicuro a un server, l’esecuzione di comandi remoti, la gestione dei file (creazione, eliminazione, copia, ecc.) e altro ancora. La maggior parte dei provider cloud richiede SSH per accedere ai propri servizi. In questo articolo vedremo come copiare file tramite SSH su sistemi Windows e Linux. Come funziona SSH SSH può trasmettere in modo sicuro qualsiasi tipo di dato (audio, video, dati di protocollo) attraverso un canale crittografato. A differenza di protocolli obsoleti e non sicuri come Telnet e rlogin, SSH garantisce la riservatezza e l’autenticità dei dati — elementi fondamentali per la comunicazione su Internet. Ecco come si stabilisce una connessione sicura tra client e server: Connessione TCP: per impostazione predefinita, il server ascolta sulla porta 22. Entrambe le parti condividono un elenco di algoritmi supportati (compressione, crittografia, scambio di chiavi) e concordano quali utilizzare.   Autenticazione: per evitare furti d’identità, entrambe le parti verificano le proprie identità utilizzando la crittografia asimmetrica (chiavi pubbliche/private). Il server viene autenticato per primo. Alla prima connessione, il client mostra un avviso con i dettagli del server. Le chiavi dei server fidati vengono memorizzate in /home/<username>/.ssh/known_hosts.   Generazione della chiave: una volta verificato il server, entrambe le parti generano una chiave simmetrica per crittografare tutti i dati scambiati.   Autenticazione dell’utente: avviene tramite password o chiave pubblica inviata dal client e memorizzata sul server in /home/<username>/.ssh/authorized_keys. L’implementazione più popolare su Linux è OpenSSH, preinstallata nella maggior parte delle distribuzioni (Ubuntu, Debian, RHEL, ecc.). Su Windows si utilizzano client come PuTTY o MobaXterm. Da Windows 10 e Server 2019, gli strumenti OpenSSH sono disponibili nativamente. Copiare file tramite SSH Due strumenti principali per copiare file su Linux sono scp e sftp. Entrambi sono inclusi in OpenSSH. SSH supporta due versioni di protocollo: 1 e 2. OpenSSH supporta entrambe, ma la versione 1 è raramente utilizzata. Configurare l’autocompletamento Per attivare l’autocompletamento con Tab usando scp, configura l’autenticazione con chiave pubblica: Generare una coppia di chiavi: ssh-keygen Esempio di output: Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Per impostazione predefinita, le chiavi (id_rsa per quella privata e id_rsa.pub per quella pubblica) vengono salvate in ~/.ssh/. Copiare la chiave pubblica sulla macchina remota: ssh-copy-id [username]@[ip-address] Dopo aver inserito la password dell’utente, apparirà un messaggio di conferma. Secure Copy (SCP) Per piccoli trasferimenti di dati (ad es. file di configurazione), scp è l’opzione ideale. Copiare da locale a remoto: scp test.txt user@192.168.1.29:/home/user/ Copiare più file: scp test1.txt test2.txt user@192.168.1.29:/home/user/ Copiare da remoto a locale: scp user@192.168.1.29:/home/user/test.txt ~/ Copiare directory: scp -r testdir user@192.168.1.29:/home/user/ Copiare da remoto a remoto: scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/ Secure FTP (SFTP) SFTP è un altro strumento incluso in OpenSSH. A partire da OpenSSH 9.0, scp utilizza SFTP come impostazione predefinita al posto del vecchio protocollo SCP/RCP. A differenza dell’FTP classico, sftp trasmette i dati crittografati attraverso un tunnel sicuro e non richiede un server FTP separato. Esempio d’uso: sftp misato@192.168.1.29 sftp> ls sftp> lcd testdir/ sftp> get test.txt sftp> bye Gestori di file grafici come Midnight Commander e Nautilus utilizzano anch’essi sftp. In Nautilus, il server remoto appare come una cartella locale, ad esempio user@ip. Copying Files Over SSH on Windows Su Windows, lo strumento da riga di comando pscp di PuTTY viene utilizzato per copiare i file. Copiare sul server: pscp C:\server\test.txt misato@192.168.1.29:/home/misato/ Copiare dal server: pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt Elencare i file sul server remoto: pscp -ls user@192.168.1.29:/home/misato Usare virgolette per percorsi con spazi: pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/ Mostrare l’aiuto: pscp Conclusione Abbiamo visto come copiare file da e verso un server utilizzando il protocollo sicuro SSH. Se lavori con server cloud, comprendere SSH è essenziale — è il metodo standard per l’accesso remoto alle macchine *nix ed è una parte fondamentale del lavoro quotidiano di DevOps e amministrazione di sistema.
10 October 2025 · 4 min to read
Linux

Come aprire le porte e visualizzare le porte aperte in Linux

Quando si lavora con le reti in Linux, può essere necessario aprire o chiudere una porta di rete. La gestione delle porte è fondamentale per la sicurezza: meno porte aperte ha un sistema, minori sono i potenziali vettori di attacco. Inoltre, se una porta è chiusa, un utente malintenzionato non può raccogliere informazioni sul servizio in esecuzione su quella porta specifica. Questa guida spiega come aprire o chiudere le porte e come verificare le porte aperte su distribuzioni Linux come Ubuntu/Debian e CentOS/RHEL utilizzando firewall come ufw, firewalld e iptables. Dimostreremo questo processo su due distribuzioni Linux: Ubuntu 22.04 e CentOS 9, eseguite su un VPS Hostman. Tutti i comandi forniti qui funzionano su qualsiasi distribuzione basata su Debian o RHEL. Cos’è una porta di rete? Le porte vengono utilizzate per accedere ad applicazioni e protocolli specifici. Ad esempio, un server può ospitare sia un server web che un database — le porte instradano il traffico verso il servizio appropriato. Tecnicamente, una porta di rete è un numero intero non negativo compreso tra 0 e 65535. Porte riservate (0–1023): utilizzate da protocolli e servizi di rete noti come SSH (porta 22), FTP (porta 21), HTTP (porta 80) e HTTPS (porta 443). Porte registrate (1024–49151): possono essere utilizzate da applicazioni specifiche per la comunicazione. Porte dinamiche (49152–65535): utilizzate per connessioni temporanee e assegnate dinamicamente alle applicazioni. Come aprire le porte nelle distribuzioni Linux basate su Debian Nei sistemi basati su Debian (Ubuntu, Debian, Linux Mint, ecc.), puoi utilizzare ufw (Uncomplicated Firewall). ufw è preinstallato nella maggior parte delle distribuzioni basate su APT. Per verificare se è installato: ufw version Se viene visualizzata una versione, ufw è installato. In caso contrario, installalo con: apt update && apt -y install ufw Per impostazione predefinita, ufw è inattivo, il che significa che tutte le porte sono aperte. Puoi verificarne lo stato con: ufw status Per attivarlo: ufw enable Dovrai confermare con y. Nota che l’attivazione di ufw può interrompere le connessioni SSH attive. Per impostazione predefinita, ufw blocca tutto il traffico in ingresso e consente tutto il traffico in uscita. Per controllare la politica predefinita: cat /etc/default/ufw Aprire le porte con ufw Per aprire una porta: ufw allow <port_number> Esempio — aprire la porta 22 per SSH: ufw allow 22 Puoi aprire più porte separandole con virgole e specificando il protocollo (tcp o udp): ufw allow 80,443,8081,8443/tcpufw allow 80,443,8081,8443/udp Invece dei numeri di porta, puoi usare il nome del servizio (definito in /etc/services).  Esempio — aprire Telnet (porta 23): ufw allow telnet Nota: Non puoi specificare più nomi di servizio contemporaneamente; ufw restituirà un errore: Per aprire un intervallo di porte: ufw allow <start_port>:<end_port>/<protocol> Esempio: ufw allow 8000:8080/tcp Chiudere le porte con ufw Per chiudere una porta: ufw deny <port_number> Esempio — chiudere la porta 80: ufw deny 80 Puoi anche usare il nome del servizio. Esempio — chiudere FTP (porta 21): ufw deny ftp Visualizzare le porte aperte con ufw Per elencare tutte le porte aperte e chiuse: ufw status Oppure per una visualizzazione più dettagliata: ufw status verbose Aprire una porta nelle distribuzioni Linux basate su RHEL Le distribuzioni basate su RHEL (CentOS 7+, RHEL 7+, Fedora 18+, OpenSUSE 15+) utilizzano firewalld come impostazione predefinita. Aprire le porte con firewalld Verifica se firewalld è installato: firewall-offline-cmd -V Se viene visualizzata una versione, firewalld è installato. In caso contrario, installalo: dnf install firewalld Per impostazione predefinita, firewalld è disabilitato. Controllane lo stato: firewall-cmd --state Per abilitarlo: systemctl start firewalld Aprire la porta 8080 per TCP: firewall-cmd --zone=public --add-port=8080/tcp --permanent --zone=public: specifica la zona per la regola. --add-port=8080/tcp: specifica la porta e il protocollo. --permanent: salva la regola in modo permanente. Puoi anche aprire un servizio utilizzando il suo nome, ad esempio HTTP (porta 80): firewall-cmd --zone=public --add-service=http --permanent Applicare le modifiche: firewall-cmd --reload Chiudere le porte con firewalld Per chiudere una porta per numero: firewall-cmd --zone=public --remove-port=8080/tcp --permanent Oppure per nome del servizio: firewall-cmd --zone=public --remove-service=http --permanent Ricarica sempre dopo le modifiche: firewall-cmd --reload Elencare le porte aperte con firewalld Per elencare tutte le porte aperte: firewall-cmd --list-ports Gestire le porte con iptables A differenza di ufw e firewalld, иptables è preinstallato in molte distribuzioni (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux). Aprire le porte con iptables Per aprire la porta 8182 per connessioni in ingresso: iptables -A INPUT -p tcp --dport 8182 -j ACCEPT -A INPUT: aggiunge una regola alla catena INPUT. -p tcp: specifica il protocollo. --dport 8182: specifica la porta da aprire. -j ACCEPT: consente il traffico attraverso la porta. Per le connessioni in uscita: iptables -A OUTPUT -p tcp --dport 8182 -j ACCEPT Per aprire un intervallo di porte: iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j ACCEPT Chiudere le porte con iptables Per chiudere una porta: iptables -A INPUT -p tcp --dport 8182 -j DROP Chiudere un intervallo di porte: iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j DROP Salvare le regole di iptables Per impostazione predefinita, le regole di iptables sono valide solo fino al riavvio del server. Per salvarle in modo permanente, installa iptables-persistent: Per i sistemi basati su APT: apt update && apt -y install iptables-persistent Per i sistemi basati su DNF: dnf -y install iptables-persistent Salvare le regole attuali: iptables-save Le regole verranno caricate automaticamente al successivo riavvio. Visualizzare le porte aperte con iptables Elencare tutte le regole e le porte aperte: iptables -L -v -n Elencare solo le regole IPv4: iptables -S Elencare le regole IPv6: ip6tables -S Conclusione In questa guida abbiamo mostrato come aprire e chiudere le porte di rete in Linux e come controllare le porte attualmente aperte utilizzando tre strumenti diversi: ufw, firewalld e iptables. Una corretta gestione delle porte riduce il rischio di potenziali attacchi alla rete e aiuta a nascondere le informazioni sui servizi che utilizzano tali porte.
10 October 2025 · 6 min to read

Hai domande,
commenti o dubbi?

I nostri professionisti sono disponibili per assisterti in ogni momento,
che tu abbia bisogno di aiuto o non sappia da dove iniziare.
Inviaci un'email
Hostman's Support