Hello, I have Tailscale installed on both a Windows 10 PC, and a macOS 12 Monterey laptop. The Windows machine hosts my iTunes Library and its associated music files.
When both machines are on the same LAN, I can open the Music app (formerly iTunes, Apple renamed it a while back) on my Mac laptop and connect to my iTunes Library hosted by my Windows machine. I can then play (stream) my music from my Windows machine.
What I want to do is to be able to connect to my iTunes Library and stream the music when my laptop is not on my LAN, and for this I’m trying to use Tailscale.
As a test, I use my iPhone as a hotspot, and tether my Mac laptop to it, instead of using my wifi. So now my laptop is not on my LAN, but it is running Tailscale, and is signed in. I can ping the Windows PC using it’s Tailscale IP address. However in this scenario, I cannot connect to the iTunes Library.
Do you have any ideas on what I need to do to get this working? Do I somehow need to forward the ports through Tailscale that iTunes uses to advertise its Library? I was thinking that Tailscale would take care of that automatically, but it seems not.
iTunes music streaming is generally restricted to the local LAN. Apple doesn’t provide a way to configure an IP address of the remote node to stream from. Instead it broadcasts on the local LAN looking for other iTunes nodes.
iTunes is using multicast to find other local iTunes listeners. Multicast doesn’t propagate across the tailnet, because multicast tends to be really chatty and not work well outside of a local Ethernet/Wi-Fi network.
That said, over time I do expect to add deliberate forwarding of known multicast ports, just leaving behind the ones that are too chatty to work well. So someday iTunes might work across the wide area.
maybe you can try using ZeroTier - it is similar idea to Tailscale but approached at lower level in networking model and they can do support multicast (with some tricks to avoid the chatty problem mentioned above) - it should meet your use case.