Tutorials/Setting up a server

This tutorial takes you through the steps of setting up your own server—using the default server software that Mojang distributes free of charge. The software may be installed on most operating systems, including Windows, Mac and Linux.

Regardless of your operating system, you must begin by downloading the server software from Minecraft downloads page. It is recommended that you create a dedicated folder for the server files. (Ensure the filename is precisely minecraft_server.jar or minecraft_server.exe, in case your browser has renamed it to something else.)

Note: There is also custom server software available, but note that these applications are not supported by Mojang.

=Windows Instructions=

REQUIRED: Verify and Install the Latest Version of Java

 * 1) Make sure that you have Java 6 installed. Avoid Java 7 unless you ade>'Java' is not recognized as an internal or external command, operable program or batch file. ", then you may have a previous version (less than 1.6) of Java or Java may not be in your system path.

Increasing the amount of RAM allocated to the Minecraft server
Minecraft server will run.

= Linux Instructions = This tutorial for how to set up a Minecraft server on Linux was designed for people who don't have a lot of experience with Linux. There is a more advanced tutorial in the forums. This tutorial was tested on Ubuntu 9.10 32-bit but should work with the descendants of Debian.

Downloading
Ensure you have the latest server application software. Look above for instructions.

Installing Java
If you get  (which may be followed by more text) or if you do have another Java version than 1.6 then you need to install or update java. The official Oracle Java is recommended. A few individuals have experienced issues with OpenJDK. Others report that running on OpenJDK is completely fine.

Debian
Ensure that the non-free repository is being scanned by apt. You do this by adding non-free to your  file. e.g.:

deb http://ftp.uk.debian.org/debian/ squeeze main non-free

Update your sources list (as root): apt-get update

Then to install Java, simply type this in terminal and press enter (as root): apt-get install sun-java6-jre

Ubuntu
For Ubuntu 10.04 LTS and on, the sun-java6 packages have been dropped from the Multiverse section of the Ubuntu archive. You must add these sources: Some distros have the command "add-apt-repository" removed. If this is the case, you will need to add the python properties by running the following command:
 * For Ubuntu 10.04 LTS (Lucid Lynx):
 * For Ubuntu 10.10 (Maverick Meerkat):
 * For Ubuntu 11.04 (Natty Narwhal):

Then you can proceed to add the source:


 * For Ubuntu 11.10 (Oneiric Ocelot):
 * Then install the packages:

openSUSE
Use

Arch Linux
Open a terminal and run  as root.

Gentoo
Use

Other Distros
Alternatively, you can visit Java's website directly to download the Java package for Linux. Most distros work with this (either 32 or 64-bit). Instructions for the installation of those different packages are given on the site.

If during installation, it asks for a password, enter your password. If you get asked "Is this OK [Y/N]" Enter Y and press enter if required. Java should now be installed.

Start the Minecraft server
Open the terminal again Applications > Accessories > Terminal Enter the following commands, substituting 'minecraft_server' with the name of the folder you extracted the server to:

Less than 1GB free RAM
If you have less than 1024MB RAM, the above line may cause problems with swapping and out of memory conditions, which makes the game hard to play.

It may look like this:



You are interested in the last number in the third line, 2163 in this case. Subtract some RAM as safety. On this computer, the server may use up to 1536 MB RAM. Now, replace the 1024 in the above example with the calculated number:

Voila, it should run smoothly now

Tip: If you want to spare more memory, you may set the -Xms parameter even lower, say:

The parameter controls how much memory is reserved on startup Your server will start with 32MB RAM and whenever it needs more memory it will allocate some until it reaches the maximum of 512 MB. However, this will result in a little slowdown whenever the allocation is done.

Startup and maintenance script
Alternatively you can automate the startup of the Minecraft server.

Server startup script

M3tal_Warrior Server Startup Script for Debian

FreeBSD startup script

Configure and connect
Now it is time to configure and connect.

= Configuring the Minecraft Server =
 * 1) Configure the server by editing the server.properties file, the format for which is explained here. Be certain to edit the file with a text editor that does not add formatting (e.g., for italics). Additional configuration may not be necessary as many servers run fine from the default values.
 * 2) Add your username to the admin.txt and/or ops.txt (newer Minecraft versions may not have an admin.txt file).
 * 3) *Ops.txt and admin.txt determine who may execute server commands. In other words, operator ("op") privileges allow you to control certain aspects of the game (e.g., teleporting players).
 * 4) *Op privileges may also be granted from the server GUI: type "op " and it will automatically add to the ops.txt file.

