QNAP Container Station: Risolvere Conflitti Porte 80/443 & Reverse Proxy [2026]
Di fabbrica, QTS impegna sia la porta 80 che la porta 443 dell'interfaccia di rete fisica. Quando provi a lanciare uno stack Docker Compose con un reverse proxy (es. Nginx Proxy Manager, Traefik o Caddy), Docker crasha restituendo:
Error response from daemon: driver failed programming external connectivity on endpoint: bind: address already in use.
1. Step 1: Liberare le Porte di Sistema di QTS
Per cedere le porte 80 e 443 ai tuoi container Docker, dobbiamo spostare la porta di ascolto di QTS su intervalli non standard:
- Apri il browser e accedi alla dashboard di amministrazione di QTS.
- Vai su Pannello di controllo → Sistema → Impostazioni generali.
- Nella sezione Amministrazione del sistema:
- Numero porta sistema (HTTP): Cambia da
8080o80a8088. - Abilita connessione sicura (HTTPS): Sposta il valore da
443o4433a8443. - Disattiva l'opzione: "Reindirizza automaticamente le connessioni HTTP a HTTPS" se questa opzione è legata alla porta 80.
- Numero porta sistema (HTTP): Cambia da
- Clicca su Applica. (La pagina ricaricherà automaticamente su
https://IP-DEL-NAS:8443).
2. Step 2: Disattivare il Web Server Apache Integrato
Anche dopo aver cambiato le porte di amministrazione, QNAP esegue un server Apache integrato che intercetta la porta 80 per servire la pagina predefinita di benvenuto.
- Nel Pannello di controllo, vai su Applicazioni → Server Web.
- Se il Web Server è abilitato, deseleziona la casella Abilita server Web oppure modifica la sua porta HTTP in
8085e la porta HTTPS in8445. - Clicca su Applica.
3. Step 3: Deploy di Nginx Proxy Manager in Container Station
Ora le porte standard 80 e 443 sono completamente libere sul socket di rete del NAS. Creiamo lo stack Docker Compose per Nginx Proxy Manager.
version: '3.8'
services:
npm-app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # Porta HTTP pubblica liberata
- '443:443' # Porta HTTPS pubblica liberata
- '81:81' # Dashboard di amministrazione web NPM
environment:
DB_MYSQL_HOST: "npm-db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "PasswordSicuraDB2026!"
DB_MYSQL_NAME: "npm"
volumes:
- /share/Container/npm/data:/data
- /share/Container/npm/letsencrypt:/etc/letsencrypt
depends_on:
- npm-db
networks:
- homelab-net
npm-db:
image: 'mariadb:10.11'
container_name: npm-database
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "RootSuperSecretPassword!"
MYSQL_DATABASE: "npm"
MYSQL_USER: "npm"
MYSQL_PASSWORD: "PasswordSicuraDB2026!"
volumes:
- /share/Container/npm/mysql:/var/lib/mysql
networks:
- homelab-net
networks:
homelab-net:
name: homelab-net
driver: bridge
4. Step 4: Collegare i Container Interni senza Esporre Porte
Grazie alla rete bridge condivisa (homelab-net), non hai più bisogno di mappare porte esterne per gli altri container (come WordPress, Pi-hole o Nextcloud):
- Nei file
docker-compose.ymldei tuoi servizi, rimuovi la direttivaports:ed esponi solo la retenetworks: - homelab-net. - Accedi alla dashboard di NPM su
http://IP-DEL-NAS:81(credenziali iniziali:[email protected]/changeme). - Aggiungi un Proxy Host inserendo come Forward Hostname direttamente il nome del container (es.
wordpress-app) e la porta interna (es.80). - NPM gestirà i certificati SSL Let's Encrypt in automatico senza alcun conflitto con il sistema operativo del NAS.
❓ Domande Frequenti (FAQ Tecniche)
Risposte sintetiche ai dubbi architetturali e agli errori operativi più frequenti su questo scenario.
Perché ricevo l'errore 'bind: address already in use' avviando un container sulla porta 80 o 443 del QNAP?
Perché il sistema operativo del NAS (QTS/QuTS hero) riserva e occupa nativamente la porta 80 (per il redirect HTTP a HTTPS o per il web server integrato) e la porta 443 per la console di amministrazione web del NAS.
Se sposto le porte di QTS rischio di non riuscire più ad accedere al NAS?
No, purché tu prenda nota delle nuove porte (ad esempio porta HTTP 8080 e porta HTTPS 8443). L'accesso al pannello avverrà semplicemente digitando https://IP-DEL-NAS:8443.
È sicuro esporre la porta 80 e 443 del QNAP su Internet?
Esporre direttamente QTS è fortemente sconsigliato. Esporre invece un Reverse Proxy Docker isolato (come Nginx Proxy Manager) che instrada solo servizi specifici protetti da SSL e WAF riduce drasticamente la superficie di attacco.