最近试着去开个mc服务器,遇到了点坑(特别是forge),正好和大家一起分享。
准备工具:
1、java配置文件
2、我的世界客户端
3、对应版本的服务器核心
https://s3.amazonaws.com/Minecraft.Download/versions/版本号/minecraft_server.版本
(例如我要下载1.16.1的,就把链接改为:https://s3.amazonaws.com/Minecraft.Download/versions/1.16.1/minecraft_server.1.16.1.jar)
4、forge 下载 :http://files.minecraftforge.net/
forge版本和服务器一致,这里我们下载installer(试过下载universal版的,但是运行各种报错,查了后说1.3以后使用installer)
开始
一、配置java环境
先在https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
找到linux的jdk,下载:
我们选择这个下载,
点击同意政策
注册登录oracle账号:
然后开始下载。下载完成后通过scp指令上传到服务器(scp使用详情参考https://www.runoob.com/linux/linux-comm-scp.html)
在服务器终端输入命令解压文件
tar zxvf "文件路径"
进入/etc目录,使用vim编辑profile文件
加上如下内容
export JAVA_HOME=你的jdk根目录
export JRE_HOME=你的jdk根目录/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
我的是这样的
保存后在root目录下的.bashrc文件里添加
source /etc/profile
在服务器终端输入source /etc/profile
再输入java看是否成功
二、服务器核心和forge上传
同样使用scp指令上传前面下载的服务器核心和forge文件,同时上传我的世界客户端的libraries整个文件夹到服务器同一文件内。进入服务器核心目录,运行java -Xms256M -Xmx512M -jar "服务器核心文件路径" nogui
-Xms后面接的是最小分配内存,-Xmx最大分配内存,根据你们服务器的内存大小自行决定。
第一次运行会报错
修改刚刚目录里生成的eula.txt文件
把里面的eula=false改为eula=true
同时修改server.properties文件(详情参考https://minecraft-zh.gamepedia.com/Server.properties?variant=zh)
online-mode改成false(除非你是正版玩家)
其它修改看你的喜好
再次运行。运行完毕后输入stop关闭服务器,然后运行forge
java -jar forge-1.16.1-32.0.107-installer.jar --installServer
这里的forge也是要对应你自己的forge文件。等待运行完成后会生成一个forge的jar文件(我这里是forge-1.16.1-32.0.107.jar)。运行
java -jar forge-1.16.1-32.0.107.jar nogui
现在你的服务器目录下是这样的了:
多了个mods文件夹,把需要的mod上传上去。注意,小地图,g键合成表,生物雷达,TMI内置修改器这种辅助插件型mod不要上传,否则服务器可能无法开启。
再用上面命令执行一次forge,即可运行服务器了!
这个时候,打开游戏,多人游戏,添加服务器,地址填:你的服务器外网地址:服务器端口
例如:123.123.123.123:25565
(xxx.xxx.xxx.xxx是你的服务器外网ip)
然后就行了!
但是我们关了窗口会导致服务器也关掉,怎么使其后台运行呢?这里我有两种解决方式:
1、nohup指令
输入nohup java -jar forge-1.16.1-32.0.107.jar nogui &
,这里的forge-1.16.1-32.0.107.jar文件是你前面installer安装的时候生成的那个。
查看nohup.out: cat nohup.out
,看到服务器启动成功后就能进了
2、用screen软件。
screen是linux上的一款软件,用于管理会话。
先stop关闭服务端,然后安装screen。
Debian安装:
apt-get install screen
CentOS安装:
yum install screen
screen -ls显示当前所有screen创建的窗口,此时我们还没有创建。
再screen -S <窗口名>创建一个名为‘窗口名’的窗口。
例如screen -S mc
输入screen -r mc挂载上创建的screen。
再输入:
java -Xms256M -Xmx512M -jar "forge路径" nogui
执行forge启动服务器。
用xshell再创建一个窗口,还是连上你的服务器,再输入:
screen -d mc
使我们的窗口与主进程分离,这样就后台运行了!
以后再进入是:
screen -r mc
用完了记得再screen -d分离一下才行。
注意,以后如果stop了服务器,再次开启是执行forge程序而不是服务端核心!
如果想重新生成世界,把服务端关闭,然后删除服务端文件夹里面的world文件夹,再运行forge开启,便会自动生成地图!
有想来我的服务器玩的朋友可以留个评论呀