帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
MC 1.18.2 FORGE 开服教程及自动备份
发布时间:2024-03-06 16:23:10   分类:帮助文档
MC 1.18.2 FORGE 开服教程及自动备份

目录
一.准备环境
1.云服务器
2.登录服务器
3.安装需求
二.服务端运行
1.启动
2.服务端
3.自动脚本(记得改权限)
4.服务端优化方式
5.问题解决 

 
一.准备环境
本文作者搭建环境:华为云HECS,Linux,JAVA18, Forge40.1.73(对于其它Minecraft版本类似)
1.云服务器
这篇教程不会深入讨论有关服务器的知识与技术,如有更高要求请参考其他大佬。
同时,服务器厂商有详细的说明文档。

 
2.登录服务器
这里使用XShell和Xftp为例。XShell(www.xshell.com/zh/xshell)官网。下载安装后打开

点击新建

名称自取,主机为服务器公网IP地址,然后切换到“用户身份验证”,输入用户名及密码,用户名填"root"即可,其他不用修改(如果有ssl密钥则优先考虑使用,这里不做说明,如果需要可以搜索使用方法)。确定或连接即可。
3.安装需求
这里使用常规的Screen方法即可。Screen是一款命令行终端切换软件,这里用于维持Minecraft Server的运行。
连接你的服务器之后应该出现如下画面
 
输入”yum install wget”会出现确认提示,按”y”键确认。有些服务器可能已经安装,则跳过 

接下来输入
yum install screen
按”y”键确认。出现complete字样即可。
然后安装Java,输入
yum list java*

有些服务器可能不全,但是Minecraft1.18.2需要java17以上才能运行,这时候只能去官网下载Oracle Java18(www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html)

选择第三个Linux ×64压缩归档,用Xftp上传至服务器,可以先在本地解压后在上传。
或者在XShell上使用"tar -zxvf 文件名.tar.gz"解压。推荐先上传压缩包再在服务器上解压。
 
Xftp设置方式与XShell差不多,而且可以相互呼出。

接下来,下载minecraft 1.18.2 server和Forge文件
Minecraft 1.18.2https://launcher.mojang.com/v1/objects/1c898afff0449eed08ad8036aaa4c652952035de/server.jar
Forgehttp://files.minecraftforge.net/net/minecraftforge/forge/
Forge官网上如果卡在广告,那么在选择了合适的版本后,右键Installer复制连接在下载。
 
二.服务端运行
这里不讨论Minecraft服务器配置(比如server.properties),网上有太多文章了。
1.启动
在本地新建文件夹用于存放MC服务器文件和Forge文件(在远程服务器上一样,个人习惯),然后运行server.jar,第一次安装过程应该必定失败,应为你要先同意eula,在server.jar同文件夹下会在第一次运行时生成eula.txt,用文本编辑器打开并修改为true.

