Documentation
Jellyfin et son serveur multimédia à distance, sans exposition
Jellyfin est un serveur multimédia open source que vous hébergez chez vous — et c’est précisément ce qui rend l’accès à distance délicat : il n’y a pas de service cloud de l’éditeur pour faire le pont entre votre salon et votre téléphone en déplacement. Les solutions habituelles reviennent toutes à exposer quelque chose sur Internet : rediriger un port, monter un reverse proxy, maintenir un serveur VPN. L’approche mesh fait l’inverse : le serveur Jellyfin rejoint votre espace de travail privé, garde une adresse et un nom stables, et vos appareils le joignent de n’importe où par un chemin chiffré de bout en bout — sans qu’aucun port ne soit jamais ouvert sur la box.
Pourquoi l'accès distant à Jellyfin est un casse-tête
Sur le réseau local, tout est simple : Jellyfin écoute par défaut sur le port 8096, on saisit l’adresse de la machine dans l’application, la lecture démarre. Dès qu’on quitte la maison, le problème change de nature : Jellyfin n’a volontairement aucun service cloud — pas de compte hébergé par un éditeur, pas de relais fourni. C’est un choix assumé du projet, vos données restent chez vous — mais il laisse chacun se débrouiller pour la joignabilité, et la question revient sans cesse dans la communauté. Les réponses classiques ont toutes un coût.
La redirection de port
Ouvrir le port 8096 sur la box rend le serveur joignable — par vous, et par tout Internet. La page de connexion devient visible de n’importe où, les scanners automatiques la trouvent en continu, et chaque faille du logiciel qui écoute devient exploitable à distance.
Le reverse proxy
Un proxy inverse devant Jellyfin (domaine et certificat) chiffre l’accès, mais c’est un service exposé de plus à installer, configurer, mettre à jour et surveiller — et le serveur reste joignable depuis tout Internet, protégé par un mot de passe.
Le serveur VPN maison
Un serveur VPN évite d’exposer Jellyfin, mais déplace le problème : il faut ouvrir un port pour le VPN lui-même, le maintenir, distribuer les configurations — et cela reste impossible derrière un accès en CGNAT (4G/5G, nombreuses fibres récentes), où aucun port ne peut être ouvert.
Le cas Plex, en un mot
Plex contourne le problème avec un compte cloud et une option de relais opérés par l’éditeur : accès distant plus simple, au prix d’une dépendance à ce service tiers. Jellyfin fait le choix inverse — tout chez vous — et c’est ce choix que l’approche mesh vient compléter.
| Approche | Ce qu'il faut exposer | Ce qu'il faut maintenir |
|---|---|---|
| Redirection de port | Jellyfin lui-même, à tout Internet | La règle de box, l'adresse publique |
| Reverse proxy | Le proxy, à tout Internet | Proxy, domaine, certificats, mises à jour |
| Serveur VPN maison | Le port du VPN | Le serveur VPN et ses configurations clients |
| Mesh VIGIL | Rien — zéro port entrant | Un client installé sur chaque machine |
L'approche mesh : le serveur rejoint votre espace de travail
Avec VIGIL-MESH, la machine qui héberge Jellyfin est enrôlée dans votre espace de travail comme n’importe quel appareil. Elle n’ouvre aucun port entrant : uniquement des connexions sortantes, un seul flux en 443 UDP, le même port que le web moderne. Vos appareils de lecture sont enrôlés de la même façon, et tous se retrouvent sur un réseau privé qui les suit partout. Si votre Jellyfin tourne sur un NAS, le principe est identique — le cas du NAS lui-même (partages de fichiers, interface d’administration) a sa page dédiée : /docs/acceder-nas-a-distance.
- Une adresse stable — le serveur reçoit une adresse overlay (dans 100.64.0.0/10) qui ne change pas, où que vous soyez.
- Un nom lisible — avec MagicDNS, la machine se joint par son nom court, résolu de la même manière depuis tous les membres du réseau.
- Un chiffrement de bout en bout — les sessions sont des connexions QUIC/TLS 1.3 avec établissement de clés hybride post-quantique.
- Rien de visible depuis Internet — la page de connexion Jellyfin n’est joignable que depuis les machines de votre espace de travail.
Côté applications, rien d’exotique : les clients Jellyfin permettent de saisir l’adresse de leur serveur. Au lieu d’une adresse publique, vous indiquez l’adresse du serveur sur le mesh — son nom MagicDNS ou son adresse stable, suivi du port habituel de Jellyfin. L’application se comporte alors comme si elle était sur le réseau local du serveur, parce que, du point de vue du réseau, elle l’est.
Débit : chemin direct et transcodage local
Le streaming vidéo est l’usage le plus sensible au débit qui soit : un détour inutile se paie immédiatement en mise en mémoire tampon. C’est là que l’architecture compte. Quand vous lancez une lecture, la connexion s’établit immédiatement via un relais — la vigie — puis migre sans coupure vers le chemin direct de pair à pair dès que la traversée NAT l’a trouvé. En régime établi, le flux vidéo va du serveur à votre appareil par la route la plus courte, sans transiter par une infrastructure intermédiaire.
Le transcodage, lui, reste l’affaire de Jellyfin : quand la connexion de l’appareil ne suffit pas pour le fichier d’origine, le serveur convertit la vidéo à la volée vers un débit plus faible, comme pour un accès local. Le mesh ne change rien à ce mécanisme — il transporte le flux résultant par le chemin le plus direct disponible.
- Chemin direct : en pair à pair, le débit disponible est celui de vos deux connexions — aucun serveur tiers ne le plafonne.
- Chemin relayé : si le direct est impossible (deux NAT symétriques face à face, par exemple deux connexions 4G), le flux passe par la vigie, chiffré de bout en bout — elle ne voit jamais le contenu.
- Usage personnel : gratuit, avec un trafic direct illimité ; seul le trafic relayé est soumis à un quota.
DLNA et découverte d'appareils à travers le mesh
Autour d’un serveur multimédia gravitent des appareils qui se trouvent par diffusion : la découverte DLNA repose sur SSDP, des annonces multicast envoyées « à tout le monde sur le lien » ; la découverte automatique des serveurs par les applications passe par des mécanismes du même genre. Or ces annonces ne franchissent normalement jamais un routeur — c’est pourquoi un VPN L3 classique fait disparaître le serveur des applications, même une fois le tunnel monté.
VIGIL-MESH traite chaque réseau comme un domaine de diffusion : broadcast, multicast et link-local IP atteignent tous les membres comme sur un commutateur, et cette diffusion est chiffrée de bout en bout par des clés d’émetteur en rotation. Les annonces SSDP du serveur (le DLNA est une fonction optionnelle de Jellyfin), les découvertes mDNS et les recherches des applications traversent donc le mesh comme si tous vos appareils partageaient un même câble — y compris à des centaines de kilomètres du salon. Et contrairement à un LAN physique, ces annonces ne circulent jamais en clair hors de vos machines : le relais les réplique sans pouvoir les lire.
Partager la médiathèque avec la famille, sans l'exposer
Un serveur Jellyfin sert rarement une seule personne : chacun a son compte et son historique, un parent éloigné profite de la médiathèque. Avec les approches exposées, élargir l’accès signifie élargir l’exposition. Avec le mesh, élargir l’accès signifie enrôler des appareils : le téléphone de chaque membre du foyer rejoint l’espace de travail avec sa propre identité, et voit le serveur comme s’il était à la maison.
- Un appareil, une identité — chaque machine enrôlée possède sa propre identité cryptographique ; en révoquer une (téléphone perdu, appareil prêté) coupe son accès immédiatement, sans toucher aux autres.
- Des politiques d’accès (ACL) — le réseau est en refus par défaut : vous pouvez n’autoriser les appareils de la famille qu’à joindre le serveur multimédia, sans leur ouvrir le reste de vos machines.
- Les comptes Jellyfin restent les comptes Jellyfin — le mesh décide qui peut atteindre le serveur ; profils, mots de passe et contrôles parentaux restent gérés dans Jellyfin.
Mise en place, pas à pas
Il n’y a rien à changer dans Jellyfin lui-même : le serveur continue d’écouter comme il l’a toujours fait. La mise en place consiste à raccorder les machines au réseau privé.
- 1Créer un espace de travailCréez un compte et un espace de travail : c’est le réseau privé qui reliera le serveur et vos appareils.
- 2Installer le client sur le serveur JellyfinInstallez le client VIGIL-MESH sur la machine qui héberge Jellyfin (Windows ou Linux). Elle n’ouvrira aucun port entrant.
- 3Enrôler le serveur, puis vos appareilsDepuis la console, page Réseaux → Machines → « Ajouter une machine » : une clé à usage unique enrôle le serveur, puis chaque appareil de lecture de la même manière.
- 4Vérifier la connectivitéContrôlez que le serveur apparaît avec son adresse stable et répond au ping, et que son nom MagicDNS se résout depuis vos appareils.
- 5Pointer les applications JellyfinDans chaque application cliente, saisissez comme adresse de serveur le nom MagicDNS (ou l’adresse stable) suivi du port de Jellyfin — 8096 par défaut. La lecture fonctionne alors partout, comme en local.
Dépannage : les questions qui reviennent
L’essentiel des blocages tient en trois familles : une adresse mal saisie, un appareil qui n’est pas (ou plus) membre du réseau, ou une limite réelle à connaître. Dans l’ordre où les vérifier :
- L’application ne trouve pas le serveur — vérifiez que l’appareil de lecture est bien enrôlé et connecté au mesh, puis saisissez l’adresse à la main (nom ou adresse stable, port compris) plutôt que de compter sur la découverte automatique.
- Ça marchait, ça ne marche plus — un appareil suspendu, révoqué ou expiré perd l’accès immédiatement ; vérifiez son état dans la console, et que le client tourne bien sur le serveur.
- Le nom ne se résout pas — joignez d’abord le serveur par son adresse stable : si elle répond mais pas le nom, le sujet est côté résolution MagicDNS, pas côté serveur.
- La lecture saccade à distance — regardez le débit montant de la connexion du serveur et laissez Jellyfin transcoder. Deux extrémités en NAT symétrique (deux connexions 4G) forcent un chemin relayé en permanence, plus long que le direct.
- La TV connectée ne voit rien — la limite honnête : un appareil qui ne peut pas exécuter le client (téléviseur fermé, stick de streaming) ne peut pas rejoindre le mesh. Sur place, il joint le serveur par le LAN comme avant ; à distance, privilégiez un appareil capable d’exécuter le client (Windows, Linux, Android, Jetson).