Accedi
Accedi

Come aprire le porte e visualizzare le porte aperte in Linux

Come aprire le porte e visualizzare le porte aperte in Linux
Hostman Team
Redattore tecnico
Sistema: Linux Rete
10.10.2025
Reading time: 6 min

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

Image7

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/tcp
ufw allow 80,443,8081,8443/udp

Invece dei numeri di porta, puoi usare il nome del servizio (definito in /etc/services). 

Image8

Esempio — aprire Telnet (porta 23):

ufw allow telnet

Nota: Non puoi specificare più nomi di servizio contemporaneamente; ufw restituirà un errore:

Image1 (1)

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

Image18

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.

Image12

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

Image4

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, iptables è 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.

Sistema: Linux Rete
10.10.2025
Reading time: 6 min

Simili

Sistema: Linux

Come aprire una porta su Linux

Aprire le porte in Linux è un’operazione fondamentale che consente a determinati servizi o applicazioni di scambiare dati sulla rete. Le porte agiscono come canali di comunicazione, permettendo l’accesso ai servizi autorizzati e bloccando quelli non autorizzati. La loro corretta gestione garantisce sicurezza, buone prestazioni e funzionamento stabile delle applicazioni. Comprendere le porte e la loro funzione Le porte sono gli endpoint logici della comunicazione di rete, attraverso i quali i dispositivi inviano e ricevono informazioni. Esempi comuni: HTTP → Porta 80 HTTPS → Porta 443 SSH → Porta 22 Una porta aperta indica che un servizio è in ascolto e accetta connessioni in ingresso. Una porta chiusa, invece, blocca la comunicazione. Per garantire sicurezza e disponibilità dei servizi, è fondamentale gestire correttamente le porte aperte su Linux. Verificare le porte aperte su Linux Prima di aprire una nuova porta, conviene controllare quali porte sono già attive. Puoi farlo con diversi comandi Linux. Con netstat Per mostrare le porte aperte, esegui: netstat -tuln L’opzione -tuln limita l’output alle porte TCP e UDP, senza risolvere i nomi host. netstat offre una panoramica in tempo reale delle connessioni attive. Nota: se netstat non è installato: sudo apt install net-tools Con ss Il comando ss è una versione più moderna e veloce di netstat: ss -tuln Mostra le porte attualmente in uso e le relative informazioni sui socket. Con nmap Per un’analisi più approfondita: nmap localhost nmap esegue una scansione dell’host specificato (in questo caso localhost) per individuare le porte aperte — utile per capire quali servizi sono esposti alla rete pubblica. Nota: installa nmap con: sudo apt install nmap Aprire porte su Linux Per consentire l’accesso attraverso una porta specifica, occorre modificare le regole del firewall. Linux offre vari strumenti: iptables, ufw e firewalld. Ecco come utilizzarli. Metodo 1: con iptables iptables è un potente strumento a basso livello che offre un controllo preciso sul traffico di rete. Aggiungere una regola per una porta specifica Esempio: aprire la porta 8080 per traffico HTTP: sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT Spiegazione: sudo: esegue il comando come amministratore -A INPUT: aggiunge la regola alla catena di input (traffico in ingresso) -p tcp: si applica al protocollo TCP --dport 8080: specifica la porta 8080 -j ACCEPT: accetta il traffico corrispondente alla regola Queste modifiche non sono permanenti: dopo il riavvio del sistema, le regole vengono cancellate. Salvare la configurazione Per rendere le regole permanenti: sudo apt install iptables iptables-persistent sudo netfilter-persistent save Le regole vengono così memorizzate e ricaricate automaticamente a ogni riavvio. Ricaricare le modifiche sudo netfilter-persistent reload Metodo 2: con ufw (Uncomplicated Firewall) ufw è un’interfaccia semplificata per iptables che permette di gestire facilmente le regole del firewall. Abilitare ufw sudo ufw enable Se non è installato: sudo apt install ufw Aprire una porta specifica Esempio: consentire connessioni SSH sulla porta 22: sudo ufw allow 22/tcp Questo comando autorizza il traffico TCP in ingresso sulla porta 22. Verificare lo stato del firewall sudo ufw status Mostra tutte le regole attive e le porte aperte. Metodo 3: con firewalld firewalld è un demone firewall dinamico che semplifica la gestione delle regole. Aggiungere una regola permanente Esempio: aprire la porta 443 (HTTPS): sudo firewall-cmd --permanent --add-port=443/tcp Installazione e avvio di firewalld: sudo apt install firewalld sudo systemctl enable firewalld sudo systemctl start firewalld Ricaricare le regole sudo firewall-cmd --reload Verificare che la porta sia aperta sudo firewall-cmd --list-all Visualizza tutte le zone e le regole attive, incluse le porte aperte. Testare la porta aperta Dopo aver aperto una porta, assicurati che sia effettivamente accessibile. Con telnet telnet localhost port_number Se la connessione va a buon fine, la porta è aperta e operativa. Con nmap nmap -p port_number localhost Scansiona il port specificato per verificarne la disponibilità. Con curl curl localhost:port_number Una risposta positiva indica che il servizio è attivo sulla porta aperta. Risoluzione dei problemi comuni Se l’apertura di una porta non funziona: Controlla le regole del firewall iptables -L ufw status Verifica lo stato del servizio systemctl status <nome_servizio> Aprire porte in base al protocollo A seconda del servizio, può essere richiesto TCP o UDP. Porta TCP Esempio: consentire il traffico MySQL sulla porta 3306: sudo ufw allow 3306/tcp Porta UDP Esempio: aprire la porta 161 per SNMP: sudo ufw allow 161/udp Gestire l’accessibilità delle porte Limitare l’accesso a un indirizzo IP specifico sudo ufw allow from 192.168.1.100 to any port 22 Permette l’accesso SSH solo da quell’indirizzo IP, migliorando la sicurezza. Chiudere una porta sudo ufw deny 80/tcpBlocca il traffico in ingresso sulla porta 80 (HTTP). Conclusione Verificare e aprire le porte in Linux è essenziale per garantire il corretto funzionamento della rete e la sicurezza dei servizi. Con strumenti come iptables, ufw e firewalld puoi controllare il traffico in modo preciso e sicuro. Effettua sempre test con nmap, curl o telnet per assicurarti che le configurazioni siano corrette. Una buona gestione delle porte è la base per server affidabili, connessioni sicure e prestazioni ottimali.
29 October 2025 · 5 min to read
Sistema: Linux

