这一篇是讲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虚拟机运行的一些参数,您可以在执行命令时添加
java <JVM参数> <程序文件> <程序参数> # 这是一个Java程序
java -jar ./paper-1.18.2-267.jar # 这是你本身启动你的服务器的命令
比如你想添加JVM参数 -Djava.net.preferIPv4Stack=true 那么你就可以这么添加
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
-Dlog4j2.formatMsgNoLookups=true
1.12-1.16.5
下载log4j2_112-116.xml并将这个文件放入服务器运行目录
-Dlog4j.configurationFile=log4j2_112-116.xml
注意:这个文件不能改名,因为我们的参数指定的就是这个名字。如果需要改名,请将JVM参数一起改掉
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n"/>
</Console>
<Queue name="ServerGuiConsole">
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg{nolookups}%n"/>
</Queue>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<OnStartupTriggeringPolicy/>
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="info">
<filters>
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL"/>
</filters>
<AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/>
<AppenderRef ref="ServerGuiConsole"/>
</Root>
</Loggers>
</Configuration>
1.7-1.11.2
下载log4j2_17-111.xml并将这个文件放入服务器运行目录
-Dlog4j.configurationFile=log4j2_17-111.xml
注意:这个文件不能改名,因为我们的参数指定的就是这个名字。如果需要改名,请将JVM参数一起改掉
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="com.mojang.util">
<Appenders>
<Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n"/>
</Console>
<Queue name="ServerGuiConsole">
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n"/>
</Queue>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<OnStartupTriggeringPolicy/>
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="info">
<filters>
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL"/>
<RegexFilter regex="(?s).*\$\{[^}]*\}.*" onMatch="DENY" onMismatch="NEUTRAL"/>
</filters>
<AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/>
<AppenderRef ref="ServerGuiConsole"/>
</Root>
</Loggers>
</Configuration>
1.7-
1.7以下版本不受该漏洞影响,无需操作