How to route requests directly to server IP to docker container only if it doesn't match existing host rules?

So I have an irritating service I need to setup talking between a server in one location and another with a provided API. Unfortunately the service first establishes a connection to the api via http to authenticate, but then switches to tcp on a non-configurable port that isn't supported for cloudflare's dns proxy routing, and insists on using the same address for both, so I can't use my domain as the address I give it.

Oh well I think, its one server I control talking to another, I can just use the IP, but I've been pulling my hair out all weekend trying to get a http router to match to a request directly to the machine's IP. I can see the connection in Traefik's log, its hitting traefik, but it isn't matching any rule, so just 404s.

I've tried rule=Host(<the ip>), rule=Host(*) (based on the examle for TCP and forwarding all requests on a port, and a variety of other rules and lack-thereof and it never seems to match the request... (I'd list more, but don't actually remember them, I'm down to throwing things at the wall to see what sticks).

My gut tells me I must be missing something obvious. This should be doable with some kind of rule with a low priority right?

You will need to set up two routers, one for http one for tcp.

You may still be able to use a Host() rule with the hostname fot the http router, the tcp router you need to use HostSNI() if the base protocol is TLS then you can use the hostname, if not then you cannot use TLS and must use HostSNI(`*`).