Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Quelle est mon ip ? Le retour !

Ma page "Quelle est mon adresse IP" traînait sur korben.info depuis presque 15 ans, à peu près dans son jus d'origine. Hé bien, bonne nouvelle, je viens de la refaire entièrement, et elle est là : korben.info/ip .

Vous arrivez dessus, votre IP publique s'affiche en gros, IPv4 et IPv6 séparées avec un bouton copier, et juste en dessous une grille de cartes déballe tout ce que votre connexion raconte sur vous sans que vous ayez rien demandé. La localisation estimée d'abord, sauf que c'est pas du GPS, juste la ville que les bases GeoIP collent à votre IP (sur mobile ça part parfois à 200 km à côté) mais aussi votre opérateur et son numéro d'AS, de datacenter Cloudflare par lequel vous passez, la latence jusqu'à lui, le protocole, le chiffrement.

Y'a une carte que je trouve bien pratique aussi c'est la carte "VPN ou pas ?". Elle compare le fuseau horaire vu depuis votre IP avec celui réglé sur votre appareil, et repère si vous sortez par une IP de datacenter, le signe quasi certain d'un VPN ou d'un proxy.

J'ai ajouté aussi un petit test de débit maison (descendant, montant, latence, gigue), tout comme le fameux leak WebRTC, ce truc qui balançait votre IP locale à n'importe quel site avant que les navigateurs ne finissent par la masquer. Ça peut encore fonctionner sur de vieux browser alors je l'ai laissé.

Le point important, parce que je sais que vous allez me poser la question, c'est que de mon côté, rien n'est stocké, rien n'est tracé, rien n'est revendu. Tout est lu à la volée entre votre navigateur et mon CDN, qui se contente de faire transiter vos requêtes comme n'importe quel hébergeur. Votre IP en dit déjà bien assez long sur vous comme ça, pas la peine d'en remettre une couche.

Bref, un bon coup de bouc-marque (bookmark, pour les intimes ^^) sur korben.info/ip et vous aurez votre IP et l'état de votre connexion sous la main en un clic.

P2P Media Loader - Le retour discret de BitTorrent dans votre navigateur

BitTorrent c’était le diable dans les années 2000. Y’a eu des procès, des fermetures de trackers, et une guerre totale contre le piratage . Mais ça reste quand même une belle techno, notamment pour certaines plateformes de streaming un peu niche et solutions d’entreprise qui s’en servent discrètement afin d’économiser des millions en frais de CDN.

Car oui, avec le P2P, c’est vous qui payez la bande passante (en partie) ^^.

P2P Media Loader , c’est son nom est donc une lib JavaScript open source qui utilise WebRTC pour faire du streaming vidéo peer-to-peer directement dans votre browser. Vous regardez une vidéo, votre navigateur se connecte à d’autres viewers et vous échangez des segments vidéo entre vous. En gros, c’est comme BitTorrent, mais en version HTML5.

P2P Media Loader est donc la solution parfait pour réduire les coûts de bande passante des plateformes de streaming. Et tout ça de manière totalement transparente !

Techniquement, ça repose donc sur WebRTC et des trackers (comme BitTorrent) qui permettent aux navigateurs de se trouver entre eux ( y’a une démo ici ). Le projet utilise le protocole de signalisation de WebTorrent, ce qui veut dire que vous pouvez utiliser des trackers publics pour débuter, ou installer votre propre tracker si vous voulez gérer des gros volumes.

Et là, ça devient vraiment intéressant niveau scalabilité car avec un petit VPS à 3,50 €/mois et le tracker wt-tracker , vous pouvez gérer jusqu’à 20 000 viewers en simultané. Et si vous passez sur Aquatic (un tracker écrit en Rust), un serveur dédié 8 cœurs à 10-30€/mois peut tenir une charge de 100 000 viewers en simultané. Et si vous êtes vraiment radin (coucou les Auvergnats), Oracle Cloud offre un tier gratuit avec 4 cœurs ARM et 24 Go de RAM qui peut gérer des pics jusqu’à 100k peers sans rien débourser.

Et pour aller au-delà du million de viewers, il faudra passer sur du sharding (découpage en plusieurs trackers) avec différentes stratégies… Soit par contenu, soit par région géographique, soit par hash… Bref, des techniques classiques de distribution de charge, mais appliquées au P2P.

