Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

Template:Translation:未知参数。

警告 在依照本页面上的所有步骤架设服务器之前,请注意如果您不清楚您自己在做什么而运行服务端软件,将会导致您的系统出现错误甚至出现崩溃。[1]

在这个教程中,我们将通过手把手的方式,一步步地帮助您建立属于你自己的Minecraft服务器。在该教程中,我们使用Mojang发布的供玩家免费下载的服务器端程序,该程序在大部分操作系统(比如Windows,Mac OS以及Linux等)上都可以运行。

首先,你可以根据你所使用的操作系统,前往官方的下载页面(或繁体中文下载页面),下载所需的Minecraft服务器端程序。我们建议你新建一个文件夹用于保存服务器端文件。(下载后请确认下载的服务器端文件是否是 minecraft_server.jar 或者 minecraft_server.exe,因为有时你的浏览器会将可执行文件重命名。)

注意:网上也有许多Minecraft的第三方服务器端程序,不过它们都是不受Mojang技术支持的。——这类服务器可能有更好的性能和一些额外功能。此类服务器的搭建建议另外寻找文档。

注意事项

鉴于您正在一步步地开启您自己的服务器,您应该要注意所有可能出现的危险性。虽然我们并不能阻止其他人运行服务器而导致产生各种针对系统的危害,但我们至少可以呼吁各位:如果您不知道您自己在做什么,请不要根据下面的教程架设服务器。运行下面的所有教程(应该)不会导致您的系统出错,但是与此同时我们并不知道您的系统配置与软件运行情况。我们并不能保证您的系统不会出现问题。为了确保您根据下面的教程架设服务器而不会出现问题,我们强烈推荐您至少知道以下的内容:

  • 基本的网络搭建术语(IP、DHCP、网络端口等)
  • 您的系统配置
  • 您的网络构成环境
  • (如果您有路由器或交换机等)您的路由器配置

当然,如果您并不希望自己搭建服务器,我们欢迎您加入其他服务器,其他服务器列表可以在这里找到。

快速配置