Scorciatoie da tastiera Linux: le migliori combinazioni per gli utenti

Le scorciatoie da tastiera in Linux sono strumenti estremamente utili che permettono di lavorare in modo più efficiente. Invece di usare il mouse e navigare nei menu, puoi spesso premere solo un paio di tasti per ottenere lo stesso risultato in meno tempo. I sistemi operativi Linux supportano un’ampia gamma di scorciatoie, o hotkey. È importante notare che ogni distribuzione può avere combinazioni specifiche che non funzionano altrove. Tuttavia, gli utenti possono aggiungere nuove combinazioni o modificare quelle esistenti nelle impostazioni di sistema. In questo articolo vedremo le combinazioni universali, valide per la maggior parte degli ambienti desktop. La maggior parte delle scorciatoie descritte riguarda l’uso del terminale. Scorciatoie di base di Linux Cominciamo con le scorciatoie generali, utili per svolgere attività ripetitive più rapidamente. Molte di esse utilizzano il tasto Super, che corrisponde al tasto Windows nei sistemi Windows o al tasto Cmd in macOS. Ad esempio, la scorciatoia Super + Spazio per cambiare layout di tastiera in Linux è simile a Windows + Spazio o Cmd + Spazio. Combinazioni principali: Alt + Tab o Super + Tab – Passa tra le finestre aperte (come su Windows). Super + Spazio – Cambia layout di tastiera. Super + A – Apre il menu delle applicazioni (solitamente in basso a sinistra). F2 – Rinomina un file selezionato. Clicca sul file, poi premi F2. Ctrl + Alt + T – Apre il terminale, una delle scorciatoie più importanti di Linux. Alt + F2 – Apre una finestra di comando al centro dello schermo per eseguire un programma. Super + D – Minimizza tutte le finestre e mostra il desktop. Ctrl + Alt + Canc – Apre un prompt con le opzioni “Annulla” e “Disconnetti”.Se non viene effettuata alcuna scelta, il sistema esegue automaticamente il logout dopo 60 secondi. Queste combinazioni aiutano a lavorare più velocemente e in modo più ordinato. Passiamo ora ai comandi rapidi del terminale, fondamentali per gli utenti Linux. Scorciatoie del terminale Linux Il terminale è lo strumento principale per interagire con la shell Linux. Le scorciatoie seguenti permettono di lavorare in modo più rapido ed efficiente. Gestione di finestre e schede del terminale Queste scorciatoie servono per aprire, passare o chiudere rapidamente schede e finestre del terminale: Ctrl + Shift + Q – Chiude completamente la finestra del terminale. Ctrl + Shift + T – Apre una nuova scheda. Ctrl + Shift + W – Chiude la scheda corrente (o la finestra, se è l’unica aperta). Ctrl + Shift + D – Stacca la scheda corrente e la apre in una nuova finestra. Ctrl + PgUp / PgDown – Passa tra le schede (precedente/successiva). Movimento del cursore in una riga Gli utenti Linux lavorano quasi sempre con la tastiera. Queste combinazioni evitano l’uso del mouse e permettono di spostarsi nel testo più velocemente: Ctrl + A (o Home) – Sposta il cursore all’inizio della riga. Ctrl + E (o End) – Sposta il cursore alla fine della riga. Ctrl + X, X – Passa rapidamente all’inizio della riga e poi torna alla posizione originale. Ctrl + → / ← o Alt + F / B – Muove il cursore di una parola avanti o indietro. Inserimento e modifica dei comandi Oltre a muovere il cursore, queste scorciatoie semplificano la scrittura e la modifica dei comandi: Tab – Una delle scorciatoie più utili: completa automaticamente comandi e percorsi.Premila una volta per completare, due volte per visualizzare i suggerimenti. Ctrl + T – Scambia le ultime due lettere prima del cursore. Alt + T – Scambia le ultime due parole prima del cursore. Alt + Backspace – Cancella la parola precedente. Alt + D – Cancella tutti i caratteri dopo il cursore fino al successivo spazio. Alt + U / Alt + L – Converte in maiuscolo o minuscolo il testo a destra del cursore. Operazioni con gli appunti Queste combinazioni permettono di tagliare, copiare e incollare testo nel terminale: Ctrl + W – Cancella la parola precedente. Ctrl + U – Cancella tutto dal cursore all’inizio della riga. Ctrl + K – Cancella tutto dal cursore alla fine della riga. Ctrl + Y – Incolla l’ultimo testo cancellato. Navigazione nella cronologia dei comandi I seguenti tasti aiutano a richiamare rapidamente comandi precedentemente usati. Per visualizzare l’elenco completo dei comandi eseguiti: history Altri comandi utili: Ctrl + R – Cerca un comando usato in precedenza.Premi Invio per eseguirlo o Esc per annullare. Ctrl + O – Esegue il comando trovato. Alt + < – Carica il primo comando della cronologia. Gestione dello schermo e dei processi Queste scorciatoie gestiscono la quantità di informazioni visualizzate e il controllo dei processi attivi: Ctrl + C – Interrompe immediatamente il processo attivo (segnale SIGINT). Ctrl + D – Chiude il terminale (equivalente al comando exit). Ctrl + Z – Sospende il processo corrente e lo invia in background.Usa fg per riportarlo in primo piano o jobs per elencare i processi in background. Ctrl + L – Pulisce la finestra del terminale (equivalente a clear). Ctrl + S / Ctrl + Q – Ctrl + S sospende l’output, Ctrl + Q lo riprende.Utile per fermare temporaneamente la visualizzazione e analizzare un testo. Aggiungere o modificare scorciatoie In alcune distribuzioni, certe combinazioni potrebbero non funzionare o mancare. Ogni ambiente Linux ha una lista predefinita di scorciatoie, ma è possibile personalizzarle facilmente. Procedura: Premi Super + A per aprire il menu delle applicazioni. Cerca e apri Impostazioni. Vai su Dispositivi → Tastiera. Sulla destra vedrai l’elenco delle scorciatoie predefinite. Clicca su un comando per modificarlo o assegnare una nuova combinazione. Per aggiungere una scorciatoia personalizzata, clicca sul pulsante “+” in basso. Inserisci il nome, il comando da eseguire e la combinazione di tasti desiderata. Conclusione Abbiamo esaminato le principali scorciatoie di Linux che semplificano e velocizzano il flusso di lavoro quotidiano. Naturalmente, questa non è una lista completa: ogni distribuzione offre combinazioni aggiuntive per diverse funzionalità. Conoscere e usare queste scorciatoie renderà l’esperienza Linux più fluida, produttiva e piacevole, soprattutto nel terminale.
28 October 2025 · 6 min to read
Sistema: Linux