Le truc cool, je trouve c’est que ça fonctionne aussi bien pour du live que pour de la VOD, et même sur les apps mobiles iOS et Android. D’ailleurs, des projets comme PeerTube l’utilisent déjà pour réduire leurs coûts d’hébergement.

Bref, votre browser devient un mini-CDN en tout discrétion et ça permet aux personnes qui montent des infras de streaming, d’économiser de la thune.

Merci à Letsar pour le partage !

P2P Live Share - Pour coder à plusieurs sans donner son âme à Microsoft

Vous connaissez Live Share de Microsoft ? C’est un truc génial dans VS Code qui permet de coder à plusieurs en temps réel, de partager des terminaux, de debug ensemble. Sauf qu’il y a un petit détail relou : il faut un compte Microsoft ou GitHub. Et comme par hasard, toutes vos sessions doivent passer par les serveurs de Redmond.

Sympa donc pour la télémétrie.

Heureusement, P2P Live Share fait exactement la même chose, mais en peer-to-peer. Pas besoin de vous créer un compte, ça ne transite par aucun serveur intermédiaire, et surtout Microsoft ne mate pas votre code. Vous donnez simplement l’URL de la session à votre pote, il la colle dans son VS Code, et vous êtes connectés en direct, en P2P les amis, grâce à WebRTC !

Et l’extension fait tout ce qu’on attend d’un outil de collaboration à savoir du partage de code en temps réel, une synchronisation des curseurs, des terminaux partagés, du port forwarding, et même un chat intégré.

Une fois installé, quand vous lancez une session, P2P Live Share génère une URL unique avec un ID de room. Vous envoyez cette URL à votre collègue, il clique sur “Join”, et hop, vous êtes connectés en WebRTC direct.

D’ailleurs, selon la doc officielle , l’extension utilise plusieurs serveurs de signaling pour garantir la connexion : BitTorrent, Firebase, IPFS, Nostr comme ça, si l’un tombe, les autres prennent le relais. C’est du vrai décentralisé et vous pouvez même partager des ports, comme avec avec Live Share classique.

Comme ça, vous lancez un serveur web local sur le port 3000, et votre collègue peut y accéder directement depuis son navigateur. C’est super pratique pour tester une app en développement sans déployer quoi que ce soit.

Le terminal partagé fonctionne aussi très bien ! Vous ouvrez un shell, et votre pote peut taper des commandes dedans en temps réel. Bon, niveau sécurité, faut faire confiance à la personne en face mais c’est le même principe qu’avec Live Share.

Ce projet est open source sous licence MIT , donc vraiment libre et tout est chiffré de bout en bout. Alors oui, c’est moins mature que Live Share et forcément, il y aura des bugs mais au moins, vous ne filez pas votre code à Microsoft !

A découvrir ici !

Neko - Le navigateur virtuel partagé qui tourne dans Docker

Vous voulez regarder une vidéo YouTube avec des potes qui habitent à l’autre bout du monde sans que ça rame ? Ou vous devez faire une démo produit à un client sans avoir à lui envoyer 50 captures d’écran ? Ou mieux vous avez besoin d’un navigateur jetable qui ne laisse aucune trace après utilisation ?

Et bien pour tout ça et plus encore, voici Neko , un navigateur virtuel auto-hébergé qui tourne dans Docker et utilise WebRTC pour streamer l’écran à plusieurs utilisateurs en même temps. C’est un outil développé par m1k1o et ça permet de créer très facilement des sessions de navigation partagées avec une latence inférieure à 300 millisecondes.

Vous lancez donc Neko sur votre serveur Docker, vous accédez à l’interface web, et vous avez un navigateur complet qui tourne dans le cloud. Plusieurs personnes peuvent se connecter à la même session et voir exactement le même écran en temps réel. L’hôte de la session peut également donner ou retirer le contrôle aux participants. Un peu comme quand on partage son écran sur Zoom, mais en mieux parce que tout le monde voit le même flux avec une qualité parfaite.

D’ailleurs, la technologie derrière est plutôt intéressante puisque ça utilise du WebRTC. Ainsi, le flux média ne transite pas par un serveur centralisé mais directement en peer-to-peer entre les navigateurs. Les médias circulent via SRTP et les données via SCTP, du coup, vous avez un streaming ultra-fluide avec synchronisation audio et vidéo impeccable.

