ARC is fully baked in this respect. Your Roon Server is just that. A Server. In order for any server, Roon, HTTP, FTP, anything, to be accessed from outside of your local network, the Server must open a port (numbered between 0 and 65535) and then your router must forward connections to that port to the server in question itself.
The only way to avoid this is to make both ends of the connection a client to an external service which creates a tunnel. The all Roon Server ↔ Roon ARC traffic and use this tunnel and so all of the data goes via this external service. This is what Tailscale does. Roon, the company, do not offer such a service (it would probably cost too much as the computing and networking infrastructure required to support Roon Users around the world would be much
The problem is that a given port number can only be forwarded to one device - so if you have two servers on your network, both using the same port number, then only one of them can be visible from outside of your network.
In your original post, The ConflictInMappingEntry error suggests that the port number used by Roon (55000 by default) is already configured to forward to an Ip address that is not the ip address of your Roon Server and so it cannot also be configured to forward to your Roon Server and hence the uPnP configuration request fails.
This can actually occur for two reasons:
- You really do have a device on your network that is using the same port and a port forwarding rule for the port in question has already been setup - either explicitely or by uPnP.
- Your Roon Server has, for some reason, changed it’s ip address but the rule that it established when it was on the old ip address is still in place in the router and so the port is being forwarded to a (probably non-existant) device on the old ip address.
In the second case, you may be able to fix the issue by rebooting the router - but that will not fix the issue if it is caused by the first reason.
When looking to see what ports you might be able to use, you need to look not at the ports that are open on the various devices around your network - these will be many and most of them will not require forwarding in the router.
Instead you need to look at the configuration of the router itself to determine what ports are already being forwarded. Many routers have a status page in the Web UI (no command line required) to see this. If not, then if your router has a command line interface available, then you may be able to do it with a command like “sudo iptables -t nat -vnL” but I have never done this and I don’t know what the output is.
Whichever way you do it, you need to look at the set of port forwards on your router and determine the set of ports that are already being forwarded. This done, you need to choose a port for ARC that is not in this set of forwarded ports. In the ASUS Port forwarding status page image that I posted above, you can see that I have TCP port forwards for port 55000, 5001 and 59758 (The UDP port forwards don’t matter) and so, I were to setup up another Roon Server I could get ARC port forward working by choosing any port other than these three.
Further, if you look at the ‘Open By’ column, you can see that some of the Port Forwards are ‘opened’ by VSERVER and some are opened by VUPNP. On this ASUS router, the VSERVER forwards are manually configured and the VUPNP forwards are the ones created by application running uPnP and requesting that a port be forwarded.