= Connect to the Minecraft Server =
 * If you are playing on the same machine on which the server is running, select the "Multiplayer" option in the game client and type in "localhost" instead of an IP address.
 * This is not recommended unless you have a powerful computer, with more than 4 gigabytes of ram (.5 for the server, 1 for the client, and remainder for system).
 * Users within your network can connect with your internal IP address. (You do not need to port forward for connections that are within your local network.)
 * People connecting from the Internet (i.e., outside of your local network) must connect using your external IP address. You must port forward for someone outside your network to connect to the server.

IP address notes

 * Unless you set a static IP for the computer that is hosting the game, the internal IP address can change. This affects port forwarding rules, and can make them invalid. Each modem or router has a different way of setting a static IP address. You should refer to the manual for your device(s) or online documentation for further instruction.
 * If you are having players connect to your external IP, your external IP can change if you do not have a static IP from your internet service provider. Use a tool such as MyWANIP to periodically check on the external IP address. You may also search "my ip address" on Google and it will show your IP address. Alternatively, you can look into a DNS service that will allow you to have a name, rather than an IP address, that will remain the same. The name will point to your external IP address, regardless of whether or not it changes (the DNS is updated when changes occur).

Firewalling, NATs and external IP addresses

 * You must open the TCP port (default is 25565) on the firewall.
 * If the server in question is not reachable via a globally routable IP address, you will need to add appropriate address and/or port number translation rules to the gateway — usually your router has the global IP address.
 * For help with address translation, opening the firewall and routing (these three make up what people call port mapping/forwarding), portforward.com is a good source. Select your router from that list, skip the ad that comes after selecting the device, and you will see instructions for setting up port forwarding. Alternatively, you can read the documentation supplied with your router, modem, or other ISP related hardware.
 * Verify the port is open, and note your external IP by using a port checker tool, such as You Get Signal. The default port you should test is 25565, unless you specified something else. Have the Minecraft server running when you test the port.
 * You can obtain your external IP address from YouGetSignal.

Local Network Dedicated Servers
This only applies to Classic (v0.30) servers.

A common problem for server administrators is the inability to connect to your own server via another machine on your local network. A typical scenario for this is that you have a Classic server running on a dedicated machine, and you have your own machine which you play on. They're both connected to the same router/switch, and have internal IP's with the octets '192.168.x.x'. Normally, connecting via the URL generated for your server will result in an error message claiming that the server is offline.

To correct this, you must add a function to the end of your URL, bookmarks, or whatever else you connect by. The function is: ?override=true

Example: http://www.minecraft.net/classic/play/4c3bebb1a01816acbe31c5ece1570da5?override=true

Previously, (before the 1.8 beta and website update) this was &override=true. This caused much confusion since the change was not announced by Mojang, and wasn't announced on the website applet pages either. Before the update, connecting to your own URL via the website resulted in red text under the applet window saying "If you can't connect, try this link instead." The link returned the same thing, with the &override=true affixed to the end.

Note: This situation does not effect Beta servers, and you should be able to connect via an internal or external IP.

Setting Up a VPN (Hamachi)
An easy way to set up a server between you and your friends is to set up a VPN (virtual private network). A free software utility that can be used to set this up is Hamachi by LogMeIn. Don't use this for public servers. Many users will not take the extra time to install the client and such.

Advantage of doing this saves you configuring ports on your router and if you have a dynamic IP address using Hamachi will provide you with a static IP.


 * 1) Install software on you and your friend's computers  https://secure.logmein.com/products/hamachi2/ or https://secure.logmein.com/US/labs/?wt.ac=73-516-440 for Linux (32-bit and 64-bit .deb and .rpm packages are available, you can install it on Gentoo by emerging "net-misc/logmein-hamachi")
 * 2) One person sign up for admin via logmein website
 * 3) Create new network
 * 4) Pass these details onto every person concerned and get them to login
 * 5) One person set up a server.
 * 6) Everyone else connect via their Hamachi ip address and use port number 25565 (default)

=FAQ (Frequently Asked Questions)= Q: I have a problem which is not answered in here! What should I do to?

