本文最后更新于 2023-05-14,文章内容可能已经过时。

建议 (当然你也可以不接受我的建议)

  1. 使用Git工具代替Windows原有的CMD / PowerShell
  2. 出现问题了一定要多看 Log(日志) ,看不懂的可以复制到翻译工具上翻译一下
  3. 使用一个新的文件夹搭建服务端
  4. 如果服务端在你的本机上建议你在进入服务器的时候使用内网IP或127.0.0.1进入服务器,当然你也可以跟其他人一样使用公网的域名但最终还是要转发到你本机上。
  5. 添加nogui参数启动服务端

开始部署

我这里以1.12.2为例,其他版本的大同小异。

下载的整合包只需要里面的Mods 文件夹其余的全部不需要并且建议复制两份,一份给客户端(无删减),一份服务端(删减服务端不需要的)
下载的整合包只需要里面的Mods 文件夹其余的全部不需要并且建议复制两份,一份给客户端(无删减),一份服务端(删减服务端不需要的)
下载的整合包只需要里面的Mods 文件夹其余的全部不需要并且建议复制两份,一份给客户端(无删减),一份服务端(删减服务端不需要的)

  1. 到Forge下载相应版本的服务端文件

这里需要注意的是如果你直接点击Installer按钮那么恭喜你,你已经成功的跳转到广告推广页面了我们需要在Installer按钮上鼠标右键选择复制链接按钮之后你会得到这么一串东西

https://adfoc.us/serve/sitelinks/?id=271228&url=https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar

https://adfoc.us/serve/sitelinks/?id=271228&url=
这前面的内容是它跳转到广告推广页面的;而服务端的文件是后面的这个

https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2855/forge-1.12.2-14.23.5.2855-installer.jar

在得到了真正的服务端文件下载链接之后我们直接把下载链接粘贴到浏览器上就能开始下载了。

  1. 把你下载的服务端文件放到一个干净的文件夹,并在上面的地址栏内输入cmd然后回车跳出来cmd命令窗口

如果你已安装了Git工具,请在文件夹内鼠标右键找到Git Bash Here选择并打开

还需要的注意的是 CMD/Git 中的路径是否在你的文件夹里,如上我的文件保存在桌面的111文件夹内,那他显示的就是Desktop/111同理如果你的文件夹是在D盘的mcserver文件夹里那么显示的应该是d/mcserver

  1. 使用命令安装环境库
java -jar <File.jar> --installServer

命令解析:

java=使用Java

-jar=文件格式

<File.jar>=运行库的文件名

--installServer=安装服务器

​安装好的内容如下

它们分别是

libraries=运行库

1.12.2.json=版本信息

forge-1.12.2-14.23.5.2855.jar=服务端启动文件

forge-1.12.2-14.23.5.2855-installer.jar=服务端运行库安装文件

forge-1.12.2-14.23.5.2855-installer.jar.log=服务端运行库安装文件的日志

minecraft_server.1.12.2.jar=官方的服务端启动文件

  1. 同意用户条款。

我们在文件夹内创建一个名为eula的TXT文本文档在里面输入eula=true然后保存关闭即可启动服务端。

  1. 首次启动

输入以下命令即可启动服务端

java -Xms2G -Xmx4G -jar <File.jar> nogui

命令解析:

java= 使用Java

-Xms2G=起始内存为2G

Xmx4G=最大内存为4G

<File.jar>=服务端的文件名

nogui=这里其实是两个单词分别是nogui意思是不需要图形化界面,这个可以极大的减少内存占用。

当你看到Done (7.419s)! For help, type "help" or "?"的时候说明

我们在控制台输入stop或按快捷键Ctrl+C停止服务端

它们分别是

config=配置文件目录

libraries=运行库

logs=日志文件

mods=模组目录

wold=地图数据;这里需要注意的是如果你修改过server.properties文件里的参数可能不是这个名字

1.12.2.json=版本信息

banned-ips.json=封禁IP

banned-players.json=封禁玩家

eula.txt=上面同意用户条款

forge-1.12.2-14.23.5.2855.jar=服务端启动文件

forge-1.12.2-14.23.5.2855-installer.jar=服务端运行库安装文件

forge-1.12.2-14.23.5.2855-installer.jar.log=服务端运行库安装文件的日志

minecraft_server.1.12.2.jar=官方的服务端启动文件

ops.json=管理员文件

server.properties=配置文件

usercache.json=用户缓存

whitelist.json=白名单文件

我们把之前在整合包里提取的mods(服务端)直接覆盖上去并重新启动服务端。这里提示一下按 上下左右的上键可以快速返回到上一次输入过的命令

当你再次看到Done (*.***s)! For help, type "help" or "?"的时候说明你的服务器已经搭建起来了,过程中如果出现了一些红的黄的先不管。

这个时候你的文件夹里会多出来两个文件夹

CustomSkinLoader=自定义皮肤加载器

crash-reports=崩溃报告

  1. 出现错误导致无法启动时查看crash-reports(崩溃报告)

