当前位置:首页 > 服务器-文档 > 正文内容

我的世界开服文档

admin2年前 (2023-06-11)服务器-文档108

零、检查自己电脑和网络性能

首先要避免的自然是白折腾了半天结果发现电脑性能不够。故第零步。

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加速真的很有用)
重要:
新手开服,请务必从原版服务端开始尝试,如果其他玩家可以成功进服游戏,再可以尝试使用mod/多插件服务端,否则一旦出现服务器问题将很难诊断问题来源!

(此贴的服务端更新可能不是很及时,请优先参考 新闻资讯版新帖 )

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文件,感谢 
+倒霉の忍者+ 在 这里 提供的教程,这里稍作修改,复制一下。
1.将下载到的jar文件放到您想要让服务器安装的目录下;
2.新建一个txt文本文档,打开并输入:
  1. @ECHO OFF

  2. java -Xincgc -Xms1g -Xmx1g -jar <此处换成您下载到的文件的文件名>.jar

  3. pause

复制代码
3.保存该文档,并将文档重命名为bat后缀(文件名任意);
4.双击该bat文件即可运行服务器;
5.输入stop正常关闭服务器。

这里补充一下,代码的第二行中 “-Xms1g”是指最低内存1G,“-Xmx1g”是指最高内存1G,自己可以根据情况更改,建议设置相同的值。小型服务器一般可以用以下公式来计算需要多少内存。
内存(MB) = 512MB + 峰值玩家数 x 64MB

比如如果最高需要10个玩家在线可以这样:512MB+10*64MB=1152MB。可以把代码改为“java -Xincgc -Xms1152m -Xmx1152m -jar <......>.jar”。

这个计算方法仅供参考,纯属经验,没有实际依据,请勿刻板套用!!

同时,分配内存时请务必注意以下两点:
  • 如果是32位java最多只能使用1.5G的内存,这就是文章开头推荐使用64位的原因之一。

  • 给单个服务端分配的内存请勿过多:对于内存8G以下的系统,不建议分配超过50%的内存;对于内存8G及以上的系统,建议至少保留3G内存给系统和其他软件。



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

  • 把路由器设置为AP/交换机模式
            退而求其次:效率稍低,稳定性稍低,但是作为<100人的小型服务器尚可
            教程请看 
    这里

  • 多级映射
            下策,上面的办法全部行不通最后考虑的方案,不推荐
            使用此方案前请先操作第五部
            教程请看 
    这里




五、获取Modem超级用户密码

大多数的网络提供商为了防止用户乱动Modem设置导致不能上网,都会限制用户可以使用的功能。而端口映射,一个非常重要的功能,就通常在限制行列中。内网开服必须使用端口映射,所以需要获取Modem的超级用户密码,开启端口映射。当然,也存在Modem并不限制端口映射功能的情况,这时直接操作[六]即可。

没有超级用户会怎样呢?
这是我家的Modem,是电信的F420光猫。





Modem的背面有一些文字,提供了本机地址、用户名和密码,但这是用户账户,登陆进去之后并没有任何有用的功能。



这是我用管理员账户telecomadmin登陆后的同一界面:


先行警告!获得管理员账户后千万不要自作主张盲目乱动其他设置!再说一遍,不要乱动!

从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的符号是英文标点:而不是中文标点:!错误输入标点将不能进入服务器!




十、常见问题

请确认是否是服务端自己的问题!我不是服务端的制作者,我无法回答这类问题!
确认是否是服务端本身问题的方法:使用最新官方稳定版服务端替换您的服务端开服,如果这时别的玩家已经可以正常进服游戏,则是您原本服务端的问题。
遇到服务端自身的问题,请直接咨询服务端懒人包/插件/mod制作者!
我遇到的80%的问题都和映射失败有关。故若遇到问题,请先以最详细的方式检查您的映射设置和您的网络环境!

运行后提示“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步怎么设置啊?问百度。我全部都检查过了为什么别人还是进不来啊????那我也帮不到您了,自寻高人吧。网络工程师这个职业存在是有道理的。


ZihanLab™全权所有


本文链接:http://zihanlab.com/?id=10

分享给朋友:
返回列表

上一篇:服务器JAVA版本切换教程

没有最新的文章了...

“我的世界开服文档” 的相关文章

服务器JAVA版本切换教程

服务器JAVA版本切换教程

地址:Java多个版本切换的几种方法_java_脚本之家 (jb51.net)Java多个版本切换的几种方法本文主要介绍了Java多个版本切换的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧+目录问题描述平常用的是jav...