Minecraft Server on Fedora
Your laptop hosts. Your PC joins. Same Wi-Fi.
This guide gets a plain vanilla Java Edition server running on your Fedora laptop, then connects to it from Minecraft on your Windows PC. Vanilla means no mods, no plugins, just the game as Mojang ships it.
Starting with a default server is deliberate. Once this works, you understand the whole loop of hosting anything, and everything after is a variation on it. After this comes playit.gg, so people outside your network can join without touching the router. Last of all comes a modded server.
You need Minecraft: Java Edition on the Windows PC, your Fedora laptop and PC on the same Wi-Fi, and your laptop's password.
Contents
I
Take stock
Open a terminal: press the Super key (the Windows key), type konsole, press Enter. Konsole is Fedora KDE’s terminal app.
Run the following, exactly, in Konsole:
java -version
- If
java -versionreportsopenjdk 25, Java is already present. Skip to section III, Make a home. - If it reports an older version (21, 17, anything below 25), you still need section II. Minecraft 26.x will not run on older Java.
- If it answers
bash: java: command not found, that just means it is not installed. Continue with section II, Install Java.
The terminal is exact speech. Type a command precisely, press Enter, read what comes back.
Like programming, spelling and capitalization matter; a machine can’t guess.
II
Install Java
In the Linux world, programs arrive as packages. A package is a bundle of programs and files prepared and tested for your system.dnf gives you a way to download packages from the command line (terminal).sudo means “run the following command as the system administrator”. It will ask for your own password, and nothing appears while you type.
Minecraft’s server is written in Java, so without Java we can't run the server. Minecraft 26.x requires Java 25. We can install Java with the following:
sudo dnf install java-25-openjdk
Type your password when asked (nothing shows while you type), confirm with y when asked. Then verify:
java -version
You should see openjdk version "25...". The 25 is the part that matters.
III
Make a home for the server
The terminal always stands somewhere. That place is called its working directory. When it opens, that somewhere is your home folder, the one with your name on it.mkdir makes a folder, cd moves into it, pwd says where you are, ls lists what is there.
The server will generate a dozen files, so it gets a folder of its own.
Make it yourself. Run these five lines in order, one at a time, pressing Enter after each:
pwd
mkdir minecraft-server
ls
cd minecraft-server
pwd
- The first
pwdprints your home folder, and will look something like this:/home/jesse. That printout is proof of where you started. mkdir minecraft-servercreates the folder. No output means it worked; silence is success in Linux. If it saysFile exists, that is fine — it is already there, just continue.lsnow lists it among your home folder's contents.cd minecraft-serversteps inside. The secondpwdshould end inminecraft-server. That is proof you moved.
You must be in this folder to launch the server. If something later behaves strangely, check pwd first.
Confirm it any time with:
pwd
It should end in minecraft-server. If it does not, run cd ~/minecraft-server (~ means your home folder) and try pwd again. You are done when pwd ends in minecraft-server.
IV
Download the server file
This part happens in the browser, on the Fedora laptop:
- In Firefox, visit minecraft.net/en-us/download/server, the official Mojang page.
- Download the server file. The link reads something like
minecraft_server.26.3.jar(your numbers may be newer, that is fine). It lands in Downloads. Leave it there for now.
A .jar file is a Java program in a box. It holds code bundled with its needs. You do not install it; you run it with Java.
V
Move it to its new home
Pick any one of these three. They all do the same thing: move the .jar from Downloads into minecraft-server.
- Copy and paste. Open Dolphin (Fedora KDE’s File Explorer), open Downloads, click the
minecraft_server...file, pressCtrl+C. In the left sidebar click Home, then double-clickminecraft-server, pressCtrl+V. - Drag between two windows. Open Dolphin twice. Show Downloads in one window and Home →
minecraft-serverin the other, then drag the file across. - Terminal. In any tab, run (the
*means “anything here,” so this matches whatever numbers your file has):mv ~/Downloads/minecraft_server*.jar ~/minecraft-server/
Confirm in the terminal (~ means your home folder, so this works no matter where the terminal stands):
cd ~/minecraft-server
ls
Your .jar filename should be listed. If no file ending in .jar is there, it is still in Downloads. Try one of the three options again.
VI
Run it once, accept the EULA
Run the server once so it builds its settings files and eula.txt. The world itself comes on the next run, after you accept the EULA. Example filename below — never type the word VERSION itself, use your real numbers with Tab to complete:
cd ~/minecraft-server
java -jar minecraft_server.VERSION.jar nogui
Use your filename: type java -jar mine and press Tab before pressing Enter, and let the terminal complete the name.
Check the structure landed with:
ls
eula.txt should be listed.
It prints several lines, then stops with an error like You need to agree to the EULA... That is expected. It is waiting on the EULA, Mojang’s End User License Agreement, which every host must accept once. It created a file named eula.txt. Open it in nano, a small editor that lives in the terminal, and accept it there:
nano eula.txt
Inside you will see a line reading eula=false. Move the cursor to it with the arrow keys and change false to true. By this edit you agree to Mojang’s terms at minecraft.net/eula.
| Ctrl + O, then Enter | save the file (Write Out) |
| Ctrl + X | leave nano |
Back at the prompt, prove the edit took with cat, which prints a file’s contents:
cat eula.txt
If it still reads false, reopen with nano eula.txt and repeat the save. The Enter after Ctrl + O is the step most often skipped. You are done when cat shows eula=true.
VII
Starting the server
Commands take flags. A flag is an option added after the program name that changes what it does. -Xms2G and -Xmx4G set Java’s starting and maximum memory (2 and 4 gigabytes). nogui tells the server to skip its graphical window and print text instead, which is what a laptop host wants.
The command below gives Java 2 GB to start and up to 4 GB. That suits most laptops; do not hand it all your memory (on 16 GB you may allow 8 later).
cd ~/minecraft-server
java -Xms2G -Xmx4G -jar minecraft_server.VERSION.jar nogui
Your filename: type java -Xms2G -Xmx4G -jar mine and press Tab before Enter, as in section VI, Run it once, accept the EULA. On an 8 GB laptop use -Xmx2G instead of -Xmx4G.
The first start takes a minute or two while it builds the world. (... below means numbers, like the time it took, not literal dots.) You are ready when this line appears:
Done (...)! For help, type "help"
That Done! line means you are hosting. Leave this tab open — closing it kills the server. You will do the next steps in a second tab. To stop cleanly later, click back into this server tab, type stop, press Enter. That saves the world; the window’s X button does not.
VIII
Find your laptop’s address
Each device on your Wi-Fi has its own local address. Your Windows PC needs the laptop's address to find it. It looks like 192.168.1.42 and it only works on this Wi-Fi.
Keep the server running in this tab. Open a second tab in the same window with Ctrl+Shift+T, then click between tabs to tell them apart: tab 1 is the server, tab 2 is for commands. In tab 2, run:
hostname -I
Write down the number beginning with 192.168.. If several numbers appear, pick the one starting with 192.168. and ignore the rest.
Your laptop's firewall blocks incoming connections by default, Minecraft included. That is normal. In tab 2 (never in the server tab — the server tab only understands Minecraft commands like stop), run these once. They open only Minecraft’s port, 25565 (a port is a numbered door a program listens on), and nothing else. Each line should print success:
sudo firewall-cmd --add-port=25565/tcp --permanent
sudo firewall-cmd --reload
Prove the port is open with:
sudo firewall-cmd --list-ports
Expect 25565/tcp in the answer. If it is missing, run the two lines above once more.
Then restart the server so the open port takes effect: click back into tab 1, type stop, press Enter, wait for it to close, then re-run the launch command from section VII, Starting the server and wait for Done! again.
IX
Join from Windows
On the Windows PC, on the same Wi-Fi:
- Open Minecraft: Java Edition. It must be Java, not Bedrock. A server of this kind speaks only Java. Match the server’s game version (the numbers in your jar filename) in the launcher: Launcher → Installations → New → pick that version.
- Choose Multiplayer → Add Server.
- For the address, enter your laptop’s number from section VIII, Find your laptop’s address with
:25565on the end. Not the example192.168.1.42. - Join.
If you spawn into a new world, the work is done. What you build there is stored on the Fedora laptop.
X
When it will not connect
Go in order; stop at the first thing that fixes it:
- The address. In tab 2, re-run
hostname -I. Wi-Fi addresses change; confirm every digit of the IP, then add:25565yourself (the port is not part ofhostname -Ioutput). - The firewall. In tab 2, re-apply the two
firewall-cmdlines from section VIII, Find your laptop’s address. - The pairing. Same network name on both machines (On Fedora KDE look in the system tray bottom-right, click the Wi-Fi icon. On Windows look under Settings → Network & internet → Wi-Fi and compare the network name exactly), and the client must be Java Edition. Bedrock, mobile, and console cannot join this server.
- The server itself. The laptop’s first tab must show
Done!and remain open. - The network. Some shared Wi-Fi networks forbid devices from seeing one another. This is called client isolation. No setting on your laptop overcomes it. Copy the exact error message word for word; it tells us what to try next.
Review what this project taught. You installed a package with dnf, acting with sudo, navigating with cd, pwd, ls, running a program with flags, editing a file in nano, confirming with cat, and locating your machine on its network.