下面我来说一下怎么看log它一般生成在crash-reports文件夹内一般以启动的时间命名如:crash-2021-08-23_22.31.45-server.txt里面的内容如下:

---- Minecraft Crash Report ----
    
WARNING: coremods are present:
Contact their authors BEFORE contacting forge

// Don't do that.

Time: 21-8-23 下午10:31
Description: Exception in server tick loop

Wrong Minecraft Versions!
Mod: cfm
Location: .\mods\cfm-7.0.0pre22-1.16.3.jar
Expected: [1.13,)
Current: Minecraft 1.12.2

Wrong Minecraft Versions!
Mod: farmersdelight
Location: .\mods\FarmersDelight-1.16.3-0.3.2.jar
Expected: [1.13,)
Current: Minecraft 1.12.2

Wrong Minecraft Versions!
Mod: twilightforest
Location: .\mods\twilightforest-1.16.5-4.0.490-universal.jar
Expected: [1.13,)
Current: Minecraft 1.12.2

Wrong Minecraft Versions!
Mod: worldedit
Location: .\mods\worldedit-mod-7.2.5-dist.jar
Expected: [1.13,)
Current: Minecraft 1.12.2

net.minecraftforge.fml.common.MultipleModsErrored
    	at net.minecraftforge.fml.common.Loader.sortModList(Loader.java:300)
    	at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:572)
    	at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:98)
    	at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:333)
    	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:125)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)
    	at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- System Details --
    Details:
    	Minecraft Version: 1.12.2
    	Operating System: Windows 10 (amd64) version 10.0
    	Java Version: 1.8.0_301, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 1494856688 bytes (1425 MB) / 2058354688 bytes (1963 MB) up to 3817865216 bytes (3641 MB)
    	JVM Flags: 2 total; -Xms2G -Xmx4G
    	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    	FML: MCP 9.42 Powered by Forge 14.23.5.2855 8 mods loaded, 8 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    
    	| State | ID             | Version      | Source                                      | Signature                                |
    	|:----- |:-------------- |:------------ |:------------------------------------------- |:---------------------------------------- |
    	| L     | minecraft      | 1.12.2       | minecraft.jar                               | None                                     |
    	| L     | mcp            | 9.42         | minecraft.jar                               | None                                     |
    	| L     | FML            | 8.0.99.99    | forge-1.12.2-14.23.5.2855.jar               | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    	| L     | forge          | 14.23.5.2855 | forge-1.12.2-14.23.5.2855.jar               | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    	| L     | cfm            | 1.0          | cfm-7.0.0pre22-1.16.3.jar                   | None                                     |
    	| L     | farmersdelight | 1.0          | FarmersDelight-1.16.3-0.3.2.jar             | None                                     |
    	| L     | twilightforest | 1.0          | twilightforest-1.16.5-4.0.490-universal.jar | None                                     |
    	| L     | worldedit      | 1.0          | worldedit-mod-7.2.5-dist.jar                | None                                     |
    
    	Loaded coremods (and transformers): 
    	Profiler Position: N/A (disabled)
    	Is Modded: Definitely; Server brand changed to 'fml,forge'
    	Type: Dedicated Server (map_server.txt)
    ```

    别看这么多东西就怕了你只需要看`WARNING:`后面的内容即可,如上文本那我需要看的内容如下

    ```language
    // Don't do that.
    
    Time: 21-8-23 下午10:31
    Description: Exception in server tick loop
    
    Wrong Minecraft Versions!
    Mod: cfm
    Location: .\mods\cfm-7.0.0pre22-1.16.3.jar
    Expected: [1.13,)
    Current: Minecraft 1.12.2
    
    Wrong Minecraft Versions!
    Mod: farmersdelight
    Location: .\mods\FarmersDelight-1.16.3-0.3.2.jar
    Expected: [1.13,)
    Current: Minecraft 1.12.2
    
    Wrong Minecraft Versions!
    Mod: twilightforest
    Location: .\mods\twilightforest-1.16.5-4.0.490-universal.jar
    Expected: [1.13,)
    Current: Minecraft 1.12.2
    
    Wrong Minecraft Versions!
    Mod: worldedit
    Location: .\mods\worldedit-mod-7.2.5-dist.jar
    Expected: [1.13,)
    Current: Minecraft 1.12.2
    

它这里会告诉你导致出错的Mod是什么,Location它现在在什么位置,Expected它应该是什么版本,和Current你当前运行的服务端是什么版本

镜像库的使用

我个人搭建的镜像库已关闭

关于最近log4j的漏洞

1.18版本的将服务端更新1.18.1即可。

1.17.x:在启动时,添加参数

-Dlog4j2.formatMsgNoLookups=true

1.12-1.16.5的下载补丁

https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml

添加参数:

-Dlog4j.configurationFile=log4j2_112-116.xml

1.7-1.11.2的下载补丁

https://launcher.mojang.com/v1/objects/dd2b723346a8dcd48e7f4d245f6bf09e98db9696/log4j2_17-111.xml

添加参数:

-Dlog4j.configurationFile=log4j2_17-111.xml

<完>