Tutorials/Setting up a server
Running server software on your computer
without knowledge about networking may seriously harm your system
security and lead to severe vulnerabilities.
DO NOT open ports in your router without KNOWING EXACTLY WHAT YOU ARE DOING!
|
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.
Warning
Since you're about to run your own server, you should be aware of the possible dangers. Although we can not prevent people from running their server and putting themselves at risk, we may at least appeal that you don't do it when having no idea what you actually do. Running by the instructions below should not put you at any risk, but since this is a wiki which everybody is allowed to edit, and we don't know about your system configuration, we cannot guarantee you'll be out of danger. In order to run your server and stay out of trouble, we strongly recommend you should at least know about the following:- Networking in general (IP, DHCP, ports etc.)
- Your system configuration
- Your network configuration
- Your router configuration (if you want other people to connect over Internet)
- How to use and configure your personal firewall (shutting it down is NOT an option!)
Windows Instructions
REQUIRED: Verify and Install the Latest Version of Java
- Make sure that you have Java 7 installed. To do so, we first need to open up a command (CMD) window.
- In Windows 7/Vista/XP hold the Windows key down and press R to open the Run command and type cmd.
- At the command prompt, enter the following command, and
press enter:java -version
- Java then should display its version, which should read "Java version 1.7"
- At the command prompt, enter the following command, and
- If you get this error, "
'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.- For 32-bit users you can obtain the latest version here: Java download page. If you use a 64-bit OS ensure you download the Windows x64 package.
- After you have installed the latest version of Java try again with
java -version
.- If you get an error at this point, try the following to add Java to your system path.
- Right click Computer.
- Click properties.
- Click "Advanced system settings".
- Click "Environment Variables".
- Under system variables, find the Path variable.
- Click edit, and append to the end of the value:
;"c:\Program Files\Java\jre6\bin"
. If you use 32-bit Java on a 64-bit OS use:;"c:\Program Files (x86)\Java\jre6\bin"
- Restart your computer.
- Now re-open the command prompt and try again.
Start the Minecraft Server (.exe version)
- Double click on the "Minecraft_Server.exe" file you downloaded and the server should start with a default configuration.
- Upon its initial start, it may throw some "file not found" error messages. This is normal. The files are being created.
- After the first start, you'll probably want to shut it down (enter
stop
in the server command window) and then edit some configuration files—as is explained below.
Start the Minecraft Server (.jar version)
- If you have the .jar version, you will need to have a path variable set up for Java in order to start the jar version of the server. Refer to step 3 of "REQUIRED: Verify and Install the Latest Version of Java" above to set up a path variable.
- To start the jar version of Minecraft on Windows, create a new file in Notepad, and paste in
java -Xms512M -Xmx1G -jar minecraft_server.jar
- Save the file as startserver.bat, and place the file in the same folder as minecraft_server.jar. The .bat extension saves the file as a batch file.
- Double click startserver.bat, and the Minecraft server will run.
Starting the jar version without altering your system path
To start minecraft.jar server without having to change your system path variable you need to instead express the path variable for Java in the "start.bat" file. This is handy because it allows you to still run commands from command prompt using the default system path, without having to constantly edit the system path.- To do this open your start.bat file (or whatever you've named it) with Notepad
- On the very first line add the command
@echo off
so that a command window isn't opened to show the output from our start file - On the next line, make sure the system can find Java (also
called the Java Runtime Environment or JRE) by adding it to the Path
Environment Variable. On a current Windows PC Java will be most commonly
located at "C:\Program Files (x86)\Java\jre7\bin\java.exe", so what you
would then write is
path=%PATH%;%ProgramFiles(x86)%\Java\jre7\bin
where%PATH%
contains the existing Path values and%ProgramFiles(x86)%
contains the location of your 32bit Program Files - usually "C:\Program Files (x86)" (adjust this if you are using Java 6) - Finally, make sure on the last line you have the command that starts the Minecraft server itself:
java -Xms512M -Xmx1G -jar minecraft_server.jar
- If you prefer not to use the server's Graphical User Interface (GUI) to enter administration commands, simply add the option
nogui
to the end of the last command above, so that it reads:
java -Xms512M -Xmx1G -jar minecraft_server.jar nogui
Xmx2048M
of maximum memory to run minecraft. The D:
line below tells the bat file to go the D: drive. Also note the
double quotes around "Program Files" below, needed because of the space
between the words Programs
and Files
. I also chose not to use the @echo off . The title run-minecraft
in the 1st line is to just have the MS DOS window that is used to run
minecraft display "run-minecraft" in the window title bar.
title run-minecraft
path=%PATH%;%C:\"Program Files"\Java\jre6\bin
D:
cd minecraft
java.exe -Xms1048M -Xmx2048M -jar minecraft_server.jar nogui
Optional steps
Increasing the amount of RAM allocated to the Minecraft server
If you would like to start your server with more RAM, you will need to create a Windows batch file and run your server that way. Don't worry, it's easier than it sounds.- Open up Notepad (not Wordpad) to create a text document with no formatting (italics, boldface, etc.).
- Identify your Windows OS type (32-bit or 64-bit), which may be done through the Control Panel. Also, identify which version of Java you are running—32 bit or 64 bit.
- Based on your OS and Java types...
- If Windows is 32-bit or Windows is 64-bit with 64-bit Java, copy this into your document (on a single line and remember to include both the " in sentence) (adjust the following line for Java 6 if used):
"C:\Program Files\Java\jre6\bin\javaw.exe" -Xmx1024m -Xms1024m -jar "Minecraft_Server.exe"
- If you are, for some reason, running 32-bit Java on a 64-bit system, upgrade Java. Also, if you have installed Java to a different directory or changed the name of your Minecraft server .exe file, see below.
- If you do have 32-bit Java on a 64-bit system, Java.com recognizes Java by browser, and some browsers are 32-bit, so downloading both 32-bit Java and 64-bit Java may be needed to run everything correctly
- So what does all of this mean? The executable command (
"C:\Program Files\Java\jre6\bin\javaw.exe"
) is the file path to the location of your most current javaw.exe file. If Java updates to Java 7, you will need to change 'jre6' to 'jre7'. If you installed Java to a different location, you will have to locate it and paste that file path in instead. The next part (-Xmx1024m -Xms1024m
) is your RAM allocation, in megabytes (MB). By default, your server runs with about 100 MB of RAM, which is very little. Most people will change their server to run on 1 GB (1024 MB) of RAM; 2 GB of RAM is also common. As for the-jar
, this indicates that Minecraft_Server.exe is a Java archive. - Lastly in the executable command is the name of our .exe file (
Minecraft_Server.exe
). Typically, it is named Minecraft_Server.exe. Upper and lower case does matter. RenameMinecraft_Server.exe
to whatever you named your file. Then clickFile->Save As...
and for the file name call itrun.bat
, and make sure you select*.* All File Types
from the drop-down arrow (Note: If you do not see*.* All File Types
as a file type, you must putrun.bat
in quotes."run.bat"
). Then save it in the same location your server is saved, and double click yourrun.bat
file. If all goes well, you will notice that you will have much more RAM available on your server!
- If Windows is 32-bit or Windows is 64-bit with 64-bit Java, copy this into your document (on a single line and remember to include both the " in sentence) (adjust the following line for Java 6 if used):
If this does not work, you will have to go into a command window by opening Run, typing cmd and pressing enter. Once there you need to navigate to the folder you have created.
To do this:
- Ensure you are in the proper drive (usually C drive). Type
C:
and then hit enter to access the c drive - Now you need to call the directory (open the folder). Type
cd \"folder name"
then hit enter. Make sure to include the quotation - Ensure you are in the proper directory. Type
dir
and command will generate a list of contents of the folder, you should see minecraft_server there. - Rename Minecraft. Type
rename minecraft_server minecraft_server.exe
then hit enter. This should add the .exe extension to the executable and it should now operate correctly.
Port Forwarding
To make your server available over internet (public or semi-public), you need to portforward it through your router. This is not required for local servers. Keep in mind that portforwarding might cause security risks.For your specific router interface look for a HowTo at PortForward.com. Your portforwarding rule should be named something like 'minecraft_server' (i. e. easy to remember and recognize). You only need to forward port 25565 for TCP, although it shouldn't be a problem if you choose both (UDP and TCP). For the 'To IP Address', start up command prompt (cmd) and enter 'ipconfig'. Then find the IPv4 address of your network interface (should be something like 192.168.x.y, with x ranging from 0 to 254 and y from 2 to 254) and enter it into the 'To IP Address' box. Finally, click the 'Enabled' check box, and hit 'Save Settings'. Make sure your computer is the only one getting this address if you're working with DHCP (most DHCP servers have a setting for that, using your MAC address to bind a certain IP address to a certain computer - to find out about your MAC, use 'ipconfig /all' and head for ’Physical address'), or use static IP settings.
Do NOT enter any IP in the server.properties file, since this setting is for advanced users/admins only!
Now you just have to give your external IP (which you can find out by searching "what is my ip" in Google) to your friends every day, if you don't want to use DynDNS services to bind a certain web address to your daily changing external IP.
Mac OS X Instructions
Setting a server up in Mac OS X is "more involved" than in Windows because an executable file has not been made available. A video tutorial of the process can be seen here. Keep in mind that the server won't run correctly on OSX 10.4 and may crash your machine.Downloading
Ensure you have the latest server application software. Look above for instructions.Installing Java
Mac OS X already comes with its own version of Java that is updated automatically via Software Update (Apple menu > Software Update).Setting up the Minecraft Server
Ensure you have followed the download step before proceeding.- Create a folder, if you haven't already, and put minecraft_server.jar into it. For example, create a folder on the Desktop named minecraft_server and drag the jar file into it.
- Open TextEdit, set the format to plain text (Format > Make Plain Text), copy and paste in the following:
#!/bin/bash
cd "$(dirname "$0")"
exec java -Xmx1G -Xms1G -jar minecraft_server.jar
- Save the file as "start.command" in the same folder as minecraft_server.jar.
- This will give the server enough RAM to run. The amount of RAM can be changed by editing the
1G
to something else, such as2G
for 2 GB.
- This will give the server enough RAM to run. The amount of RAM can be changed by editing the
- Open Terminal (in /Applications/Utilities/Terminal).
- Grant execute permissions on file start.command to Owner, Group. and Public. To do so, type in
chmod a+x
, with a space after it; drag and drop the start.command file into the terminal window; and then press enter. (This gives run permission to the start.command script.) - Double-click the start.command file to start the server.
- A new Terminal window will open and, the first time you run the script, several error messages about missing files/directories will appear. This is normal. You're now ready to configure your server.
Run as a daemon
Alternatively you can automate the startup of the Minecraft server.Create a Mac OS X startup daemon
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 getjava: command not found
(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/etc/apt/sources.list
file. e.g.:
deb http://ftp.uk.debian.org/debian/ squeeze main non-freeUpdate your sources list (as root):
apt-get updateThen to install Java, simply type this in terminal and press enter (as root):
apt-get install sun-java6-jre
Ubuntu
Unfortunately, as stated at the bottom of this section, some liscensing issues have prevented Canonical from allowing repositories to have Sun Java, so you must download it directly from Oracle, package it, and install it. Luckily, there is a nice script that is fairly easy to use at this link. Just run the commands below, and if you have any troubles just go to the link. It may take a while.cd ~/
wget https://github.com/flexiondotorg/oab-java6/raw/0.2.4/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh
If you want to watch progress, just run
tail -f ./oab-java.sh.log
Then, once the script has finished, run
sudo apt-get install sun-java6-jre
Pretty much everything below this in this section won't work any longer. I don't want to delete it until it is all tested again though.
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:
- For Ubuntu 10.04 LTS (Lucid Lynx):
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
- For Ubuntu 10.10 (Maverick Meerkat):
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"
- For Ubuntu 11.04 (Natty Narwhal):
sudo apt-get install python-software-properties
Then you can proceed to add the source:
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu natty partner"
- For Ubuntu 11.10 (Oneiric Ocelot):
sudo apt-get install python-software-properties
Then you can proceed to add the source:
sudo add-apt-repository ppa:ferramroberto/java
- Then install the packages:
sudo apt-get update
sudo apt-get install sun-java6-jre
sudo update-alternatives --config java
- Note that after February 16, 2012 the above may no longer work thanks to a licensing issue with Sun's Java ( https://lists.ubuntu.com/archives/ubuntu-security-announce/2012-January/001554.html )
openSUSE
On older versions, you can simlpy typezypper in java-1_6_0-sun
into a terminal.
On newer versions, there is a tutorial here describing how to install Java.
Arch Linux
Open a terminal and runpacman -Sy openjdk6
as root.
Gentoo
Use:
emerge virtual/jre
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:cd minecraft_server
java -Xms1G -Xmx1G -jar minecraft_server.jar nogui
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.
cd minecraft_server
java -Xms1G -Xmx1G -jar minecraft_server.jar nogui
free -m
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:
java -Xms1536M -Xmx1536M -jar minecraft_server.jar nogui
Voila, it should run smoothly now
Tip: If you want to spare more memory, you may set the -Xms parameter even lower, say:
java -Xms32M -Xmx512M -jar minecraft_server.jar nogui
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 manage/automate the startup and shutdown of the Minecraft server using a script such as the ones listed below:- Minecraft Server Manager A comprehensive start up script for Minecraft and Bukkit servers (support Debian, such as Ubuntu).
- MSM can also periodically create World Edit compatible backups.
- Keeps players informed with configurable in-game messages, such as "Shutting down in 10 seconds!"
- Expose in-game commands (such as "say", "op" and "whitelist") to the terminal.
- Tab completion on all commands makes learning easy.
- Visit Minecraft Server Manager's GitHub page for the full list of features.
- Server startup script
- M3tal_Warrior Server Startup Script for Debian
- FreeBSD startup script
- OpenBSD startup script
- Ubuntu/Upstart startup script
Configure and connect
Now it is time to configure and connect.Configuring the Minecraft Server
- 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.
- Add your username to the admin.txt and/or ops.txt (newer Minecraft versions may not have an admin.txt file).
- 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).
- Op privileges may also be granted from the server GUI: type "op <username>" and it will automatically add <username> to the ops.txt file. Being an op will not let you fly and/or have a creative inventory
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, click
direct connect, and then type in "localhost" instead of an IP address.
- This is not recommended unless you have a powerful computer, with more than 6 gigabytes of ram (.5 for the server, 1 for the client, and remainder for system).
- Users within your network (Accessing the same router) can connect with your internal IP address. (You do not need to port forward for connections that are within your local network.) The internal IP address of a specific device can be found by typing "ipconfig" into command prompt and looking for the ipv4 address.
- 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.
- 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")
- One person sign up for admin via logmein website
- Create new network
- Pass these details onto every person concerned and get them to login
- One person set up a server.
- Everyone else connect via their Hamachi ip address and use port number 25565 (default)
No comments:
Post a Comment