Reach it from outsideL'atteindre de l'extérieur
The exposure modes: LAN, Tailscale, UPnP, bore, ngrok, cloudflared, manual; what each one opens and who can use it.Les modes d'exposition : LAN, Tailscale, UPnP, bore, ngrok, cloudflared, manuel ; ce que chacun ouvre et qui peut l'utiliser.
The LAN (and the PC itself) is always open while the host shares; the exposure mode adds one path. A connection arriving through a path the mode does not open is dropped before TLS and logged once. Changing the mode drops the sessions of the path it closes.
Le LAN (et le PC lui-même) est toujours ouvert pendant le partage ; le mode d'exposition ajoute un chemin. Une connexion arrivant par un chemin que le mode n'ouvre pas est coupée avant TLS et notée une fois dans les logs. Changer de mode coupe les sessions du chemin qu'il ferme.
1. ModesModes
| Mode | Adds | How | End to end |
|---|---|---|---|
lan | nothing | every local interface + UDP discovery (xdesk scan, port 47801) | yes |
tailscale | your devices of the tailnet | https://100.x.y.z:<port>, or the MagicDNS name for xdesk connect | yes (WireGuard + TLS) |
upnp | the internet | upnpc opens the port on the router, shows the public address | yes |
bore | the internet (relay) | bore local <port> --to bore.pub (TCP, no account) | yes |
ngrok | the internet (relay) | ngrok tcp <port> (account) | yes |
cloudflared | the internet (relay, browsers only) | cloudflared tunnel --url https://localhost:<port> | no: the relay terminates TLS |
manual | the internet | port forwarded by hand, public address in the settings | yes |
xdesk host --expose tailscale -p 47900 # this run only: exposure and portThe tools are used only when installed; the panel shows the state of the tunnel and every address, each with copy and QR code buttons. The TCP tunnels (bore, ngrok, cloudflared) keep the video on TCP; with manual, forward UDP too for the native viewers.
| Mode | Ajoute | Comment | De bout en bout |
|---|---|---|---|
lan | rien | toutes les interfaces locales + découverte UDP (xdesk scan, port 47801) | oui |
tailscale | tes appareils du tailnet | https://100.x.y.z:<port>, ou le nom MagicDNS pour xdesk connect | oui (WireGuard + TLS) |
upnp | internet | upnpc ouvre le port sur la box, affiche l'adresse publique | oui |
bore | internet (relais) | bore local <port> --to bore.pub (TCP, sans compte) | oui |
ngrok | internet (relais) | ngrok tcp <port> (compte) | oui |
cloudflared | internet (relais, navigateurs seulement) | cloudflared tunnel --url https://localhost:<port> | non : le relais termine TLS |
manual | internet | port redirigé à la main, adresse publique dans les réglages | oui |
xdesk host --expose tailscale -p 47900 # ce lancement seulement : exposition et portLes outils ne sont utilisés que s'ils sont installés ; le panneau montre l'état du tunnel et chaque adresse, avec des boutons copier et QR code. Les tunnels TCP (bore, ngrok, cloudflared) gardent la vidéo en TCP ; avec manual, redirige aussi l'UDP pour les viewers natifs.
2. Tailscale and browsersTailscale et navigateurs
Every *.ts.net name is on the HSTS preload list of the browsers: a self-signed certificate is refused there without any way to accept it. So the Tailscale path gets a real certificate with tailscale cert (renewed by xdesk, kept in <data>/tailscale/), picked by the server from the name the browser asks (SNI): https://<pc>.<tailnet>.ts.net:<port> opens without warning. The native clients send no name and keep the pinned self-signed certificate.
Important. Needs, once: HTTPS enabled in the Tailscale admin console (DNS page; the name is then published in the public certificate logs) and the right to run tailscale cert (sudo tailscale set --operator=$USER). Without them the browser address stays the 100.x.y.z IP and the panel says why.
LAN addresses use the <pc>.local name when avahi / Bonjour publishes it, the IP otherwise.
Chaque nom *.ts.net est dans la liste HSTS préchargée des navigateurs : un certificat auto-signé y est refusé sans aucun moyen de l'accepter. Le chemin Tailscale reçoit donc un vrai certificat avec tailscale cert (renouvelé par xdesk, gardé dans <data>/tailscale/), choisi par le serveur selon le nom demandé par le navigateur (SNI) : https://<pc>.<tailnet>.ts.net:<port> s'ouvre sans avertissement. Les clients natifs n'envoient pas de nom et gardent le certificat auto-signé épinglé.
Important. Il faut, une fois : HTTPS activé dans la console d'admin Tailscale (page DNS ; le nom est alors publié dans les logs publics de certificats) et le droit de lancer tailscale cert (sudo tailscale set --operator=$USER). Sans cela l'adresse du navigateur reste l'IP 100.x.y.z et le panneau dit pourquoi.
Les adresses du LAN utilisent le nom <pc>.local quand avahi / Bonjour le publie, l'IP sinon.