Neko affiche sur son site plusieurs cas d’usage assez pratiques. Vous pouvez par exemple organiser des watch party pour regarder des films ou séries ensemble. Vous pouvez aussi pourquoi pas faire des présentations interactives où tout le monde voit la même chose en direct. Vous pouvez l’utiliser pour du support technique à distance en montrant exactement sur quoi cliquer. Ou tout pour du debugging collaboratif quand vous galérez sur un bug avec un collègue.

Le projet supporte aussi l’automatisation avec Playwright ou Puppeteer, donc vous pouvez scripter des actions dans le navigateur virtuel. Pratique si vous devez faire des tests automatisés ou des interactions complexes sur des sites web.

Niveau sécurité et vie privée, Neko propose deux modes. Le mode persistent browser garde les sessions entre les connexions, donc vous pouvez retrouver vos onglets et votre historique. Et le mode throwaway browser qui crée une session isolée qui est détruite après utilisation, sans historique, cookies ou cache. Zéro trace !

Vous pouvez aussi l’utiliser comme jump host (hôte relais quoi…) pour accéder à des ressources internes de votre réseau sans exposer directement ces ressources. Ou pour protéger la propriété intellectuelle en permettant à des gens de consulter des documents sensibles sans pouvoir les télécharger ou les copier.

L’installation se fait via Docker avec plusieurs images disponibles puisque vous avez le choix entre Firefox, Chrome, Brave et d’autres navigateurs. Le projet est d’ailleurs assez complet avec des projets satellites comme Neko Rooms pour gérer plusieurs salles, Neko Apps pour créer un environnement virtuel complet dans le navigateur, et Neko VPN pour des connexions sécurisées. Vous pouvez même broadcaster sur Twitch, YouTube ou n’importe quel service compatible RTMP directement depuis Neko.

Notez que Neko ne se limite pas qu’aux navigateurs puisque vous pouvez faire tourner n’importe quelle application Linux dedans, comme VLC par exemple. C’est en réalité plutôt une machine virtuelle streamée qu’un simple navigateur.

Le projet est sous licence Apache 2.0, donc c’est complètement open source et il y a aussi un serveur Discord actif pour échanger avec la communauté.

Bref, si vous cherchez une alternative aux solutions propriétaires pour le partage d’écran ou les watch party, Neko fera le job. Et comme c’est auto-hébergeable et hyper flexible, vous gardez le contrôle sur vos données tout en ayant une grande liberté sur l’usage que vous en ferez ! A tester donc !

Merci à Lorenper pour le partage.

Raspberry Pi Connect – Accédez à votre Pi depuis n’importe où !

Ah, les joies du Raspberry Pi… On en achète un, puis deux, puis trois… Et avant de s’en rendre compte, on se retrouve avec une armée de petits ordinateurs dispersés aux quatre coins de la maison, du garage et du jardin. Du coup, pas facile de s’y retrouver, surtout quand il faut jongler avec VNC, SSH et autres joyeusetés pour y accéder à distance.

Mais ne vous inquiétez pas, les gens de la Raspberry Pi Foundation ont pensé à tout et viennent de nous pondre Raspberry Pi Connect, un nouvel outil bien pratique pour accéder aux Pi à distance, et ce, depuis n’importe quel navigateur web. Comme ça, plus besoin de se prendre la tête aevec la configuration réseau, des ports à ouvrir et des adresses IP à retenir.

Pour utiliser ce truc, il vous faut d’abord un Raspberry Pi 4, 5 ou 400 équipé d’une version 64 bits de Raspberry Pi OS Bookworm avec l’interface graphique Wayland. Une fois votre Pi à jour, ouvrez un terminal et entrez la commande magique :

sudo apt install rpi-connect

Quelques secondes plus tard, après un petit redémarrage, vous devriez voir apparaître une nouvelle icône dans la barre des tâches, en haut à droite de votre écran. Cliquez dessus, choisissez « Sign in » et suivez les instructions pour associer votre Pi à un compte Raspberry Pi. N’oubliez pas d’activer la double authentification.

Et là, c’est le moment « Waouh » : depuis n’importe quel ordinateur, tablette ou téléphone équipé d’un navigateur web, rendez-vous sur connect.raspberrypi.com, connectez-vous et… tadaa ! Vous voilà en train d’utiliser votre Raspberry Pi à distance, via un accès sécurisé et chiffré à votre bureau.

