Référence des ports
Port 5000 (TCP) – UPnP / serveur de développement courant
Un port très surchargé utilisé par les points de contrôle UPnP, le serveur de dev Flask, le registre Docker et AirPlay de macOS (Centre de contrôle).
En bref
- Transport
- tcp
- Catégorie
- Registered
- Niveau de risque
- Élevé
Souvent ciblé — limitez l'exposition et durcissez-le.
État par défaut
Variable selon le service. Le serveur de dev Flask et le registre Docker s'y lient à l'exécution ; sur macOS, le récepteur AirPlay écoute sur le 5000. Souvent ouvert involontairement pendant le développement.
À quoi sert le port 5000 ?
Le port 5000 est utilisé par de nombreux programmes différents, donc ce qui tourne dépend de l'hôte. C'est le port par défaut du serveur de développement web Flask/Werkzeug, du registre Docker auto-hébergé, des points de contrôle UPnP et — sur macOS moderne — du récepteur AirPlay (raison pour laquelle les Mac affichent souvent le 5000 occupé). Les développeurs le rencontrent surtout comme l'adresse locale (localhost:5000) où tourne une application Flask ou .NET en développement.
Quand faut-il l'ouvrir ?
Ouvrez ou redirigez le port 5000 si vous exécutez délibérément un service dessus — par exemple un registre Docker auto-hébergé ou une petite application web — et qu'il doit être joignable depuis d'autres machines. Pour le développement local, vous ne l'ouvrez généralement pas au-delà de votre propre ordinateur.
Est-ce risqué de l'ouvrir ?
Un serveur de dev Flask en mode debug, ou un registre Docker non authentifié, sont risqués à exposer. N'exécutez pas de serveurs de dev en production, exigez authentification et TLS sur tout registre, et placez les applications publiques derrière un reverse proxy. Voir les notes de sécurité ci-dessous.
Comment vérifier si ce port est ouvert
ss -tulpn | grep :5000
nmap -p 5000 <target>netstat -ano | findstr :5000
Test-NetConnection <host> -Port 5000lsof -i :5000
nmap -p 5000 <target>Comment ouvrir ce port sur votre box/routeur
Pour joindre ce service depuis l'extérieur de votre réseau, redirigez le port sur votre box :
- Ouvrez la page d'administration de votre box (souvent http://192.168.1.1 ou http://192.168.0.1) et connectez-vous.
- Trouvez la section « Redirection de ports » — parfois appelée NAT, Serveur virtuel ou NAT/PAT.
- Ajoutez une règle redirigeant le port externe 5000 vers l'IP locale de votre appareil, port interne 5000, protocole TCP.
- Enregistrez, redémarrez la box si demandé, puis testez le port depuis l'extérieur de votre réseau.
Ne redirigez que des ports que vous maîtrisez — cela expose l'appareil à Internet. Pour un accès distant d'administration, un VPN est plus sûr que la redirection de port.
Autoriser ce port dans le pare-feu
sudo ufw allow 5000/tcpsudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 5000" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action AllowSécurité et risques
Attaques courantes
- Atteindre un débogueur Flask/Werkzeug exposé pour une exécution de code à distance
- Pousser ou tirer des images depuis un registre Docker non authentifié
- Abus d'UPnP pour mapper des ports ou atteindre des services internes (pivots de type SSRF)
- Divulgation d'informations via les pages de debug et les erreurs verboses de l'application
Durcissement
- Ne jamais exécuter un serveur de développement (debug Flask/Werkzeug) en production
- Lier les services de dev et de registre à localhost, pas à 0.0.0.0
- Exiger authentification et TLS sur tout registre Docker exposé
- Désactiver l'UPnP sur les passerelles exposées à Internet et segmenter les appareils IoT
- Filtrer le 5000 et placer les applications de production derrière un reverse proxy durci
Comment bloquer ce port
sudo ufw deny 5000/tcpsudo firewall-cmd --permanent --remove-port=5000/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 5000 -j DROPNew-NetFirewallRule -DisplayName "Block 5000" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action BlockCommande nmap
nmap -p5000 --script http-title <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Ports liés
Questions fréquentes
- Pourquoi le port 5000 est-il associé à autant de services ?
- C'est un défaut populaire. Le contrôle UPnP, le serveur de dev Flask/Werkzeug, le registre Docker et le récepteur AirPlay de macOS utilisent tous le 5000, donc ce que l'on y trouve dépend entièrement de l'hôte.
- Quel est le danger d'une application Flask exposée sur le 5000 ?
- Si le débogueur Werkzeug est activé, un attaquant peut ouvrir une console interactive et exécuter du Python arbitraire — une RCE complète. Les serveurs de développement divulguent aussi des traces de pile et ne sont pas conçus pour résister à un trafic hostile.