Port 8089 conflicts with other services

On my Mac mini, where I really want to run the Channels DVR server, I am also running Splunk. Splunk uses port 8089, and does not allow it to be easily changed.

My Synology NAS -might- suffice, except it's also a gateway to my Splunk server, and using port 8089.

I see a post from a few years ago saying the server port cannot be changed. That surprises me, because there are many reasons why changing the port can be necessary. For example, when another, much larger company has been using the same port for 15+ years... or when because it's a well-known port for Enterprise software, the owner might want to move it to a port that gets fewer general probes.

If there's no way to change the port, is anyone aware of any other software for HDHomerun that works on the Mac, has similar features, and doesn't use port 8089?

Thanks!

Paul M. Lambert

1 Like

Before I try Remote Access, I want this also.
I don't let any app/program create a hole in my firewall and want to control what ports are opened.
Until I perfect my Open VPN system, this is my only recourse.

You can manually open the port on your router bypassing the UPnP. While you cannot change Channels' port, you can forward a different port from your router to your Channels system at 8089.

I have my Channels on a Synology NAS, accessible by domain name on port 443 (its at dvr.domain.com). I like it this way, since I don't have to input any port numbers. I also have other services and a few webpages on the NAS, also accessible on port 443, using their own subdomains.

There are actually even ways to run multiple services that use that same port locally on the same machine (something like a docker container with NAT comes to mind).

None of this is hard to do. Using a service because you prefer a specific port is silly.... you can configure your network to make said service accessible on any port you want.

Words like "silly" generally don't add to the value of a conversation, and invite a combative or defensive response. I'm sure that wasn't what you wanted, and I will just ignore it as you almost certainly intended.

My Synology is overburdened as it is. I have a Mac mini with a tremendous amount of unused CPU, where I'd like to run the Channels service. However, I am also running Splunk and it also uses port 8089.

While I could run it in a VM (and on a Mac, Docker is also in a VM), then I have a non-native filesystem to contend with. This does have a noticeable performance impact.

Running a service in Docker on a Mac means that all file access are either going to the Linux filesystem inside the VM, where it's not visible to the host system, or using a network protocol to see the host's native filesystem with a pretty significant performance impact. Neither of those are particularly appealing. Both seem like a lot of work compared to a "port" configuration parameter. This is why I am asking for this feature.

Unfortunately, I did my testing with my laptop and didn't catch this before subscribing; I'm going to end my subscription and keep looking for a solution. Plex TV/DVR seems to work well; if it passes the test of time, then I'll go with it.

I'll also look to see if there's a specific process for making a feature request to the Channels DVR developers, and make the request if there is.

Unfortunately 8089 is hard coded in all the apps and would be non-trivial to change. It's on our todo list but not an easy fix.

It seems splunk allows management port configuration: https://docs.splunk.com/Documentation/Splunk/7.2.6/Admin/Changedefaultvalues#Change_network_ports

According to this, it is possible to have 2 servers running on the same machine listen to the same port but on different interfaces.

Your Mac probably has 2 interfaces (WiFi and Ethernet). I wonder if it's possible to have the Channels DVR listen to port 8089 on the WiFi interface and the Splunk server listen to port 8089 on the Ethernet interface? (or vice-versa) It does make you wonder who will answer if you attempt to connect to port 8089 on the loopback interface (127.0.0.1).

Ports are per IPADDRESS so if you have multiple IP's on a Mac then you can use the same port for 2 different applications on the same machine. Also, I believe you can get a USB 2 Ethernet Adapter to accomplish the same thing but without use Wifi. However, as @tmm1 has already pointed out you can simple change the Splunk Port and all will be good which is what I would do.

1 Like

Most programs including Channels DVR will bind to all available IPs, so having multiple IPs does not help in practice.

Oops. That would be a problem.

I'm very familiar with Splunk and could change the port it uses; this would require updating the configuration on a half dozen systems that talk to it, and a few firewalls. While possible, it's a lot of trouble to go through, and probably not worth the effort to me. Others may and will disagree, and should of course take that approach if it makes sense for their situation.

Multiple interfaces are only helpful if the service can be told what interface to bind to. There are ways to "sandbox" it, but again, that's a level of effort beyond what I'd like to put into "watching TV." Others again are welcome to come to other conclusions based on their situations.

(If it is helpful to anyone, a program specifies which interface to bind to when it calls bind() or listen() on a socket. The default value is the equivalent of "0.0.0.0," which is interpreted to mean "all interfaces," and so the service will listen on wifi, every ethernet port, and the loopback address. If the default is used, it will succeed if at least one interface is available for binding, and fail only if all are unavailable. One can use this, for example, by starting a service with a specific interface, then another with the 0.0.0.0 interface. The second will bind to all interfaces except where the first is listening. Unfortunately, in practice, it can be difficult to guarantee the order in which the services are started, and once again, in my particular circumstances, it is more trouble than it's worth.)

Thanks, everyone, for your suggestions.

I would recommend taking another look at docker. It's actually very straightforward to deploy with its own IP address (therefore no port conflicts). Containers (as opposed to virtual machines) aren't really performance concerns, even on low end host machines (like a NAS).

I have been working with Docker (and Rocket and Kubernetes and AWS Container Services and Google Cloud Platform Kubernetes) for quite a while. Understanding these is part of my job.

My NAS is out of RAM and swapping pretty regularly. I would much prefer to use my Mac mini because it has six cores and 64gb RAM and runs my Plex and Splunk and a number of other services very well.

Docker for Mac OS X runs in a Linux VM (similar to the Windows version) since there is no Linux kernel to use otherwise. There is a file system provider that allows volumes from the host OS (HFS+ or APFS) to be used from inside the VM. This provider is more than sufficient for simple cases, but for an I/O intensive service it is likely to be a problem, especially with the unintended consequences of this solution. (To keep the latency down it will sync to the media very often, which will reduce the lifetime of the SSD, for example.)

What I’m asking for is not at all unusual. In 20+ years of site reliability engineering (and service engineering and production engineering and systems administration as the name changed over the years) for Google, Yahoo, Microsoft, and Apple, this is the only network service I have ever used which does not expose its port number as a configurable setting.

I know my situation is pretty unique and I am not suggesting that it won’t work for others.

I’ve made a feature request and I will move on. Thanks everyone for your help and suggestions and I wish you all the best of everything

Paul M. Lambert

This has been one of my most wanted features. I want to use a port other than 8089 because my other app was using 8089 as well. It's been almost 2 years...

Hi, any update on when this is likely to be fixed. I've got a similar problem, the ISP supplied router I have on my Internet connection uses port 8089 for the automatic configuration of the router over TR069 - https://service.avm.de/help/en/FRITZ-Box-7360-v2-avme/014/hilfe_port_tr069

Although the above page does have a process for turning off the automatic updates, this is only for the standard firmware, my ISP supplies it with an updated firmware that locks off the ability to disable automatic configuration. As a result I cannot set port 8089.

1 Like

You can use a different port on your router for external access, but an additional step must be taken when authorizing/connecting remotely.

If you have a domain name or know your public IP address, you can skip the auth and manually set the router up for any port you want. My DVR has been set up for remote access this way for years now. I just don't use my.channelsdvr.net, or whatever that url you guys are trying.