En fait, quand vous utilisez Raspberry Pi Connect, une connexion pair-à-pair (P2P) est établie entre votre navigateur et votre Pi grâce à la technologie WebRTC (si vous ne connaissez pas, c’est ce qui est utilisé par Zoom, Slack ou Google Meet pour la visio). Le démon rpi-connect installé sur votre Pi se charge alors de négocier la meilleure connexion possible avec le serveur VNC intégré. Comme ça, dans la plupart des cas, une connexion directe est possible, sans passer par les serveurs de Raspberry Pi. Mais si jamais ce n’est pas faisable, pas de stress, le trafic sera alors relayé de manière sécurisée et chiffrée via les serveurs de la Raspberry Pi Foundation, en utilisant le protocole DTLS.

Pour le moment, il n’y a qu’un seul serveur relais, situé au Royaume-Uni, donc cela peut entraîner un peu de latence si vous êtes loin des côtes anglaises. Mais d’autres serveurs sont prévus pour garantir une bonne expérience utilisateur. Et vous pouvez même vérifier si votre connexion est directe ou relayée en passant votre souris sur l’icône de cadenas dans votre navigateur.

L’équipe de Raspberry Pi Connect a bien sûr l’intention de garder le service gratuit pour les utilisateurs, tant qu’une connexion directe est possible, et ce, quel que soit le nombre d’appareils utilisés. Et pour le moment, les connexions relayées sont, elles aussi gratuites, le temps de voir combien de personnes en ont besoin et quelle quantité de bande passante est nécessaire.

Bref, ça tombe à pic, surtout depuis le passage de Raspberry Pi OS à Wayland qui empêchait d’utiliser la fonction d’accès distant intégrée au protocole X11. Avec ce nouvel outil, on retrouve donc ce confort d’utilisation qui a fait la réputation des Pi et en quelques clics, on peut accéder à sa petite merveille et bidouiller tout ce qu’on veut depuis n’importe où.

Si ça vous dit, tout est expliqué ici !

Source

Cloudflare Calls – La plateforme WebRTC serverless pour vos apps temps réel

Cloudflare nous sort encore un truc marrant : Cloudflare Calls ! Il s’agit d’une plateforme WebRTC serverless qui vous permet de créer des applications temps réel que ce soit de l’audio, de la vidéo ou même de la data. Le tout, sans vous prendre la tête avec l’infrastructure. Ça peut servir d’unité SFU (selective forwarding unit) pour router intelligemment les flux, ou même de système de diffusion pour broadcaster du contenu. Bref, les possibilités sont énormes !

Le gros avantage, c’est que ça tourne sur le réseau mondial de Cloudflare, présent dans des centaines de villes. Donc niveau latence et qualité, vous êtes aux petits oignons et pas besoin de vous soucier de la scalabilité ou des régions, puisque c’est géré.

Pour commencer à bidouiller avec Cloudflare Calls, rien de plus simple. Vous créez une app dans le dashboard, vous récupérez les identifiants, et hop, vous pouvez commencer à coder votre propre app WebRTC. Il y a même un exemple complet sur GitHub, l’app de démo « Orange Meets – room Korben ^^ ». (Non, ça n’a rien à voir avec l’opérateur du même nom, même si c’est de la téléphonie…)

Après, faut quand même mettre les mains dans le cambouis hein. Mais si vous êtes à l’aise avec WebRTC, vous allez vous éclater. Sinon, c’est l’occasion d’apprendre ! Et puis la doc est plutôt bien foutue, avec des tutos pas à pas. Ça ouvre un paquet de possibilités pour créer des apps temps réel fun ou utiles comme un outil de collaboration en ligne, avec un tableau blanc partagé et de la visio. Ou même un petit jeu multijoueur. Avec Cloudflare Calls, vous pouvez prototyper ça rapidement sans vous soucier de l’infrastructure.

Après, attention quand même, c’est encore en beta. Donc à utiliser en prod avec précaution. Mais pour tester et apprendre, c’est parfait. Et puis connaissant Cloudflare, le produit final sera sûrement béton.

Bref, je vous invite à aller jeter un œil à Cloudflare Calls, à tester la démo « Orange Meets », et pourquoi pas, à vous lancer dans le développement de votre propre app WebRTC serverless.

❌