我的世界开服文档
零、检查自己电脑和网络性能
首先要避免的自然是白折腾了半天结果发现电脑性能不够。故第零步。 1. 确认您的CPU和系统都是64位。 查看方法很简单,右键计算机,单击属性就能看到了: 尽管不是说32位的系统就不能开服,但是在可用内存和系统性能方面就会被极大地限制。换句话说,一般32位系统玩MC都卡,想开服还是洗洗睡吧。 2. 确保您的电脑至少有4G的RAM,建议6G或以上。 还是上面的这幅图: 这里可以看到我自己的电脑安装了32G内存,完全足够了。 3. 确保您的CPU运算能力足够 推荐以下网站进行一次跑分,单击"Benchmark"键开始即可。跑出>5000分可开20人服;>15000分可开50人服。 https://silver.urih.com/ 注:以上方法仅供简略参考,CPU性能的制约因素很多很复杂,单个跑分可能不反映实际情况。 通常来说,开单个大服务器重主频,开多个小服务器重核心数。相同架构的CPU中,主频越高,越适合开少量大型服,核心越多,越适合开大量小型服。 4. 检查宽带是否足够 首先请打开浏览器进入 speedtest.net 进行测速。网页打开速度可能较慢,耐心等一下就好。至于界面那真的已经很傻瓜了,希望不用我教。 比如我这是典型的电信100M家用宽带,下载100Mbps(12.5MBps),上传5Mbps(625KBps),关于MBps和Mbps的区别请自行百度。由于家用网络重下载,所以上传被砍的特别厉害,而服务器却要求高上传,这也是家用网络开服的硬伤。 保守估计,一个玩家平均需要12KBps的上传宽带,这也就意味着我的网络理论最多能支持50人同时在线。然而12KBps只是平均值,只有当任何峰值都无法挤满宽带时玩家才能感觉没有卡顿,且还要考虑家中其他设备抢占带宽的情况。所以保守估计,如果要求没有卡顿,我的网络应该只能支持20人。 当然,实验出真知,各位只有自己试了以后才能对自己的网络性能有确切的了解。 |
一、了解内外网的区别。
如果这不是您看的第一篇开服教程,您一定听说过什么内网外网......但是鉴于有些人可能听不懂,所以这里讲解一下。 外网是指电脑直接连接网络提供商服务器。 内网是指电脑连接路由器,而路由器连接网络提供商的服务器。 为了方便理解,我做了一张图。 好了,我相信您一定听说过什么开服一定要外网的说法。是的,开服的确需要外网,原因我用笼统的语言解释一下: 路由器就相当于一层防火墙,会禁止外部的主动数据传入,而服务器有需要接受外部数据,所以必须使用外网。 现在您一定要问了,那既然这样为什么我们内网还能访问网页呢?原因就是: 访问网页等我们的日常行为都是外部被动传入数据,也就是说传入的都是您要求传入的数据,所以访问网页没有问题;而服务器需要接受外部主动要求传入的数据,所以需要外网。 那您可能又要问了,既然外网“功能更多”为何还有“内网”存在呢? 不尽然,内网的好处其实也很多,应用范围也比外网要广得多。 比如,在同一个办公室内,不同的电脑经常需要互相传输数据,而在局域网(和内网是一个意思)的环境下,数据可以直接通过路由器到达目标电脑,这可比绕ISP的服务器一圈快多了。而且,大多数的路由器都拥有一层防火墙,相当于给了内网电脑一层额外的保护,免受很多蓄意攻击。 相比之下,除了服务器应用以外,外网的网络环境几乎没有什么其他的好处。并且考虑到广域网IPv4地址由于不能满足世界上所有设备的需求而资源捉襟见肘,鼓励/强迫家庭用户使用内网也成为了服务商没办法的办法。 好了,偏题了,立刻进入下一章节。 |
二、了解自己的网络情况
首先:强烈建议使用有线网络开服!!!否则可能导致服务器不稳定!! 想必大多数朋友都用的是Windows电脑,所以这里只讲Windows,用其他系统的可以自行寻找相应的教程,很多的步骤都大同小异。 既然开服需要外网,那么该怎么判断自己是不是外网呢?Windows自带有这个功能可以帮助您判断。 1.按Windows+R打开运行 2.输入cmd,按回车,得到这个窗口 3.输入ipconfig,按回车,得到这些结果 4.可以看到我这里真正使用的网络是最后一项,因为其他的都已经断开。确实也有同时连接了多个网络的情况,因为有些软件会添加自定义链接,这种情况下通常只要看看这一项的标题里有没有出现“隧道适配器” “Pseudo” “Virtual” “Tunneling” “VM” “Hamachi”等关键词即可,如有这些关键词即可判断为不是真正的互联网连接,而真正的互联网连接通常有“本地连接” “以太网” “WLAN”等字样,同时ip地址通常由192.168打头。找到真的连接项,看那一项里的“IPv4 地址”,我这里是192.168.1.4。 5.如果您的地址和我一样,是192.168.开头,或者是10.开头,那么就肯定是内网,但是没有关系,照样可以开服;如果您的地址不是192.168或者10.开头,那很可能是外网。总之,请继续往下看。这个窗口也不要现在就关闭,之后还要用到。 |
三、下载、运行服务端
顾名思义,把服务端下载下来运行就可以了 有多种服务端可以选择,接下来简要介绍+提供下载:(个人推荐使用迅雷下载以下的文件,p2p加速真的很有用) (此贴的服务端更新可能不是很及时,请优先参考 新闻资讯版新帖 ) Official 官方服务端1.6.4;1.7.4;1.7.10;1.8.9;1.9.4;1.10.2;需要快照服务端的请关注 新闻资讯版 中的快照发布帖 最方便,不支持插件,不支持mod,稳定性最高 运行方式:双击exe即可运行 P.S. 有兴趣使用官方jar的用户可以从这里获取,但若您是初次开服个人建议使用exe 1.6.4;1.7.4;1.7.10;1.8.9;1.9.4;1.10.2 由于亚马逊服务器国内连接较慢,以上链接均建议使用迅雷下载 Craftbukkit 插件服务端<——点击这里下载 由于 DMCA Takedown Request ,Craftbukkit已经暂停了下载,各位可以在 软件资源版 自行寻找镜像 稍微复杂,支持插件,不支持mod,稳定性其次 运行方式:自己制作一下bat文件,感谢 +倒霉の忍者+ 在 这里 提供的教程,这里稍作修改,复制一下。 这里补充一下,代码的第二行中 “-Xms1g”是指最低内存1G,“-Xmx1g”是指最高内存1G,自己可以根据情况更改,建议设置相同的值。小型服务器一般可以用以下公式来计算需要多少内存。 比如如果最高需要10个玩家在线可以这样:512MB+10*64MB=1152MB。可以把代码改为“java -Xincgc -Xms1152m -Xmx1152m -jar <......>.jar”。 这个计算方法仅供参考,纯属经验,没有实际依据,请勿刻板套用!! 同时,分配内存时请务必注意以下两点:
Spigot 插件服务端,Craftbukkit优化版<——点击这里下载 稍微复杂,支持插件,不支持mod,相对于Craftbukkit拥有许多性能优化(以及原生支持防X-ray哦),稳定性比CraftBukkit略好 运行方法:和Craftbukkit运行方法相同。 Cauldron 插件mod服务端(旧名 MCPC+)<——点击这里下载 最复杂,支持插件,支持mod,也是由于mod的原因,稳定性最低 运行方法:和Craftbukkit运行方法相同。 下载后,请切记将服务端运行一次,会生成一堆文件,等到服务端完全加载完成时候再关闭服务端!这一步是必须步骤,如果不做,其他的很多步骤(特别是针对内网)将无法操作! 感谢 @etflly 提出,使用官方 1.8+ 版本服务端开服的请注意:首次运行服务端后,需要关闭服务端,把eula.txt文件里的“eula=false”改成“eula=true”,然后再次运行服务端,等待全部加载完成后再关闭。 操作到这一步,内网和外网开始有所不同了! 如果内网请从第四步开始继续阅读,如果是外网请直接跳到第八步! |
四、检查网络硬件
这步很简单,我们主要需要确认的是您和网络提供商服务器中间是不是只有一层Modem有些地方可能会出现“电脑---路由器*n---Modem---网络供应商服务器”的情况。 请您查看一下您的电脑的网线是否直接接上了标有“Modem”/“猫”/“光猫”等的设备。 如果连接到的是别的设备,请找到您的Modem,将您的电脑和Modem用网线直接连接,注意要连接Modem的Lan接口,千万不要接错到Wan接口上了。 科普一下,WAN=WideAreaNetwork=广域网,LAN=LocalAreaNetwork=局域网,记住了这点,在检查modem连接的时候就方便多了。 P.S. 由于很多家庭的网络都是 modem 接 路由器 接 电脑 的情况,而且这种情况实在太普遍了,所以这里做一下详解: 这种情况下有三种方法,以下按推荐程度排序: |
五、获取Modem超级用户密码
大多数的网络提供商为了防止用户乱动Modem设置导致不能上网,都会限制用户可以使用的功能。而端口映射,一个非常重要的功能,就通常在限制行列中。内网开服必须使用端口映射,所以需要获取Modem的超级用户密码,开启端口映射。当然,也存在Modem并不限制端口映射功能的情况,这时直接操作[六]即可。 没有超级用户会怎样呢? 先行警告!获得管理员账户后千万不要自作主张盲目乱动其他设置!再说一遍,不要乱动! 从ISP合同、法律层面来说,服务商是有义务给您提供管理员账户密码的。但是由于人类实在手贱,喜欢不懂自己在做什么就乱搞,故服务商通常不会很情愿给您。但这也不妨碍您去跟您的网络维护人员浑水摸鱼——您电话上缠着他唠个十分钟,对面通常就给了。如果您不知道家里绑定的维修人员电话,可以拨10000(电信)/10010(联通)/10086(移动)去问。 直接问ISP要账户密码当然是最好的方法,但如果您对于搅这趟浑水不感兴趣,或是因为其他原因实在无法要到账号密码,也可以尝试自行破解。 由于Modem不尽相同,所以我就给一个普适性的破解密码思路: 1.通过一个特定地址(如果您使用F420请点击这里,如果是其他modem请自行度娘)获取Modem的备份信息 2.解压、解密这个文件(可以使用offzip软件,这里下载) 3.用记事本打开,用查找功能寻找超级账户用户名 4.找到紧跟着后面的密码。 您自己的Modem具体怎么破请自行搜索“<设备型号>+破解”。由于不同的设备型号实在太多了,我不可能一一含括,故请自行寻找教程。 |
六、设置端口映射
端口映射是什么呢?端口映射就相当于把您的电脑的一个端口当做外网处理。这样,既然服务器端口变成了“外网”自然就可以开服了。 好吧,我做个图解: 没有端口映射的时候您是这个情况:可以看到Modem阻碍了服务端电脑所有的数据传入 而做了端口映射以后您是这个情况:服务器数据传入的线路被打通了 端口映射在您的Modem里面可能以各种名字、在各种位置出现,比如我这里就是这样的: 还是一样,您的路由器中端口映射设置的具体位置自己问度娘。 好了,如果您找到了这个界面,那就容易了。首先,回到第二部的那个cmd窗口: 可以看到我这里的IPv4地址是192.168.1.4。 找到您自己的,并且按照下面这张图填入。 其中,广域网端口可以填写10000~65000的任意数字,随便找一个您喜欢的数字就可以了,不冲突即可(建议填写25565) 虚拟主机端口要填写Minecraft服务器设置的端口,默认是25565,除非冲突,否则强烈不建议修改。如果您实在想改,请找到server.properties,把“server-port=”后面的数字改成您喜欢的数字,同样可以填写10000-65000的任何数字;如果找不到server.properties文件,那说明您没有成功运行过服务端,请返回第三部。 虚拟主机IP地址要填写您自己的IPv4地址(比如我就填192.168.1.4)。 如果您的端口映射界面没有“广域网端口”这一项也不要担心,这时您的内网端口就是您的广域网端口。 接下来添加这条规则就可以了 PS 如果您的modem、路由器支持MAC映射,那您也可以考虑使用,效果和普通的内网ip端口映射相同。使用了MAC映射的人请直接跳过[七]。 |
七、为主机开启静态地址,手动跳过DHCP
为什么要这么做呢?首先要了解一下DHCP是什么。DHCP服务是什么呢?所有连接到Modem的电脑都需要一个内网IP地址,而DHCP服务的目的就是自动分配这个地址。 那为什么要跳过呢? 原因很简单,因为如果使用DHCP自动分配IP地址,可能会导致自己的内网IP变动,使端口映射设置失效。所以我们要手动给电脑分配静态内网IP地址。 首先我们要获取开服电脑网卡的唯一识别码,也就是MAC地址,等一会儿会用到。 1.首先回到cmd 2.输入“ipconfig /all”查看全部设置 3. 找到您正在使用的网络中,“物理地址”这一栏,这就是您的MAC地址,我这里是“B8-88-E3-nn-nn-nn” 好了,记下这一串字符,然后打开刚才的Modem超级用户界面,找到“静态地址管理”一栏,同样的,因为modem不同,具体位置自己问度娘。比如,我的在这里: 可以看到我已经给自己设置好了静态地址,您可以按照下图输入: 其中IP地址是您上一部中获取的内网IP,MAC地址是您刚刚获取的“物理地址”。 接下来点击添加,静态网络就算设置完毕了。DHCP在自动分配地址前都会先到静态网络设置列表里查找匹配项,所以DHCP对您的电脑不会启用(网络依然可以正常使用)。以后您无论什么时候将电脑连接上Modem内网IP都应该是一样的,端口映射就没有问题了。 |
八、最后步骤
现在一切已经准备就绪,但是还需要最后几部: 1.找到自己的外部IP地址。 这一步很简单,只需要到百度里搜索“ip”就能看到了。 2.(重要)允许盗版登陆 用记事本打开server.properties,寻找到里面的“online-mode=”这一栏。 后面默认是true,如果需要允许盗版登陆请改为false,如果仅对正版开放不建议修改。 |
九、进入服务器
即使开服成功了,进入服务器的方法也分网络环境不同而不同。 以下内容中 xxxxx=server.properties中设置的端口=虚拟主机端口 yyyyy=modem中设置的广域网端口 当然,如果您的广域网端口、虚拟主机端口、server.properties里的端口值都相同,自然用的是同一个数(xxxxx=yyyyy)。 1.如果您的服务端和客户端在同一台电脑上: 在多人游戏里输入“localhost:xxxxx”即可。如果“localhost:xxxxx”无效,请尝试“127.0.0.1:xxxxx”。 2.如果您的服务端电脑和客户端电脑在同一个局域网中: 在多人游戏中输入“<服务端的局域网ip地址>:xxxxx”即可。比如如果有一台电脑和我开服的电脑在同一个局域网中,客户端里输入“192.168.1.4:xxxxx”即可。 3.如果您的服务端电脑和客户端电脑不在同一个局域网中: 在多人游戏里输入“<服务端的外部ip地址>:yyyyy”即可。而如果您的服务端电脑直接连接外网,只需要输入“<服务端的外部ip地址>:xxxxx”即可。比如说我内网开服,外部ip为101.86.nnn.nnn,server.properties和虚拟服务器端口里设置的是25565,广域网端口设置的是30000,那么别人想联机就要输入101.86.nnn.nnn:30000。 注意!连接ip的符号是英文标点:而不是中文标点:!错误输入标点将不能进入服务器! |
十、常见问题
运行后提示“java不是内部或外部命令 也不是可运行的程序”怎么办?在?为什么不装Java?只有我自己进得了服务器,是什么情况???端口映射设置不正确,请仔细检查;也有可能是[9]的原因。运行后自动闪退,咋办???可能是[1]的问题,如果不是,则请检查自行制作的bat文件,如果仍没有问题则请更换服务端。我的外部ip会变吗?怎么才能让我的外部ip不变?绝大多数的家庭网络使用的都是动态ip,也就是说,modem一旦重启,您的外部ip就会发生变动。但是绝大多数情况下,只要不重启modem,外部ip都是不会变动的。想要永久固定外部ip?建议早点洗洗睡觉,梦里什么都有。国内ISP根本就不为家庭用户提供这个服务。服务器无论怎样也只能进入一个玩家,第二个玩家不能加入,server.properties中的max-players也没问题,怎么办?这也是我遇到的比较棘手的问题之一了,请先尝试更换服务端、重装java,如果仍然不行那还请去问答版发帖提问。我设置好端口映射之后试图用<外网ip>:<外网端口>的方式访问服务器,为何无法连接?同一台电脑/处在同一局域网中的电脑通常是不能用上述方法访问服务器的,也就是说,这个ip仅适用于外网的其他玩家,如果您想要测试映射成功与否也需要另一玩家的合作。内网访问服务器使用的ip请参考[九]。我用了蛤蟆吃/花生壳,请问XXXXXXXXX里的XXXXXXXXXXXXXX该怎么设置啊?对不起,这些软件我不会用,这类问题请别问我。我的modem/路由器型号是XXXXX,请问XXXXXXXXXX步怎么设置啊?问百度。我全部都检查过了为什么别人还是进不来啊????那我也帮不到您了,自寻高人吧。网络工程师这个职业存在是有道理的。 |