PS:在一般情况下,你的电脑(或服务器)应该只安装了java18/java17。按win + r ,在输入cmd打开提示符窗口,输入"java -version"查看。如果没有显示你希望的版本,就需要在启动时选择运行Java的目录了。
在server.jar所在目录中右键(或自己cd进去。"cd d:"进入D盘;"cd mc/1.18.2"进入D:/mc/1.18.2;"cd ../"返回上一级),打开终端输入
java -jar server.jar
以运行(可以在此命令最后加 "空格nogui"以关闭图形界面),Forge安装完成时生成启动脚本,所以不需要自己写。如果没有可以自己新建一个。
第二次运行一般就可以了,确认启动成功后在打开的CMD窗口输入"stop"来停止MC服务器,不要直接关闭,容易回档。运行Forge安装文件,在弹出的对话框中选择安装server版本。安装完成后即可安装mods。
本地连接(在本地电脑上运行的MC服务端)的话在MC客户端服务器地址输入:127.0.0.1:25565
2.服务端
将server.jar目录所有文件上传至服务器,将run.sh权限改成755,Xftp中右键菜单里有快捷工具,对文件右键可以查看。然后用XShell连接,依此输入:
cd server #假设文件在/root/server下
screen -S server #创建名为server的screen
sh ./run.sh
等待启动成功即可,客户端通过IP:25565连接。
关闭远程终端后再次连接时,Screen窗口默认不会直接显示,你需要输入
screen -r server
来恢复Minecraft控制台界面。
关闭服务端后想关闭此Screen可以在此Screen窗口中输入exit。
前面提到的yum命令搜不到合适的Java版本的同志,要把run.sh中的命令改成这样
/root/jdk-18.0.2.1/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.18.2-40.1.73/unix_args.txt "$@" nogui
也就是在前面加上Java的解压目录。
然后顺便解释一下,这个是Forge生成的的启动文件,@user_jvm_args.txt是我们加参数的地方,会生成在server.jar目录下,比如
-Xms1024M -Xmx2048M -XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Dfml.ignoreInvalidMinecraftCertificates=True -Dfml.ignorePatchDiscrepancies=True -Dlog4j2.formatMsgNoLookups=true
-Xms1024M -Xmx2048M就是分配的Java虚拟机内存大小,我推荐最大最小内存一样,我这里是为了直观其实是服务器内存太小了,分配一样就会莫名其妙的崩溃
Tips:可以只添加 -Xms1024M -Xmx2048M 部分
3.自动脚本(记得改权限)
通过crontab -e 命令来定时执行任务
自动备份 backup.sh (这里用到了zip压缩,部分服务器需要自行安装zip支持)
#定义日期
datetime=`date+%Y%m%d%H%M`
#确定screen ID
#这段命令的意思是查找名称为"server"的screen
screen_id=`screen -ls | grep .server | awk '{print $1}' | cut -d "." -f 1`
#在mc终端输入save-all保存
screen -x -S ${screen_id} -p 0 -X stuff $"save-all"
#这是回车
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 5s
echo "Backing up Minecraft,please wait."
#指向目录,复制服务端文件
mkdir /root/backup/mc${datetime}/
cp -r -f /root/server/* /root/backup/mc${datetime}/
# Remove logs
rm -rf /root/backup/mc${datetime}/logs
#备份大小写入size.txt
du -sm /root/backup/mc${datetime}/ >> /root/size.txt
#压缩文件
zip -r -q /root/backup/mc${datetime}.zip /root/backup/mc${datetime}/
#删除临时文件
rm -rf /root/backup/mc${datetime}/
#删除三天前的备份
find /root/backup -mtime +2 -exec rm {} \;
自动启动 start.sh
#定义screen名称
screen_name=$"server"
screen -dmS $screen_name
#启动指令,注意要新建一个auto_run.sh
cmd=$"sh /root/script/auto_run.sh"

screen_id=`screen -ls | grep .server | awk '{print $1}' | cut -d "." -f 1`

screen -x $screen_id -p 0 -X stuff "$cmd"
screen -x $screen_id -p 0 -X stuff $'\n'
      auto_run.sh
cd /root/server
sh ./run.sh
自动关闭 shutdown.sh
datetime=`date +%Y%m%d%H%M`

screen_id=`screen -ls | grep .server | awk '{print $1}' | cut -d "." -f 1`
# 以下为自定义信息,可自行取舍。通过使用screen -x -S ${screen_id} -p 0 -X stuff $"xxx"可以自动化控制MC,即使用脚本发送MC指令。
screen -x -S ${screen_id} -p 0 -X stuff $"say Server will shutdown in 10min."
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 300s
screen -x -S ${screen_id} -p 0 -X stuff $"say Server will shutdown in 5min."
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 240s
screen -x -S ${screen_id} -p 0 -X stuff $"say Server will shutdown in 1min,please saveand ready to exit."
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 30s
screen -x -S ${screen_id} -p 0 -X stuff $"say Last 30 second,bye and see you nexttime!"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 20s
screen -x -S ${screen_id} -p 0 -X stuff $"say 10"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 9"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 8"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 7"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 6"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 5"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 4"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 3"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 2"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say 1"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
screen -x -S ${screen_id} -p 0 -X stuff $"say shutdown now"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
sleep 1s
# 停止server
screen -x -S ${screen_id} -p 0 -X stuff $"stop"
screen -x -S ${screen_id} -p 0 -X stuff $'\n'
# 备份
echo "Backing up Minecraft,please wait."
sleep 8s

mkdir /root/backup/mc${datetime}/
cp -r -f /root/minecraft/server/* /root/backup/mc${datetime}
# Remove logs
rm -rf /root/backup/mc${datetime}/logs
du -sm /root/backup/mc${datetime}/ >> /root/size.txt

zip -r -q /root/backup/mc${datetime}.zip /root/backup/mc${datetime}/
rm -rf /root/backup/mc${datetime}/

# 关闭screen
screen -X -S ${screen_id} quit
 自动删除日志 del.sh
#删除两天前的日志
find /root/server/logs -mtime +1 -exec rm {} \;

用crontab -e定时,它使用Vim编辑

输入i或按Insert键切换至编辑模式,输入
30 06 * * * sh/root/script/start.sh
使得start.sh在6:30时运行。
crontab的其它细节可以查询linux定时任务。
编辑完成后,按Esc在按”:”冒号进入命令模式,输入wq以保存并退出,直接按q会提示未保存,按q!强制退出。
4.服务端优化方式
使用模组
Ferritecore 铁氧体磁芯 内存优化,可能导致掉TPSKsyxis 加速载入LzyDUF DUF载入优化(和Ferritecore一起安装可能导致启动变慢,几率触发)Memory Sweep 内存清理Saturn 修复了生物群系温度的缓存的内存泄漏Smooth Chunk Save 避免保存时的大量延迟Starlight 重写Minecraft的光照系统使其更快Why You Make Lag 包含很多针对服务端的优化
Tips:有一些mod需要双端安装才能正常运作
使用参数
适用于Hotspot版Java 8 8u271、openj9、Zulu Jdk 17 (测试来自网友)
但是本文作者在测试时报错(Oracle JDK 18)

原文链接:
一个【效果明显】的Java 8优化JVM参数 - [MC]我的世界原版 (Minecraft) - MC百科|最大的Minecraft中文MOD百科 (mcmod.cn)
-d64 -XX:+AggressiveOpts -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSConcurrentMTEnabled -XX:ParallelGCThreads=8 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:+UnlockExperimentalVMOptions -XX:+ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis=50 -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -XX:+UseAdaptiveGCBoundary -XX:NewRatio=3 -Dfml.readTimeout=90 -XX:+UseFastAccessorMethods

适用于Java8。
测试在Java18/Java17上使用时可以运行,但优化效果未知。

原文链接:
Aikar: 调整JVM —— 非常有效的服务器启动参数 - 联机教程 - Minecraft(我的世界)中文论坛 - (mcbbs.net)
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar paperclip.jar 

5.问题解决 
Zip安装
  登录root,在终端中输入
yum install zip
确认安装即可 
推荐的模组
Simple Login 简单登录Chunky 区块预加载Farsight 缓存区块以提高客户端渲染距离(仅客户端)FTB Chunks 认领区块、强加载、地图Mouse Tweaks 鼠标手势 (仅客户端)Not Enough Crashes 不够的崩溃 使得游戏崩溃时只退至标题界面,但如果游戏无法启动,请删除此模组Oculus optifine的替代品Spark 火花  服务端性能监测ClientTweaks 客户端微调(仅客户端)SpongeForge 海绵端支持(最高1.16.5,不知道什么时候更新)
CurseForge加速
浏览器安装AdGuard之类的广告过滤器,在用户过滤器(即自定义过滤)中添加
apis.google.com/js/platform.js$domain=minecraft.curseforge.com|www.curseforge.com
fonts.googleapis.com/css?family=*$domain=minecraft.curseforge.com|www.curseforge.com
tags.crwdcntrl.net/*.js$domain=minecraft.curseforge.com|www.curseforge.com

 原文地址利用广告屏蔽插件 Adblock Plus 快速访问模组下载网站 CurseForge 网站 - Mod研讨 - Minecraft(我的世界)中文论坛 - (mcbbs.net)


以上,是我的开服经验分享。如有建议,还请各位在评论区补充。
 
 
 
 
 
 
 


香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价