I was having trouble getting Jellyfin to work with my HDHomeRun tuner and discovered after some troubleshooting that the “Host Network” option has to be checked for it to work. Before using that option, it could connect to HDHomeRun and list all the available channels but you couldn’t actually watch any of them. It would fail with a playback error. I know very little about Docker networking but it sounds to me like a NAT problem. Is this a consequence of everything working as intended? Is this a real issue that should be reported somewhere? I would prefer not to use the “Host Network” option. Is there a way for me to fix this?
HDHomeRun’s either spit their output to your computer via UDP over unicast or multicast, and your host needs to know to forward either one into your container or VM. Without additional network trickery, host mode is the best way to do it.
(Yes, it’s NAT related. The exact solution if you want to keep NAT in place depends on how Jellyfin is directing the HDHR’s traffic. Based on my own experience with HDHR’s, it’s probably doing unicast UDP, so it’s sending the traffic to the host’s IP address. Without NAT rules on the host forwarding those packets into Jellyfin, the host is dropping the UDP traffic.)
I think I’ll just stick with the Host Network checkbox. I love to tinker on my lab stuff but I actively avoid doing things outside of the UI on stuff my whole family uses. I just want to set it up and never think about it again other than clicking the update button every once in a while. Thanks for the info!