Which Minecraft servers and ports for iPad in 2020?

I'm trying to set up a Minecraft server to connect to my iPad client, and am confused about the state of the world in 2020 because I get the impression things have changed over the years, and it's hard to know what information I read online is still true.

People used to refer to the iOS games as "Minecraft Pocket Edition" or MCPE, because it was a fundamentally different codebase from the java version. But I read that in 2015 or so the two systems converged in some way. So is it still true today that MCPE is "fundamentally different" from the PC version?

I've observed that my iPad can connect to servers that default to serving port 19132 (which I think is UDP-based) but not to servers that default to serving on port 25565 (which I think is TCP-based). The servers with the features I want are of the 25565 variety, and the iPad won't connect to them. This seems to conflict with the general idea that everything works the same now. Is this fixable with some kind of network translation proxy?

Sorry for the newbie question, but I'm really confused by the copious advice from years ago that I can't tell if it's still relevant or not. (e.g. arqade questions like Can I host a Minecraft server from an iPad/iPod? )

Clarification: I will run the server software on some server hardware like a linux or windows machine. The iPad minecraft game will connect to the server.


Solution 1:

Yes, Minecraft Java edition and Minecraft bedrock/pocket/… edition are fundamentally different games and that will and can never change.

But you might still be able to run Minecraft Java servers on your iPhone, because that doesn't require being able to run the actual game. It's basically just a command line program written in Java, that's the most universally compatible program you can think of. On Android, I would just tell you to open a terminal emulator, or, if that doesn't work, to use something like Termux, but I don't know how this works on Apple devices. At least a "jailbreaked" iPhone will surely also be able to run a terminal emulator, if not a regular one as well. In that, you should be able to run the server like on a computer.

The only part that is device specific is port forwarding and getting a fixed IP for a device. But that depends on the model of router, not the phone model. It should still work the same for your phone.

Obligatory warning: Phones are not desktop computers, you will have terrible performance. Not even a Raspberry Pi can run a Minecraft server properly, a phone will likely be even worse at this.

Solution 2:

There are currently (in early 2020) two incompatible types of Minecraft:

  • Minecraft Bedrock Edition which runs on most mobile devices (replacing "Pocket Edition" or MCPE which no longer exists), as well as XBox and some others. The official branding for this that you'll see in the game is just "Minecraft" without any "edition" explicitly listed.
  • Minecraft Java Edition which is also referred to as "original Java PC" version.

The unification with Bedrock happened in September 2019, and is commonly referred to by the blog-post's name "Better Together". FAQ has a lot of details. Language in the FAQ hints that the Java edition might someday be made compatible with the bedrock edition, while many in the community believe this to be impossible and state that it will never happen. But of course in the world of software, nothing is truly impossible.

The servers which connect these types of minecraft are also incompatible, and come broadly in those two types: Bedrock and Java. Java edition servers are numerous (Forge, Spigot, Bukkit, PaperMC, etc), generally using TCP port 25565 by default. Bedrock edition servers are more rare (Nukkit, Pocketmine) and use UDP port 19132 by default. For a possibly more up-to-date list of bedrock servers, see a hosting provider like this. The protocols used by bedrock and java are different, and no amount of network router / port-mapping tricks will not get them to work with each other.

There are however a couple of attempts to build proxy servers that translate between the two network protocols. These proxies in theory allow a bedrock edition client to connect to a java edition server. How well they accomplish this goal is left as an exercise to the reader.

  • Geyser - claims to work currently connecting to Bedrock client v1.14 to Forge server v1.15.
  • DragonProxy - looks like an incomplete work in progress but might work by the time you're reading this.