你可以帮助我们来翻译此条目,但请勿使用机器翻译。
在这个教程中,我们将通过手把手的方式,一步步地帮助你建立属于你自己的Minecraft服务器。在该教程中,我们使用Mojang发布的供玩家免费下载的服务器端程序,该程序在大部分操作系统(比如Windows,Mac OS以及Linux等)上都可以运行。
首先,你可以根据你所使用的操作系统,前往官方的下载页面,下载所需的Minecraft服务器端程序。我们建议你新建一个文件夹用于保存服务器端文件。(下载后请确认下载的服务器端文件是否是 minecraft_server.jar 或者 minecraft_server.exe,因为有时你的浏览器会将可执行文件重命名。)
注意:网上也有许多Minecraft的第三方服务器端程序,不过它们都是不受Mojang技术支持的。
Windows 操作指导
需求:确认你的操作系统安装了最新版本的Java环境
- 确保你安装了Java 6。除非Sun公司官方发布,否则不要安装Java 7,除非你想做软件调试。为了检查当前的Java环境,我们可以打开一个命令提示符(CMD)窗口。
- Windows Vista/7 系统下,点「开始菜单」,在搜索框中输入 cmd,回车。
- Windows XP 系统下,点「开始菜单」-> 「运行」,然后输入 cmd 并回车。你也可以使用「运行」的快捷键:Windows键 + R。
- 在命令提示符窗口,输入命令
java -version并回车。 - 窗口中应该会显示当前你的电脑的Java版本,应该为 "Java version 1.6"。
- 如果你得到了无效的命令错误提示, "
'Java' 不是内部或外部命令,也不是可运行的程序或批处理文件",那么你的电脑上运行的可能是早期Java版本(比1.6早)或者根本就没有Java环境。- 对于32位系统的用户,可以到此处下载最新版本的Java。如果你的系统是64位的,确保你下载的是Windows x64 Java包。
- 在你安装了最新版的Java之后,你可以尝试在命令提示符窗口再次输入
java -version并回车。- 如果你依旧得到错误提示,请尝试以下步骤,将Java添加到你的系统环境变量中去。
- 右键点击「我的电脑」。
- 点「属性」。
- 点「高级系统设置」。
- 点「环境变量」。
- 在「系统变量下」,选中「Path」变量。
- 点编辑,在内容的结尾处加上
;"c:\Program Files\Java\jre6\bin"。如果你在64位系统上使用32位Java,则使用;"c:\Program Files (x86)\Java\jre6\bin"。 - 重启电脑。
- 再次打开命令提示符输入
java -version并回车,验证。
启动Minecraft服务器端程序 (.exe 版)
- 双击「Minecraft_Server.exe」文件。服务器程序将会以默认配置启动。
- 第一次启动时,会显示一些「file not found」(文件无法找到)的错误提示。这是正常的,这些文件正在创建当中。
- 第一次启动之后,我们可以开始配置服务器文件了。首先将打开的服务器程序关闭:在命令窗口里输入
stop。之后我们开始按照下面的指导进行服务器配置。
增加Minecraft服务器端程序所占用的内存
如果你想让你的服务器端程序占用更多的内存,你就需要创建一个批处理文件。没关系,这比听起来容易。
- 打开「记事本」(不是「写字板」哟),新建一个文本文件。
- 确认下你的Windows系统是32位的还是64位的,可以在控制面板里面查看。并且确认下你的Java版本是32位的还是64位的。
- 根据你的系统以及Java版本……
- 如果Windows系统是32位的或者是64位且安装的是64位的Java,复制下面的内容到你的文本文件中(只占一行。如果使用Java 6,请根据命令中的目录):
"C:\Program Files\Java\jre7\bin\javaw.exe" -Xmx2048M -Xms2048M -jar "Minecraft_Server.exe"
- 如果你因为一些奇怪的原因,正在64位系统上运行32位的Java,升级你的Java。并且,如果你把Java装载其他目录里了,或者你重命名了Minecaft服务器程序文件,见下:
- 如果你在64位系统上有32位的Java,Java.com会通过浏览器判别你的版本,对于一些32位的浏览器,会推荐给你下载32位的Java。在这样情况下,为确保万无一失,请把32位和64位的Java都下载并安装了吧。
- 文本文件这一行到底是什么意思呢? 这条可执行命令(
"C:\Program Files\Java\jre7\bin\javaw.exe"))是一个文件地址,指向你系统最新的javaw.exe。如果你的Java版本是8,你应该把命令中的'jre7'改成'jre8',如果你把Java安装在了其他地址下,你就需要找到那个地址,复制粘贴过来,替换到上面这个错误地址。 下一部分(-Xmx2048M -Xms2048M)表示你分配的内存大小。以MB(MegaBytes,兆)计算。默认情况下,你服务器只会使用100MB内存,这对于Minecraft服务器来说太小了。大部分用户会分配给服务器程序1024MB(也就是1GB),或者2048MB(2GB)也是一般推荐的。 下一个,参数-jar,是用来表示Minecraft_Server.exe是Java架构程序的。 - 在这条可执行命令的最后是我们的.exe文件的名字(
Minecraft_Server.exe)。一般来说,名字是Minecraft_Server.exe. 大小写不区分,不一样没关系,如果你的.恩建已经改名,就把这条命令里的文件名也改成你相应的名字。最后,点 文件->另存为...,将文件取名为run.bat,并且确保在窗口的文件类型那,选中为所有文件(*.*)。 然后保存到和你服务器端程序所在相同的目录下。双击刚建立的run.bat文件。如果一切都按照正确步骤坐下来,你就会注意到现在你的服务器程序申请到更多的内存了!
- 如果Windows系统是32位的或者是64位且安装的是64位的Java,复制下面的内容到你的文本文件中(只占一行。如果使用Java 6,请根据命令中的目录):
如果Windows没有识别出文件类型(你可能会被提示选择用什么程序来打开),这也许是因为Minecraft_Server缺少了.exe文件名后缀。我们可以通过重命名Minecraft_Server为Minecraft_Server.exe来修正这个问题。如果问题解决,程序的图标就会变成Minecraft的图标(方块)。 如果还是没解决,你需要打开命令提示符窗口,点「运行」,输入cmd回车。然后你需要将命令提示符窗口当前地址定位到你创建的文件夹地址去。
按照以下步骤来:
- 确保你在正确的盘符(一般是C盘)。输入
C:然后回车来进入C盘。 - 现在你需要打开你的目录。输入
cd \"folder name"然后回车,要包含引号部分。 - 确认你在正确的目录下了,输入
dir然后回车你会看到你当前所在目录下的所有文件和目录。如果正确的话,你应该可以看到minecraft_server在其中。 - 重命名Minecraft。输入
rename minecraft_server minecraft_server.exe然后回车,这么做会将.exe后缀添加到文件名上,使文件变成可执行文件。之后就应该可以正确的打开运行了。
启动Minecraft服务器端程序 (.jar 版)
- 如果你用的是.jar版的服务器端程序,你需要在环境变量中添加正确的Java地址。要完成这一操作,请回到前面的「确认你的操作系统安装了最新版本的Java环境」指导章节。
- 要在Windows上运行jar版本的Minecraft服务器端程序,先用「记事本」新建一个文本文件,然后粘帖以下内容进去:
java -Xms512M -Xmx1024M -jar minecraft_server.jar- 保存为 startserver.bat,放在与minecraft_server.jar相同的目录下。 .bat文件是批处理文件。
- 双击 startserver.bat,服务器就开始运行了。
在不改动环境变量的情况下,启动jar格式服务器端程序
要在不改动你系统环境变量的情况下启动jar格式服务器端程序,你需要在你的start.bat批处理文件中添加java路径。因为不需要改动系统变量,所以这个方法比之前的要方便并且安全。
- 首先用「记事本」打开你之前建立的批处理文件start.bat(或者别的什么名字)
- 在首行,加入
@echo off
,这行命令使得「命令提示符」窗口隐藏,不会在你启动批处理文件时跳出来。 - 第二行,确保你的系统上可以找到Java(也叫Java运行库或JRE)。目前的Windows计算机上最普遍的是"C:\Program Files (x86)\Java\jre7\bin\java.exe",因此,你需要在第二行写上:
path=%PATH%;%ProgramFiles(x86)%\Java\jre7\bin\java.exe
,在此%PATH%包含着已经存在的系统变量,而%ProgramFiles(x86)%会指向你的系统Project Files目录,一般是 "C:\Program Files (x86)"。 - 最后,确保最后一行是服务器启动命令:
java -Xms512M -Xmx1024M -jar minecraft_server.jar - 如果你不想使用图形界面(GUI),只需要在这行结尾加上
nogui。也就是:
java -Xms512M -Xmx1024M -jar minecraft_server.jar nogui。
Mac OS X 设置指南
在Mac OSX上设置Minecraft服务器,相比Windows上要"更复杂",原因是一个官方并没提供简单的Mac OSX支持的应用程序。我们在此提供了一个完整的视频教程点此播放。须知服务器端在OSX 10.4 老虎 上无法正确运行并且可能使电脑崩溃。
下载
确保你有最新的服务器端应用软件。去上面 看指导。
安装Java环境
Mac OS X 已经
)
架设Minecraft服务器
确保你根据已经完成了上面的下载步骤,然后开始接下来的操作:
- 创建一个文件夹,将minecraft_server.jar放入其中。比如,在桌面上创建一个名为「minecraft_server」的文件夹,然后把.jar文件拖进去。
- 打开「文本编辑」,设定格式为纯文本(格式 > 制作纯文本),然后复制下面的内容到编辑器中:
#!/bin/bash
cd "$(dirname "$0")"
exec java -Xmx1G -Xms1G -jar minecraft_server.jar
- 保存文件到.jar所在的目录并重命名为"start.command"。
- 这个就可以给服务器端足够的内存来运行。占用内存总数可以通过改变文本中的
1G来实现,比如把它改成2G,那么你的服务器就会用2G的内存来运行。
- 这个就可以给服务器端足够的内存来运行。占用内存总数可以通过改变文本中的
- 打开「终端」(在/应用程序/实用工具/终端)。
- 给予该可执行文件运行权限给用户,组和公共。来完成这部,在终端中输入
chmod a+x,别忘了后面有个空格;然后拖 start.command 文件到终端窗口中,然后按下回车键。 (这就给了该脚本运行权限。) - 双击start.command来运行服务器端程序。
- 一个新的终端窗口会打开,但你第一次运行该脚本时,会出现很多错误信息,提示你一些文件(files/directories)无法找到。这是正常的。现在你可以开始配置你的服务器了。
作为后台进程运行
你也可以让服务器程序在系统开机后自动后台运行。
创建Mac OSX开机自动后台运行程序
Linux 设置指南
本章教学部分是给那些对Linux系统不太了解的用户们准备的。在论坛上,有一个更进阶的教程。 这个教程在32位的Ubuntu 9.10操作系统上测试通过,不过也应该可以适用与其他基于Debian的操作系统。
下载
确保你有最新的服务器端程序。请前去官方下载页面下载。
安装Java
如果你的系统没有安装Java或者Java版本低于1.6,请你安装或更新你的Java。 我们推荐你去Sun公司官网上下载Java。有许多人反映安装有OpenJDK会造成影响,所以我们建议你在安装官方Java环境之前,移除OpenJDK。
Debian
确保非自由软件库正被apt扫描到。将non-free加入你的/etc/apt/sources.list文件。e.g:
deb http://ftp.uk.debian.org/debian/ squeeze main non-free
以root身份更新你的软件列表: apt-get update
然后简单地以root身份将以下命令输入终端并回车来安装Java:
apt-get install sun-java6-jre
Ubuntu
对于 Ubuntu 10.04 LTS及更高版本, sun-java6 安装包已经从Ubuntu的Multiverse中删除. 你需要手动添加一下代码:
- 对于 Ubuntu 10.04 LTS (Lucid Lynx):
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
- 对于 Ubuntu 10.10 (Maverick Meerkat):
sudo add-apt-repository "deb http://archive.canonical.com/ maverick partner"
- 对于 Ubuntu 11.04 (Natty Narwhal):
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:
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"
- 对于 Ubuntu 11.10 (Oneiric Ocelot):
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
- 對於 Ubuntu 12.10 (Quantal Quetzal):
注意:你可能需要安裝 software-properties-common 套件以執行 apt-add-repository 指令,用法如下:
sudo apt-get install software-properties-common
輸入下列指令以加入 PPA 軟體庫,並更新來源列表安裝 java:
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
安裝完成後,輸入下列指令並查看是否出現 java 版本號以確認是否安裝成功:
java -version
輸出結果類似於如下(以版本號 1.7.0 Update 10 為例):
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
更多安裝 Java7 於 Ubuntu 的資訊或問題排除,請參閱 webupd8s
openSUSE
Use zypper in java-1_6_0-sun
Arch Linux
打开一个终端并以root身份运行pacman -Syu openjdk6
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.
啟動Minecraft伺服器
打開命令列模式(terminal),從「所有程式」>「附屬應用程式」>「命令提示字元」。
輸入下列指令:
cd 'minecraft_server'
您可能需要重新更名 minecraft_server 改成您所解壓縮到的資料夾名稱
java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
當少於1GB可用的記憶體時
若您的RAM少於1024MB,下列的指令可能會導致虛擬記憶體不斷地交換分頁而最後記憶體用盡,這會使得遊戲更難以運行。
cd 'minecraft_server'
java-Xms1024M-Xmx1024M-jar minecraft_server.jar nogui
測量您目前所有可用的RAM:
free -m
It may look like this: File:ram left.png You are interested in the last number in the third line, 2163 in this case
free-m
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
if minecraft_server.exe is being used you use:
java -Xms1536M -Xmx1536M -jar minecraft_server.exe 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 automate the startup of the Minecraft server.
Server startup script
M3tal_Warrior Server 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.
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).
服务端网络设置
- 服务器需要开启防火墙相应端口(默认为25565)才能使服务端正常工作。
- 确认网络设置正确并使用在线工具如You Get Signal确定服务端在国际互联网的IP。测试端口应与服务端设置的端口一致(默认为25565), 测试时请启动服务端。
服务器有可能会遭到恶意攻击,在服务器投入使用以前,请务必做好物理保护及数据备份工作,否则有可能会带来经济及精神上的损失。
针对使用家庭路由器的服务器
- 如果服务器位于一个家庭路由器的局域网内,则需要在路由器设置相应的端口映射法则。
- 关于端口映射的具体设置,可以访问 portforward.com。从网站给出的列表中选择你使用的路由器型号,网站将给出设置端口映射的相应步骤(有广告,可跳过)。调制解调器、路由器等网络器材附带的说明文件也可能包括了设置端口映射的相关信息。
- 部分路由器提供了DMZ选项,与端口映射有同样效果,但遭到攻击的可能性相比使用端口映射更大(DMZ主机暴露在外网,不受路由器安全设置保护)。新手使用请咨询熟悉的业内人士。
针对使用动态IP的服务器
- 由于中国大陆大部分家庭用户(部分服务器代理的服务器也没有固定IP)使用ADSL或PPPoE等方式接入互联网,此种情况下的服务器无论通过路由器与否,IP地址是不定的。解决此问题可以使用动态DNS服务,届时玩家只需要知道服务器使用的域名即可连接到服务器。
- 请联系网络供应商(家庭用户)或服务器代理商确定正在使用的网络接入方式。
- 使用动态DNS需要进行以下准备工作:
使用动态DNS需要一定网络理论及实践的基础,新手在做出决定前,请先咨询熟悉的业内人士。
- 设置动态DNS请按照服务商的指示对服务器、路由器(仅限使用路由器的用户)进行设置。
- 路由器设置需要进入管理页面进行操作,新手请参照说明文档或在业内人士的指导下进行。
常见问题
1) 我连接时服务器返回这样的信息:
Connection lost
The server responded with an invalid server key
解决方法: 稍后再重新连接,如果重试多遍问题依旧,将服务器升级到至少1.0.1(1.0.1也称1.1)以上。
2) 我在Windows系统下双击了服务器启动的批处理文件,命令提示符窗口只闪现一下而服务器没有启动,应该怎么办?
解决方法:可能是javaw.exe的路径没有设置对。把批处理文件路径里的/jre7/换成/jre6/,确定运行环境在/Program Files/里还是在/Program Files (x86)/里,或者根据自己电脑的情况对路径进行相应调整。多说一句,运行服务端需要JRE运行环境,而不是浏览器里的java插件。
3) 提示“Failed to Bind to Port”错误。
解决方法: 可能是路由器端口映射设置有误,确认路由器为Minecraft开放的端口(默认为25565)正确地映射到你的服务器上。如果你的服务器是直接接入网络的且网络服务商不开放你所设置的端口,将 server.properties文件中的server-port=25565中的“25565”改为其他可用端口号。
最好避免使用1024以下的端口,这些是在IANA(互联网号码分配局)注册的,为重要服务预留的端口;另外因为安全原因,一些网络服务商还会屏蔽3306(MySQL服务器默认使用)端口等。除此之外,49152-65535段端口属于“动态端口”范围,没有被注册占用。如果不确定自己想用的端口是否被占用,参阅TCP及UDP端口列表。
4)我在Solaris/OpenSolaris下运行服务端时遇到了以下错误信息:
java.io.InterruptedIOException: Operation interrupted at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.jav解决方法:129) at java.net.SocketInputStream.read(SocketInputStream.jav解决方法:182) at java.io.FilterInputStream.read(FilterInputStream.jav解决方法: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
解决方法:只有Solaris系统在线程中断连接时会发生这种异常,这种异常可以通过改变启动命令来避免:
java -Xmx1024M -Xms32M -XX:-UseVMInterruptibleIO -XX:+UseConcMarkSweepGC \ -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts\ -jar minecraft.jar nogui
这样的命令让Java使用一种可中断的IO栈来防止异常发生。
5)我没法放置/破坏方块!!
解决方法: 离出生点远一些,除非你是服务器的Op,否则你不能在出生点附近放置或破坏方块。
Other Tutorials
Here are some other tutorials on how to set up a Minecraft server.
- Mac OS
- Linux
- Windows
- Others