Che cos’è un daemon in informatica?

Il termine daemon deriva dalla mitologia greca antica, dove indicava un essere immateriale che influenzava il mondo umano. In informatica, soprattutto nei sistemi operativi di tipo UNIX, un daemon è un processo in background che si esegue senza interazione diretta con l’utente. Non dipende da un terminale o da un’interfaccia grafica e in genere viene avviato all’avvio del sistema o in determinate condizioni. Che cos’è un daemon La funzione principale di un daemon è fornire servizi specifici ad altri processi o utenti. Ad esempio, un daemon può restare in ascolto su porte di rete in attesa di connessioni, monitorare eventi di sistema e rispondere quando vengono soddisfatte determinate condizioni, gestire attività pianificate (come cron), inviare e-mail (sendmail) e molto altro. In Windows, l’equivalente più vicino a un daemon è un servizio (Service). La differenza principale risiede nel modo in cui vengono avviati, registrati, gestiti e configurati all’interno del sistema operativo. Tuttavia, lo scopo è lo stesso: garantire il funzionamento continuo in background di determinate funzioni o servizi. Caratteristiche principali di un daemon Esecuzione in background: gli utenti di solito non vedono un’interfaccia del daemon; non scrive sull’output standard (o lo reindirizza ai log) e non richiede input da tastiera. Autonomo: un daemon viene avviato all’avvio del sistema, quando viene richiamato da un sistema di init (come systemd), oppure manualmente dall’utente (tramite script, cron, ecc.). Lunga durata: idealmente un daemon viene eseguito indefinitamente, a meno che non si verifichi un errore critico o riceva un segnale di arresto esplicito. Isolato: di solito viene eseguito sotto un account utente o gruppo separato per ridurre i privilegi, rendendo i servizi più sicuri e facili da gestire. Logging: invece di utilizzare input/output standard, i daemon registrano le informazioni in file di log o nel logger di sistema (journald, syslog, ecc.), utile per il debug e la diagnostica. Daemon in Linux Storicamente, quasi tutte le attività di sistema in background in Linux sono implementate come daemon. Il sistema operativo ne include decine, ciascuno con una funzione specifica. Ecco alcuni esempi: sshd (Secure Shell Daemon): resta in ascolto sulla porta 22 (per impostazione predefinita) e consente agli utenti remoti di connettersi tramite SSH crittografato. Senza sshd, l’accesso remoto al terminale sarebbe quasi impossibile. cron: un daemon di pianificazione dei lavori. Controlla le voci del crontab ed esegue script o comandi secondo una pianificazione, come la pulizia dei log, l’invio di report o i controlli di sistema. syslogd / rsyslog / journald: daemon di registrazione del sistema che raccolgono messaggi dal kernel, dalle utility, da altri daemon e applicazioni, e li salvano nei file di log o nel journal. NetworkManager o Wicd: daemon che gestiscono le impostazioni di rete — automatizzano connessioni a reti cablate/wireless, switch, configurazioni VPN e altro. Questi daemon vengono avviati all’avvio del sistema e registrati nel gestore dei servizi (ad esempio systemd). Restano in esecuzione fino allo spegnimento o riavvio del sistema. Gli utenti interagiscono con essi indirettamente — tramite file di configurazione, comandi da terminale (service, systemctl) o richieste di rete (se il daemon fornisce un’interfaccia HTTP/S, SSH o simile). Come creare e gestire daemon Per implementare un daemon, segui questi passaggi: Creazione del processo (fork): il processo padre chiama fork() e continua l’esecuzione del codice del daemon nel processo figlio. Scollegamento dal terminale di controllo (setsid): per evitare interferenze dell’utente (ad esempio la chiusura del terminale), il daemon chiama setsid() per avviare una nuova sessione e diventarne il leader. Chiusura dei descrittori di input/output standard: poiché il daemon non deve scrivere sullo schermo o attendere input, stdin, stdout e stderr vengono chiusi o reindirizzati ai file di log. Gestione dei segnali e logging: per supportare uno spegnimento pulito o il ricaricamento della configurazione, il daemon deve gestire i segnali (SIGTERM, SIGHUP, ecc.). La registrazione viene generalmente effettuata tramite syslog o file. Ciclo principale: dopo l’inizializzazione, il daemon entra nel ciclo principale: attende eventi, li gestisce e ripete finché non viene interrotto. Vediamo come creare un daemon su Ubuntu 22.04 utilizzando un server cloud Hostman. 1. Scrivere il daemon in C Crea un file chiamato mydaemon.c e inserisci il seguente codice: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <syslog.h> int main() { // Aprire syslog     openlog("mydaemon", LOG_PID, LOG_DAEMON); syslog(LOG_NOTICE, "Daemon started"); // Ciclo infinito principale     while (1) { // Attività in background: monitoraggio, gestione code, ecc. syslog(LOG_NOTICE, "Performing task..."); sleep(60); } // Se il ciclo termina     syslog(LOG_NOTICE, "Daemon stopped"); closelog(); return 0; } 2. Compilare il programma Aggiorna prima i pacchetti: sudo apt update && sudo apt upgrade Installa il compilatore GCC se non è già installato: sudo apt install gcc Compila il daemon: gcc mydaemon.c -o mydaemon 3. Spostare l’eseguibile Sposta il file binario in /usr/local/bin/, una posizione standard per le utility personalizzate: mv mydaemon /usr/local/bin/mydaemon 4. Creare un servizio systemd Crea un file di unità chiamato mydaemon.service: sudo nano /etc/systemd/system/mydaemon.service Inserisci il seguente contenuto: [Unit] Description=My Daemon After=network.target [Service] Type=simple ExecStart=/usr/local/bin/mydaemon Restart=on-failure [Install] WantedBy=multi-user.target Spiegazione dei campi: Description: descrizione mostrata in systemctl status. After=network.target: assicura che il daemon si avvii dopo che la rete è attiva. Type=simple: il daemon non crea sottoprocessi, si esegue come un unico processo. ExecStart: percorso all’eseguibile del daemon. Restart=on-failure: riavvio automatico in caso di errore del daemon. WantedBy=multi-user.target: fa partire il servizio nell’ambiente multiutente standard. 5. Avviare e monitorare il daemon sudo systemctl daemon-reload # Ricaricare la configurazione di systemd sudo systemctl start mydaemon # Avviare il daemon sudo systemctl status mydaemon # Verificare lo stato Se tutto funziona, lo stato mostrerà active. Per visualizzare i log: journalctl -u mydaemon.service -e Esempi di utilizzo dei daemon Server web Il loro compito è restare in ascolto su una porta di rete (di solito 80 o 443), accettare richieste HTTP/HTTPS, generare una risposta (una pagina HTML, dati JSON, ecc.) e restituire il risultato al client. Nella maggior parte dei casi, un server web si avvia con il sistema e rimane in esecuzione fino allo spegnimento o a un comando di stop (es. systemctl stop nginx). Daemon di database MySQL/MariaDB, PostgreSQL, MongoDB — tutti questi sono daemon. Si avviano con il sistema e continuano a funzionare in background, accettando richieste da applicazioni client o servizi web. Questi daemon registrano l’attività, supportano la configurazione tramite file e sono gestiti con strumenti dedicati (o systemd). Pianificatori di attività (cron, atd) Il daemon cron controlla la tabella di pianificazione (crontab) ed esegue programmi negli orari o intervalli specificati dall’utente. Ciò consente di automatizzare backup, aggiornamenti di sistema, controlli di integrità e molte altre attività di routine. atd è un daemon simile, ma esegue le attività solo una volta in un momento specifico (a differenza di cron, che le esegue periodicamente). Servizi di accesso e controllo (sshd, xrdp) sshd (Secure Shell Daemon) fornisce accesso remoto tramite il protocollo SSH. xrdp abilita connessioni desktop remote utilizzando il protocollo RDP. Agisce come daemon che ascolta le connessioni di rete su una porta specifica. Daemon del sistema di init (systemd, init, Upstart) Nei sistemi moderni, il ruolo del “daemon principale” è svolto da systemd (che sostituisce il vecchio sistema SysV init). systemd è il primo processo che parte dopo il kernel ed è responsabile dell’avvio e della gestione di tutti gli altri servizi e processi. Li avvia in parallelo e gestisce le loro dipendenze. In breve, systemd è esso stesso un daemon che “orchestra” tutti gli altri del sistema. Vantaggi e svantaggi dei daemon Vantaggi: Automazione: i daemon permettono di automatizzare il comportamento del sistema — dalla risposta alle richieste di rete alla pianificazione di attività — senza intervento dell’utente. Isolamento: l’esecuzione sotto account o gruppi separati e il distacco dal terminale aumentano la sicurezza, limitando i danni potenziali in caso di compromissione. Funzionamento continuo: un daemon può continuare a fornire servizi (come un server web) senza interruzioni anche se l’utente si disconnette o chiude la console. Gestibilità: Linux fornisce strumenti di sistema (es. systemd, script di init) per gestire centralmente tutti i daemon: avvio, arresto, riavvio e registrazione. Svantaggi: Complessità di debug: poiché i daemon funzionano in background e non mostrano output su console, il debug richiede log dettagliati e configurazioni più complesse (flag di debug, tracciamento, ecc.). Rischi di sicurezza: se un daemon viene eseguito con privilegi elevati (ad esempio come root), una vulnerabilità può compromettere l’intero sistema. È consigliabile eseguirli con privilegi limitati. Gestione delle dipendenze: alcuni daemon possono fallire se, ad esempio, necessitano dell’accesso alla rete prima che questa sia disponibile. I moderni sistemi di init risolvono questo problema, ma con i vecchi script SysV init era comune. Maggior consumo di risorse: qualsiasi processo in esecuzione continua consuma risorse di sistema (memoria, CPU). Un numero eccessivo di daemon può ridurre le prestazioni, soprattutto su sistemi con risorse limitate. Conclusione I daemon sono una parte fondamentale dell’architettura dei sistemi operativi Linux, offrendo ampie capacità di automazione e servizi in background. Consentono agli amministratori di configurare in modo flessibile operazioni di rete, attività pianificate, logging, sistemi di sicurezza e molti altri componenti. Scrivere un proprio daemon richiede la comprensione di processi, segnali, chiamate di sistema e particolare attenzione alla registrazione e alla sicurezza. I moderni sistemi di init (in particolare systemd) hanno semplificato la gestione dei daemon e la logica dei servizi, rendendo la creazione di servizi personalizzati più strutturata e flessibile. Tuttavia, rimane un campo complesso che richiede progettazione accurata, debug e manutenzione costante. Se cerchi una soluzione affidabile, performante ed economica per i tuoi flussi di lavoro, Hostman offre opzioni di Hosting VPS Linux, tra cui Debian VPS, Ubuntu VPS e VPS CentOS.
23 October 2025 · 9 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