这一篇是讲Minecraft的,如果需要了解Java方面的,请移步至文章%关于Apache Log4j2漏洞

该漏洞的影响范围为mc版本1.7~1.18
在mc1.7以下不受这个漏洞影响
在mc1.18.1及以上不受这个漏洞影响

客户端方面

各类主流启动器均已将该漏洞修复
Hello Minecraft! Launcher (HMCL)#212 (v3.4.212版本)修复了这个漏洞
Plain Craft Launcher 2 (PCL2)v2.2.7版本修复了这个漏洞
官方启动器已修复
我的世界中国版已修复

以及很多游戏补丁,甚至是MOD作者也已修复这个问题
MinecraftForge已修复
Optifine已修复

对于游戏内就无需操作

服务端方面

各类主流服务端已将该漏洞修复

SpigotMC

Spigot修复
BungeeCord没有这个漏洞

PaperMC

Paper修复了1.16、1.17、1.18分支
Velocity已修复
WaterFall已修复

还有很多…

原版

你的原本启动服务器的方法:
如果一定要用原版的服务端请参考以下内容

JVM参数

JVM参数是Java虚拟机运行的一些参数,您可以在执行命令时添加

  1. java <JVM参数> <程序文件> <程序参数> # 这是一个Java程序
  2. java -jar ./paper-1.18.2-267.jar # 这是你本身启动你的服务器的命令

比如你想添加JVM参数 -Djava.net.preferIPv4Stack=true 那么你就可以这么添加

  1. java -Djava.net.preferIPv4Stack=true -jar ./paper-1.18.2-267.jar

各个版本

https://www.minecraft.net/zh-hans/article/important-message—security-vulnerability-java-edition

1.19+

不受该漏洞影响,无需操作

1.18

对于1.18.1及以上,不受该漏洞影响,无需操作
对于1.18,建议升级至1.18.1或更高
如果无法升级,请参阅1.17.x的修复方案

1.17

  1. -Dlog4j2.formatMsgNoLookups=true

1.12-1.16.5

下载log4j2_112-116.xml并将这个文件放入服务器运行目录

  1. -Dlog4j.configurationFile=log4j2_112-116.xml

注意:这个文件不能改名,因为我们的参数指定的就是这个名字。如果需要改名,请将JVM参数一起改掉

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="WARN">
  3. <Appenders>
  4. <Console name="SysOut" target="SYSTEM_OUT">
  5. <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n"/>
  6. </Console>
  7. <Queue name="ServerGuiConsole">
  8. <PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg{nolookups}%n"/>
  9. </Queue>
  10. <RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
  11. <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n"/>
  12. <Policies>
  13. <TimeBasedTriggeringPolicy/>
  14. <OnStartupTriggeringPolicy/>
  15. </Policies>
  16. </RollingRandomAccessFile>
  17. </Appenders>
  18. <Loggers>
  19. <Root level="info">
  20. <filters>
  21. <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL"/>
  22. </filters>
  23. <AppenderRef ref="SysOut"/>
  24. <AppenderRef ref="File"/>
  25. <AppenderRef ref="ServerGuiConsole"/>
  26. </Root>
  27. </Loggers>
  28. </Configuration>

1.7-1.11.2

下载log4j2_17-111.xml并将这个文件放入服务器运行目录

  1. -Dlog4j.configurationFile=log4j2_17-111.xml

注意:这个文件不能改名,因为我们的参数指定的就是这个名字。如果需要改名,请将JVM参数一起改掉

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="WARN" packages="com.mojang.util">
  3. <Appenders>
  4. <Console name="SysOut" target="SYSTEM_OUT">
  5. <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n"/>
  6. </Console>
  7. <Queue name="ServerGuiConsole">
  8. <PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n"/>
  9. </Queue>
  10. <RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
  11. <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n"/>
  12. <Policies>
  13. <TimeBasedTriggeringPolicy/>
  14. <OnStartupTriggeringPolicy/>
  15. </Policies>
  16. </RollingRandomAccessFile>
  17. </Appenders>
  18. <Loggers>
  19. <Root level="info">
  20. <filters>
  21. <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL"/>
  22. <RegexFilter regex="(?s).*\$\{[^}]*\}.*" onMatch="DENY" onMismatch="NEUTRAL"/>
  23. </filters>
  24. <AppenderRef ref="SysOut"/>
  25. <AppenderRef ref="File"/>
  26. <AppenderRef ref="ServerGuiConsole"/>
  27. </Root>
  28. </Loggers>
  29. </Configuration>

1.7-

1.7以下版本不受该漏洞影响,无需操作