A: Go to the Talk page and post your problem there. To help you, we do need some information: And please, if we were able to help you, post where the problem was exactly and what was the fix for that. Other people will appreciate that (and we will be able to get a grip on the common problems)!
 * Operating System(s)
 * Java version(s)
 * One machine or multiple computers
 * Exact description of the problem WITH WhatHaveYouDone and error message
 * What you were trying to do
 * What you did so far
 * Any errors you encountered
 * Screenshots of the problem (if possible)
 * Everything else that might help us to solve your problem - there almost never is too much information (passwords would be too much information!)

Q: When I try to connect to my server this is what it says: Connection lost The server responded with an invalid server key

A: Wait a minute then try again. It should work, but if it doesn't connect within a few tries, you have a problem. Update the server to 1.0.1 (aka 1.1) (this should fix it)

Q: On a Windows computer, when I double click the batch file it opens a command prompt window, but quickly disappears and the server does not start. What should I do?

A: This is probably due to an incorrect path for javaw.exe. You may just need to change  to. Or search your system for javaw.exe and adjust the path accordingly. (It's probably under  or  .) Also, you must have the offline version of Java installed—not just the Java plug-in for your browser.

Q: Whenever I try to get the server up, it says "Failed to Bind to Port."

A: This usually means that you have tried to use a port that is already in use or that you do not have permission to use (ports < 1024 are privileged and require root to bind to). You can try a different port by changing it in your  file in this line:.

Note: You should avoid using the following ports for your server as some ISPs may block these ports for security reasons and you shouldn't be running the Minecraft server as root (in the case of a Linux type OS and ports < 1024):
 * 21 (Used by most FTP Servers)
 * 22 (Used by Secure Shell daemon)
 * 25 (Used by Mail Servers for SMTP)
 * 53 (Used by DNS Servers)
 * 80 (Used by most Web Servers)
 * 110 (Used by most Mail Servers for POP3)
 * 115 (Used by Simple File Transfer Protocol)
 * 143 (Used by Mail Servers for IMAP)
 * 443 (SSL port for Web Servers)
 * 3306 (Used by most MySQL Servers)

Generally avoid any port below number 1024, since those ports are generally referred as well-known ports and are registered with the IANA for important services.

Q: I tried to run the server with Solaris/OpenSolaris and got the following error: java.io.InterruptedIOException: Operation interrupted at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at java.io.FilterInputStream.read(FilterInputStream.java:66) at gq.a(SourceFile:131) at ji.g(SourceFile:197) at ji.c(SourceFile:17) at oq.run(SourceFile:84) 2011-05-31 16:57:26 [INFO] /:44673 lost connection

A: For whatever reason, out of all of the operating systems, only Solaris throws that exception when a thread interrupts a connection. A workaround is to change the default behaviour on the command line:

java -Xmx1G -Xms32M -XX:-UseVMInterruptibleIO -XX:+UseConcMarkSweepGC \ -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts\ -jar minecraft.jar nogui

This instructs Java to use an interruptible IO stack instead of the default IO that is sensitive to interrupted threads.

Q: I cannot break/place any blocks!?

A: Walk away from your spawn area. You cannot break or place blocks near spawn (unless you are operator on the server).

Q: My server runs fine but I cannot connect to it!

A: Your server may be running with the IPv6 stack.

You can check this in linux by running  where 25565 is the port your server is running on. If a line is returned with tcp6 then you need to add  to the startup parameters. Example: java -Xmx1G -Xms1G -Djava.net.preferIPv4Stack=true -jar minecraft_server.jar nogui

Q: How do you give a .jar server more ram?

A: Change the numbers in the server launch command "-Xmx1G -Xms1G". The -Xms part specifies how much memory the server starts with, and the -Xmx part is the maximum amount of memory the server can use. Values are in megabytes.

= Other Tutorials = Here are some other tutorials on how to set up a Minecraft server.
 * Mac OS
 * Full video tutorial for setting up Minecraft server on Mac OSX, including port forwarding
 * Another Mac OSX and port forwarding tutorial
 * Alternate Mac OSX video (updated for 1.7)
 * Linux
 * Linux tutorial for more advanced users
 * How to install a Minecraft Server on Debian (German)
 * How to Install Minecraft Server on CentOS
 * Windows
 * Windows tutorial with focus on how to forward a port
 * Others
 * Guide to setting up an alpha server using Virtualbox.

Tutoriels/Configurer un serveur 튜토리얼/서버 설치 Создание и настройка сервера 教程/架设服务器