该自然段是对本文内容的简要概括。如果您有阅读困难,或者需要对于您的平台的特殊指导,请阅读余下的段落。

  1. 在终端或命令提示符输入java -version,检查是否安装了java 且版本至少1.6。
  2. 若未安装,前往java.com下载,或者是用自带的包管理器搜索安装。您也可以将PATH变量做以下调整,如果您有java程序的话:
    • Windows用户在bat文件中在程序运行前进行set "PATH=<java目录>;%PATH%"
    • Linux/Mac/*nix用户使用 PATH=<java目录>:$PATH
  3. 在服务器文件目录下新建一个.bat文件。Mac/Linux用户使用.sh。
  4. 内容:java <需要的额外java参数> -Xmx<最大内存> -Xms<最小内存> -jar "<文件名>" <需要的服务器参数,如nogui>不过也可以cd进入服务器文件目录直接这样做,不制作脚本文件。
  5. 运行脚本文件。Windows直接双击,Linux/Mac/*nix 建议chmod +x <文件名> && sh <文件名>
  6. 启动成功,第一次启动会进行地图生成。有关配置按server.properties文件的定义操作。

Windows 操作指导

需求:确认你的操作系统安装了最新版本的Java环境

  1. 确保你安装了Java 8。除非Sun公司官方发布,否则不要安装Java 9,除非你想做软件调试。为了检查当前的Java环境,我们可以打开一个命令提示符(CMD)窗口。
    • Windows Vista/7 系统下,点「开始菜单」,在搜索框中输入 cmd,回车。
    • Windows XP 系统下,点「开始菜单」-> 「运行」,然后输入 cmd 并回车。你也可以使用「运行」的快捷键:Windows键 + R。
    • 在命令提示符窗口,输入命令java -version并回车。
    • 窗口中应该会显示当前你的电脑的Java版本,应该为 "Java version 1.8"。
  2. 如果你得到了无效的命令错误提示, "'Java' 不是内部或外部命令,也不是可运行的程序或批处理文件",那么你的电脑上运行的可能是早期Java版本(比1.6早)或者根本就没有Java环境。
    • 可以到此处下载最新版本的Java,并选择32位系统或64位系统。
    • 在你安装了最新版的Java之后,你可以尝试在命令提示符窗口再次输入java -version并回车。
      如果你依旧得到错误提示,请尝试以下步骤,将Java添加到你的系统环境变量中去。
      1. 右键点击「此电脑/计算机」。
      2. 点「属性」。
      3. 点「高级系统设置」。
      4. 点「环境变量」。
      5. 在「系统变量下」,选中「Path」变量。
      6. 点编辑,在内容的结尾处加上;"c:\Program Files\Java\jre1.8.x_xxx\bin"。如果你在64位系统上使用32位Java,则使用;"c:\Program Files (x86)\Java\jre1.8.x_xxx\bin"
      7. 重启电脑。
      8. 再次打开命令提示符输入java -version并回车,验证。

启动Minecraft服务器端程序 (.exe 版)

  1. 双击「Minecraft_Server.exe」文件。服务器程序将会以默认配置启动。
    • 第一次启动时,会显示一些「file not found」(文件无法找到)的错误提示。这是正常的,这些文件正在创建当中。
    • 第一次启动之后,我们可以开始配置服务器文件了。首先将打开的服务器程序关闭:在命令窗口里输入stop。之后我们开始按照下面的指导进行服务器配置。

增加Minecraft服务器端程序所占用的内存

如果你想让你的服务器端程序占用更多的内存,你就需要创建一个批处理文件。没关系,这比听起来容易。

  1. 打开「记事本」,新建一个文本文件。
  2. 确认下你的Windows系统是32位的还是64位的,可以在控制面板里面查看。并且确认下你的Java版本是32位的还是64位的。
  3. 根据你的系统以及Java版本……
    1. 如果Windows系统是32位的或者是64位且安装的是64位的Java,复制下面的内容到你的文本文件中(只占一行。如果使用Java 6,请根据命令中的目录):
      "C:\Program Files\Java\jre1.8.x_xxx\bin\javaw.exe" -Xmx2048M -Xms2048M -jar "Minecraft_Server.exe"
    2. 如果你因为一些奇怪的原因,正在64位系统上运行32位的Java,升级你的Java。并且,如果你把Java装载其他目录里了,或者你重命名了Minecaft服务器程序文件,见下:
    3. 如果你在64位系统上有32位的Java,Java.com会通过浏览器判别你的版本,对于一些32位的浏览器,会推荐给你下载32位的Java。在这样情况下,为确保万无一失,请把32位和64位的Java都下载并安装了吧。
    • 文本文件这一行到底是什么意思呢? 这条可执行命令("C:\Program Files\Java\jre1.8.x_xxx\bin\javaw.exe"))是一个文件地址,指向你系统最新的javaw.exe。如果你把Java安装在了其他地址下,你就需要找到那个地址,复制粘贴过来,替换到上面这个错误地址。 下一部分(-Xmx2048M -Xms2048M)表示你分配的内存大小。以MB(MegaBytes,兆)计算。默认情况下,你服务器只会使用100MB内存,这对于Minecraft服务器来说太小了。大部分用户会分配给服务器程序1024MB(也就是1GB),或者2048MB(2GB)也是一般推荐的。 下一个,参数-jar,是用来表示Minecraft_Server.exe是Java架构程序的。
    • 在这条可执行命令的最后是我们的.exe文件的名字(Minecraft_Server.exe)。一般来说,名字是Minecraft_Server.exe. 大小写不区分,不一样没关系,如果你的.exe文件已经改名,就把这条命令里的文件名也改成你相应的名字。最后,点 文件->另存为...,将文件取名为run.bat,并且确保在窗口的文件类型那,选中为所有文件(*.*)。 然后保存到和你服务器端程序所在相同的目录下。双击刚建立的run.bat文件。如果一切都按照正确步骤坐下来,你就会注意到现在你的服务器程序申请到更多的内存了!

如果Windows没有识别出文件类型(你可能会被提示选择用什么程序来打开),这也许是因为Minecraft_Server缺少了.exe文件名后缀。我们可以通过重命名Minecraft_Server为Minecraft_Server.exe来修正这个问题。如果问题解决,程序的图标就会变成Minecraft的图标(方块)。 如果还是没解决,你需要打开命令提示符窗口,点「运行」,输入cmd回车。然后你需要将命令提示符窗口当前地址定位到你创建的文件夹地址去。

按照以下步骤来:

  1. 确保你在正确的盘符(一般是C盘)。输入 C: 然后回车来进入C盘。
  2. 现在你需要打开你的目录。输入 cd \"folder name" 然后回车,要包含引号部分。
  3. 确认你在正确的目录下了,输入 dir 然后回车你会看到你当前所在目录下的所有文件和目录。如果正确的话,你应该可以看到minecraft_server在其中。
  4. 重命名Minecraft。输入 rename minecraft_server minecraft_server.exe 然后回车,这么做会将.exe后缀添加到文件名上,使文件变成可执行文件。之后就应该可以正确的打开运行了。

启动Minecraft服务器端程序 (.jar 版)

  1. 如果你用的是.jar版的服务器端程序,你需要在环境变量中添加正确的Java地址。要完成这一操作,请回到前面的「确认你的操作系统安装了最新版本的Java环境」指导章节。
  2. 要在Windows上运行jar版本的Minecraft服务器端程序,先用「记事本」新建一个文本文件,然后粘帖以下内容进去:
  3. java -Xms512M -Xmx1024M -jar minecraft_server.jar
  4. 保存为 startserver.bat,放在与minecraft_server.jar相同的目录下。 .bat文件是批处理文件。
  5. 双击 startserver.bat,服务器就开始运行了。

在不改动环境变量的情况下,启动jar格式服务器端程序

要在不改动你系统环境变量的情况下启动jar格式服务器端程序,你需要在你的start.bat批处理文件中添加java路径。因为不需要改动系统变量,所以这个方法比之前的要方便并且安全。

  1. 首先用「记事本」打开你之前建立的批处理文件start.bat(或者别的什么名字)
  2. 在首行,加入
    @echo off
    ,这行命令使得「命令提示符」窗口隐藏,不会在你启动批处理文件时跳出来。
  3. 第二行,确保你的系统上可以找到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)"。
  4. 最后,确保最后一行是服务器启动命令:
    java -Xms512M -Xmx1024M -jar minecraft_server.jar
  5. 如果你不想使用图形界面(GUI),只需要在这行结尾加上 nogui。也就是:
    java -Xms512M -Xmx1024M -jar minecraft_server.jar nogui

Mac OS X 设置指南

在Mac OSX上设置Minecraft服务器,相比Windows上要"更复杂",原因是官方并没提供简单的Mac OSX支持的应用程序。我们在此提供了一个完整的视频教程。须知服务器端在OSX 10.4 Tiger 上无法正确运行并且可能使电脑崩溃。

下载

确保你有最新的服务器端应用软件。服务器端软件可以到这里下载。在页面上的“Multiple Server”下面找到“Minecraft_Server.X.X.X.jar”(X.X.X为服务器端版本号。)并下载。

安装Java环境

Mac OS X系统本身已经包含了Java 1.6,如果没有Java,可以运行Minecraft程序,就会提示是否安装Java 1.6。 (注意,运行服务器不需要使用Java 1.7或更高。除非必要,否则不需要下载Java 1.7)

架设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前请更改eula.txt 里头的 false 改成true。
  • 双击start.command来运行服务器端程序。
  • 一个新的终端窗口会打开,但你第一次运行该脚本时,会出现很多错误信息,提示你一些文件(files/directories)无法找到。这是正常的。现在你可以开始配置你的服务器了。

作为后台进程运行

你也可以让服务器程序在系统开机后自动后台运行。

OS X

OS X 的 launchd-launchctl 机制负责在系统启动时打开服务。教程/创建 OS X 启动程序 Create_a_Mac_OS_X_startup_daemon

Linux

大多数 Linux 发行版都兼容 sysvinit 的 /etc/init.d 控制方式。首先 sudo su 切换为 root,cd /etc/init.d 进入目录,然后 cp skeleton mcserver 复制模板文件,再用文本编辑器按内有的注释编辑即可。

init.d 脚本片段中主要要修改的是头部的 INIT INFO。

### BEGIN INIT INFO
# Provides: mcserver
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: MC Server
# Description:       A minecraft server
#                    
### END INIT INFO
# …
DESC='A mc 1.7.2 server'
NAME=mcserver
DAEMON= # 此處加啓動腳本路徑
DAEMON_ARGS # 如果有參數的話這裏寫
# …
# 用戶設置—實際上使用 root 十分危險,建議使用一個一般用戶身份的帳號。
: ${USER:="root"}
: ${GROUP:="root"}

接下來的操作各發行版稍有不同,可以參閱 update-rc.d 等命令的使用方式。

Windows

將啓動 bat 腳本複製一份到啓動文件夾即可。

Linux 设置指南

本章教学部分是给那些对Linux系统不太了解的用户们准备的。在论坛上,有一个更进阶的教程。 这个教程在32位的Ubuntu 9.10操作系统上测试通过,不过也应该可以适用与其他基于Debian的操作系统。

下载

确保你有最新的服务器端程序。请前去官方下载页面下载。

安装Java

如果你的系统没有安装Java或者Java版本低于1.6,请你安装或更新你的Java。 我们推荐你去Sun公司官网上下载Java。有许多人反映安装有OpenJDK会造成影响,所以我们建议你在安装官方Java环境之前,移除OpenJDK。

然而,编译安装的OpenJDK常常性能更高(对于-Os -march=native -mtune=native来说,一些情况下不用编译安装性能也可能更高……),尽管OpenJDK不被Mojang技术支持。因此我们推荐在openjdk工作正常时不去额外安装Sun Java。

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):

如果是这种情况,则需要通过运行以下命令来添加python属性:
sudo apt-get install python-software-properties
然后您可以继续添加源:
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu natty partner"

  • 对于 Ubuntu 11.10 (Oneiric Ocelot):

sudo add-apt-repository ppa:ferramroberto/java

  • 然后安装所有文件包:

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是否正确安装:
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

其他发行版

作为另一种选择,你可以直接访问Java主页下载Linux的Java包。许多发行版可以使用这种方式(32位、64位都适用)。在网页中,有这些包的安装指南。

如果在安装过程中提示需要密码,请输入你的密码。如果出现“是否确认?”,按“确定”,如果需要的话再按下回车。Java就装好了。

启动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 它看起来可能像这样: File:ram left.png 在此情况下,你所感兴趣的是第三行的最后一个数字,2163 free-m

为了安全,请扣除部分内存数。

在这台电脑上,服务器至多将使用1536 MB的内存。

现在,用计算所得的数字替换上面例子中的1024: java -Xms1536M -Xmx1536M -jar minecraft_server.jar nogui 如果正在使用minecraft_server.exe,请输入: java -Xms1536M -Xmx1536M -jar minecraft_server.exe nogui 瞧,它现在应该运行得流畅些了!

小贴士: 倘若你想要保留更多的内存,你可以把 -Xms 参数设得更低一些,例如: java -Xms32M -Xmx512M -jar minecraft_server.jar nogui 该参数控制了在启动时有多少内存空间被保留。

你的服务器将以32MB大小的内存启动,当它需要更多内存空间时,将得到这些空间直到触及512 MB的上限。

然而,当空间划分进行时,可能会导致一点卡顿。

启动与维护脚本

事实上,你可以使Minecraft服务器的启动自动化。

Server startup script

M3tal_Warrior Server Startup Script

配置并连接

现在,是时候 configure and connect.

配置Minecraft服务器

  1. 通过修改 server.properties 文件来配置Minecraft服务器, 这个文件的格式解释在 这里. 确保你在编辑的时候使用的文本编辑器不会添加各种格式 (比如,斜体). 额外的配置并不是很有必要,因为大多数的服务器使用默认配置就能很好的运行
  2. 将您的用户名加入到 admin.txt 和/或 ops.txt 文件中(新版本的Minecraft中可能没有 admin.txt 文件).
    • Ops.txt 和admin.txt 决定了谁可以执行 服务器命令. 换句话说, 管理员("op") 权限允许你控制游戏的某些方面 (例如, 传送玩家).
    • Op 权限也可以通过服务器图形界面给予: 输入"op <username>" 后 <username> 就会自动被添加到 ops.txt 中.

连接到Minecraft服务器

  • 如果你是在作为服务端的电脑上玩Minecraft,先选择“多人游戏”,输入“localhost”或者是“127.0.0.1”,而不是你的IP地址。
    • 这是不推荐的。除非你有一个性能良好,内存大于4GB的电脑。(50%给服务器,10%给客户端,其余的给系统)
  • 在你的局域网内的玩家可以通过内网ip来连接到你的服务器. (因为玩家在局域网内,所以你不需要接口转发)
  • 从Internet链接的玩家 (也就是,不在你的局域网中的玩家) 必须使用你的外部ip来链接. 你必须为这些从外部链接的玩家使用端口转发。

IP 地址注释

  • 除非你为正在做服务器的电脑设定一个静态ip, 否则的话,内部ip地址是有可能改变的. 这会影响到接口转发规则并使得它们失效。 不同的路由器有不同的设置静态ip的方法。你可以从你的设备的说明书或者在线文档中获得更多的帮助。
  • 如果你有连接到你外部IP的玩家, 你应该明白如果你没有从你的Internet服务商处获得一个静态IP,那么你的外部IP是会变化的. 你可以使用类似MyWANIP的工具来定时的检查你的外部IP。 你也可以在谷歌中搜索“my ip address”来显示你的外部IP(译者注:百度搜索“IP地址”更加方便,或者只是简单的搜索“ip”更好)。此外,你可以尝试使用DNS服务,这会允许你使用一个固定的域名,而不是动态的IP地址。不管你的外部IP地址是否改变,这个域名会指向你当前的外部IP地址(即,当你的外部IP改变时,DNS会自动更新) 。

服务端网络设置

  • 服务器需要开启防火墙相应端口(默认为25565)才能使服务端正常工作。
  • 确认网络设置正确并使用在线工具如You Get Signal确定服务端在国际互联网的IP。测试端口应与服务端设置的端口一致(默认为25565), 测试时请启动服务端

服务器有可能会遭到恶意攻击,在服务器投入使用以前,请务必做好物理保护及数据备份工作,否则有可能会带来经济及精神上的损失。

针对使用家庭路由器的服务器

  • 如果服务器位于一个家庭路由器的局域网内,则需要在路由器设置相应的端口映射法则。
  • 关于端口映射的具体设置,可以访问 portforward.com。从网站给出的列表中选择你使用的路由器型号,网站将给出设置端口映射的相应步骤(有广告,可跳过)。调制解调器、路由器等网络器材附带的说明文件也可能包括了设置端口映射的相关信息。
    • 部分路由器提供了DMZ选项,与端口映射有同样效果,但遭到攻击的可能性相比使用端口映射更大(DMZ主机暴露在外网,不受路由器安全设置保护)。新手使用请咨询熟悉的业内人士
    • 一般来说可以首先尝试使用 UPnP 进行端口映射,大部分路由器都支持并默认开启该功能。可以使用诸如 miniupnpc 软件包的 upnpc 命令一类的程序进行映射。

针对使用动态IP的服务器

  • 由于中国大陆大部分家庭用户(部分服务器代理的服务器也没有固定IP)使用ADSL或PPPoE等方式接入互联网,此种情况下的服务器无论通过路由器与否,IP地址是不定的。解决此问题可以使用动态DNS服务,届时玩家只需要知道服务器使用的域名即可连接到服务器。
  • 请联系网络供应商(家庭用户)或服务器代理商确定正在使用的网络接入方式。
  • 使用动态DNS需要进行以下准备工作:
    • 获得一个域名,可以从dot.tkOray等网站获得免费域名,也可以支付一定费用注册;
    • 选择一个动态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端口列表

此类问题亦有可能是操作者疏忽导致服务端未关闭就再次开启了服务端,典型的错误操作有:Windows中直接双击了核心Jar,Linux中使用守护进程运行Java等,导致服务端在后台运行而操作者为注意的情况。遇到此类问题可先检查占用该端口的进程,获取控制或将其结束,再启动服务端。


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,否则你不能在出生点附近放置或破坏方块。

性能优化

对于各类JDK(Oracle或Open)用户,使用JDK的一些参数进行优化是可行的。以下参数在一定程度上优化了GC内存操作且利用了一些CPU命令集。

java -server -XX:-UseVMInterruptibleIO -XX:NewRatio=3 -XX:+UseStringCache -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=(CPU数量,UNIX-LIKE/Linux/*nix可使用$CPU_COUNT) -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:+UseAdaptiveSizePolicy -XX:+DisableExplicitGC -Xnoclassgc -oss4M -ss4M -XX:CMSInitiatingOccupancyFraction=60 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=1 -XX:SoftRefLRUPolicyMSPerMB=2048 -XX:UseSSE=(0/1/2/3/4,视CPU定)-XX:UseAVX=(0/1/2,视CPU定) -Xms1G -Xm视情况 -jar <jar文件>

以上参数的部分设置可以自行修改。

其他教程

这里有些别的设置Minecraft服务器的教程

参考链接

Advertisement