linuxserver / docker-tvheadend

GNU General Public License v3.0
172 stars 90 forks source link

UDP 1900 #100

Closed nomandera closed 5 years ago

nomandera commented 5 years ago

There are several posts here and elsewhere discussion needing to port forward UDP 1900 for this container.

However I am not sure we have fully discussed the correct solution.

TVH does indeed need 1900 for broadcast and SAT>IP etc but it greedily binds to 0.0.0.0 where it may actually only need a single multicast address for SSDP

You can see this yourself by running this command on the host before and after the container comes up. The container will need to be in host mode.

# netstat -an | grep 1900
udp        0      0 239.255.255.250:1900    0.0.0.0:*

This also explains why sometimes TVH can bomb out with port unavailable as it is being used by other services such as Emby.

This is not a new discussion in general https://www.tvheadend.org/boards/5/topics/14189 but I cant find anything docker specific.

I am unclear how to handle this correctly when a single or multiple container need access to SSDP/DLNA etc

tobbenb commented 5 years ago

I don't think there is much to do with this issue other than giving tvheadend its own IP using macavlan.

nomandera commented 5 years ago

At the very least we need to document and explain the situation. Currently we have no info at all that suggests users have cater for UDP port clashes on a multicast host address for SSDP.

I imagine most wont even know what these words mean.

tobbenb commented 5 years ago

I don't think we should be the ones to document every issue that might occur when using the containers. Then the Readme would be bloated. Wouldn't this still happen if you run both emby and tvheadend on the same host also?

nomandera commented 5 years ago

Yes it would. At the very least we should publish the ports a container uses and why or you end up with users giving wrong advice to bridge UDP 1900 (as can be seen https://github.com/linuxserver/docker-tvheadend/issues/92)

nomandera commented 5 years ago

Proposed updated wording

If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags.

This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode.

If you have other services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macavlan.

hoppel118 commented 5 years ago

Hi guys,

I saw your comment about using a macvlan. This didn't work for me. My complete story I described here: https://github.com/netdata/netdata/issues/6527

Regards Hoppel