Hypixel.net is both their website and mc server adress.
Is it just that https is on port 443 and minecraft is on port 25565?
And if that is the case, can i do something similar by making a reverse proxy have two seperate server blocks for the one domain, with different ports?
DNS A record points to an IP destination. Ports are then handled by the requests for a specific port thing.
Example: A record for www.dududu.com points to IP 1.2.3.4, but different service ports are listening there to pick up different traffic.
Thanks, that’s what i figured.
I got confused by so many game servers using seperate domains for the site and server, i assumed there was a good reason for that
Maybe most smaller ones have hosted both things separately, e.g… with a dedicated minecraft server hoster and a common website-building+hosting service, and don’t want to run an extra server for a proxy just for this.
With bigger servers (eg. Hypixel, 2b2t) or selfhosted servers (eg. mine), everything is on the same physical (or virtual) machine anyway and therefore everything has the same address, so you wouldn’t even need a proxy.
Does that mean, to play minecraft on their server I would put “www.dududu.com” in my Minecraft client?
That suggested, it could be done with ports, or it could be done with separate servers.
Domain.com resolves to 1.2.3.4
www.domain.com resolves to 1.2.3.4:443
app.domain.com resolves to 1.2.3.4:5555
Games.domain.com resolves to 1.2.5.6
Mail.domaim.com resolves to 1.2.7.8
Portal.domain.com resolves to 1.2.9.10
Etc, etc.
This is how I set up my reverse proxy and it works really well with wildcard SSL certs. Only need one certificate for as many sites as I want!
Or you can use something like caddy that will set up certs automatically using tls-alpn-01 challenge, so no need for dns challenge .
I haven’t tried caddy but I’ve heard good things. I’ve used nginx in the past. I’m currently using Traefik and have been for a few years now. Once it’s set up its pretty great.
You cannot specify ports in a DNS A or AAAA record. www.example.com cannot resolve to 1.2.3.4:443 and app.domain.com cannot resolve to 1.2.3.4:5555
If the application (be it a game or whatnot) supports it, SRV records can identify a port for a hostname. So, you could have minecraft1.domain.com and an SRV record to specify port 25565, and minecraft2.domain.com SRV 25566.
This means you can have multiple Minecraft servers with the same IP address, but you won’t need to give people the port numbers to remember; the hostname allows the game to look up the port via the SRV record.
This is great for selfhosters because we generally only get one IP (until they rollout IPv6; probably half the reason they don’t)
I didn’t say to specify a port in the DNS. I just said that it is a way that we can resolve a resource.
In the case of ports we’d configure it through whatever webserver (Apache, nginx, traefik, whatever) configs necessary on that machine. The DNS in this scenario would only be for the machines IP where our webserver then routes traffic to different ports.
I was accounting for both valid setups.
Is it just that https is on port 443 and minecraft is on port 25565?
Yes
TCP is the way that you send information, HTTP is what it means.
The difference, in your case, is the port. You can’t CAN have TCP and UDP on the same port, but you can’t have the same protocol on the same port.
edit: I didn’t knew you could have different transfer protocols on the same port, ty!
You can’t have UDP and TCP on the same port? I don’t think that makes sense, I have DNS listening on UDP and TCP both on port 53.
Don’t forget, you can also use SRV records to point a domain to another target, where you can also omit the port number. So connecting to server.org say, can point to mc.server.org:25565 under the hood.
This prolly isn’t what hypixel are doing as everything’s likely on the same network and their router/firewall is just forwarding traffic onto different machines, but SRV is one way to redirect a minecraft connection (and you could combine the technique with subdomains).
Minecraft can read a special DNS record type called SRV records. You can create a record like that to point Minecraft to a port that the server is running on. It doesn’t even have to have the same ip as the webserver.
This is for Namecheap, but the general principle applies everywhere: https://www.namecheap.com/support/knowledgebase/article.aspx/9765/2208/how-can-i-link-my-domain-name-to-a-minecraft-server/