mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-04 18:09:12 +03:00
10.7.0 RC2 DLNA server not showing up in apps & devices #2472
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @SteveDinn on GitHub (Jan 4, 2021).
Originally assigned to: @BaronGreenback on GitHub.
Describe the bug
When using a device or app that can browse DLNA server content, the Jellyfin server does not show up as a source.
System (please complete the following information):
To Reproduce
Expected behavior
Jellyfin should show up as a selectable DLNA server in apps and devices that support DLNA browsing
Additional context
Reverted to 10.6.4 just to be sure it wasn't something else, and it worked as expected.
@da-anda commented on GitHub (Jan 5, 2021):
I can confirm this issue
@SteveDinn commented on GitHub (Jan 5, 2021):
I realized that my bug only mentioned BubbleUPnP, but I also tested via a WDTV Live device and VLC for Android as well with the same results.
@BaronGreenback commented on GitHub (Jan 5, 2021):
Running on windows. Can see the server in both VLC running locally and with BubbleUPnP - so could do with some help tracking this down.
Could you post or PM me your network.xml settings file please - so i can replicate here?
@SteveDinn commented on GitHub (Jan 5, 2021):
Here you go. The first thing I noticed is that "EnableUPnP" was set to false. However, I tried setting this to true, but I still can't see the server in BubbleUPnP. Are there any other settings I should try here?
@BaronGreenback commented on GitHub (Jan 5, 2021):
Thanks - UPnP is something different. It opens inbound ports on the router. I would recommend disabling it.
@BaronGreenback commented on GitHub (Jan 5, 2021):
Is the ip address of the device trying to connect via dlna in the 10.1.1.0/24 subnet?
@SteveDinn commented on GitHub (Jan 5, 2021):
Yes. That's my main home network. Everything is on that subnet. It's not an issue with network topology though. Jellyfin 10.6.4 doesn't have this issue in the same environment.
@BaronGreenback commented on GitHub (Jan 5, 2021):
just out of curiosity - could you launch the dlna client before starting jellyfin - i've encountered some severe delays in detection before now?
@BaronGreenback commented on GitHub (Jan 5, 2021):
Also, could you enable debug logging for in logging.default.json please, and send me the logs?
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
@SteveDinn commented on GitHub (Jan 6, 2021):
I had my DLNA client open and searching for servers while I started up Jellyfin.
https://gist.github.com/SteveDinn/b3f8d70764749cf4a409d81879431ccd
Curiously enough, it finds one of my network-enabled receivers, but DLNA clients cannot find it.
@BaronGreenback commented on GitHub (Jan 6, 2021):
Is 172.18.0.1 your docker interface?
@SteveDinn commented on GitHub (Jan 6, 2021):
Yes, the container is running in host network mode, but that 172 IP is the container's docker network interface.
@BaronGreenback commented on GitHub (Jan 6, 2021):
At first guess, i think it's trying to use the external interface (172 is not in the internal lan, hence is external) to transmit on. I'll double check. Could you change the ignorevirtualinterfaces property to true and retry please?
@BaronGreenback commented on GitHub (Jan 6, 2021):
This request might sound a bit weird, and you might want to PM the response - but can you send me a list of all the interfaces on the docker instance. I could do with knowing the interface name, ip address, subnet and next hop addresses for each interface.
The network manager instance has, for testing, a parameter that enables test networks to be be defined (it was a lot easier that creating an entire mock network subsystem). By providing that info, I can recreate your network environment on my system in order that I can try to replicate what is happening.
@SteveDinn commented on GitHub (Jan 6, 2021):
running 'docker container jellyfin inspect' yields this "NetworkSettings" section:
Installing net-tools inside the jellyfin container and running ifconfig yields many more interfaces than I thought for running in 'host' mode. I only expected it to have the 10.1.1.6 address.
@SteveDinn commented on GitHub (Jan 6, 2021):
I won't get a chance to try changing the "IgnoreVirtualInterfaces" value until later tonight.
@SteveDinn commented on GitHub (Jan 6, 2021):
Changing IgnoreVirtualInterfaces didn't do anything.
@BaronGreenback commented on GitHub (Jan 7, 2021):
So far rules out network settings.
Logs show that ssdp is working and that dlna is advertising.
Only other thing i can think of is an invalid service description.
Could you post the response from the following page please?
http://10.1.1.6/dlna/27bdfb0730424b74a41e742c664c1a81/description.xml
This should be the server's dlna description.
@SteveDinn commented on GitHub (Jan 7, 2021):
I formatted the XML for readability, but here it is:
@SteveDinn commented on GitHub (Jan 7, 2021):
Random thought...when the DLNA server is broadcasted, does it advertise "http://10.1.1.6:8096" or "https://jellyfin.mydomain.com"? My domain resolves to my public IP via my reverse proxy which would not be on my 10.1.1.0/24 network.
@BaronGreenback commented on GitHub (Jan 7, 2021):
It advertises the link above - so that is more than likely the issue.
If you've got dns set up you could try the equivalent of url rewriting (see below) - however, be warned - it may not work as the DLNA standard is a bit grey in this area, as DLNA is meant to be LAN accessible only. I know VLC doesn't like it.
DLNA also doesn't support https we don't think (DLNA 2.0 does have a setting - but again, the standard is a bit vague so it's a try and see).
Try adding the following to your network.xml file. It should cause all external addresses to be re-written with jellyfin.mydomain.com.
@SteveDinn commented on GitHub (Jan 7, 2021):
It should be fine if it advertises the IP address, I can access Jellyfin via either that or my reverse proxy -- both work. But I still don't see the DLNA server at all, via any address.
@BaronGreenback commented on GitHub (Jan 7, 2021):
Just as a though - have you added your proxy into the knownProxies field - (it's something that was added into dotnet.)
@SteveDinn commented on GitHub (Jan 7, 2021):
That should be nothing to do with DLNA. I thought that was more of an "incoming HTTP request" setting.
Anyway, I'm happy to test or check anything else you need. I would really like this to work :)
@BaronGreenback commented on GitHub (Jan 7, 2021):
DLNA works over http. It only communicates availability over UDP (using the protocol SSDP).
Once location has been established, and addresses have been passed - it's pure HTTP, so you might be able to pick up the traffic with your proxy.
@SteveDinn commented on GitHub (Jan 7, 2021):
It's the availability that is the issue. I have no trouble playing content or browsing over HTTP, regardless of the way I access it, but I just don't see the server show up when I browse for DLNA sources.
Maybe I don't understand enough about how DLNA works, but it seems like it's just part that you mentioned that happens over UDP that is the issue -- the communication of availability.
@BaronGreenback commented on GitHub (Jan 7, 2021):
From your logs above - it looks like the UDP part is working - as it uses the same system as PlayTo.
What happens immediately after this is the client requests the info passed back via udp. In your case, the client will request via http http://10.1.1.6/dlna/27bdfb0730424b74a41e742c664c1a81/description.xml
If that response is returned, and it's valid, it appears in the list.
Can you client get to http://10.1.1.6/dlna/27bdfb0730424b74a41e742c664c1a81/description.xml ?
@SteveDinn commented on GitHub (Jan 7, 2021):
Have you left off the port purposefully, or is it just not there? I can get this document if I use 8096. That's what I posted above:
https://github.com/jellyfin/jellyfin/issues/4949#issuecomment-755733265
@SteveDinn commented on GitHub (Jan 7, 2021):
Looking back at my log, the advertised DLNA server is missing the port! I'm sure that is the problem:
@BaronGreenback commented on GitHub (Jan 7, 2021):
it will be - i'll submit a backported pr
@BaronGreenback commented on GitHub (Jan 7, 2021):
Bug is that i've used PublicPort and not HttpServerPortNumber.
I take it your public port is 80.
@SteveDinn commented on GitHub (Jan 7, 2021):
Not on the 10.1.1.6 interface, it isn't. Nothing on the Jellyfin machine listens on 80. The only port the container knows about is 8096.The reverse proxy (on a completely different machine) is proxying port 80 to http://10.1.1.6:8096, but that's the only time port 80 ever comes into the equation.
I take it back. Right at the bottom of the Networking page on the dashboard, 80 & 443 are the defaults for public HTTP/HTTPS ports.
@BaronGreenback commented on GitHub (Jan 7, 2021):
Submitted the PR. Thanks for your help in tracking this one down.