JAVA我的世界开服教程
最后修改于2022/01/19...
写在前面
①适用于大部分JAVA服务端,包括JE版所有服务端,和使用JAVA的基岩版服务端,仅为基础教程
②分为主机选择、服务端选择、服务端运行(Windows&Linux)、简单配置四部分
③有问题请添加群聊 915926721 (群答案:V金色年华)并与群主临时会话;个人QQ:2660240873(加Q需过好友验证,不能及时看到回复)

主机选择
开服可以选择自己的电脑或者云服务器、VPS等
腾讯云最近有活动 72元/年 2h4c轻量应用服务器,性能不高,可以简单玩玩(https://cloud.tencent.com/act/new)
(一) 自己电脑
由于自家是没有公网的,我们需要内网穿透软件。内网穿透软件推荐樱花frp(www.natfrp.com),要实名,也可以自己搭
内网穿透软件的具体配置:
本地IP:一般填127.0.0.1即可
本地端口:一般填25565,如果在【server.properties】中的server-port另有设置,需填相同端口(对于局域网联机,请填写游戏内提示的端口)
隧道协议:JAVA版选TCP,基岩版选UDP
远程端口:留空自动生成,随意
配置并启动后你的朋友就可以通过软件提供给你的【地址:远程端口】连接到服务器,例如:www.bilifrp.com:12345,一般软件会把链接给出来以供复制

(如果是25565端口可直接省略)仅JAVA版,买过域名的可以使用SRV解析简化连接的地址(隐藏真实地址,虽然作用不大,但可以防住部分熊孩子),SRV解析的主机记录为【_minecraft._tcp.前缀】,记录值为【0 0 端口 软件提供的地址】,如果软件没有提供域名,我们只需要再添加一条A记录
例如:原本需要使用 www.bilifrp.com:12345连接,而我有一个域名 nianhua.gold,我们添加一条解析记录,类型为SRV,主机记录为【_minecraft._tcp.mc】,记录值填 【0 0 12345 www.bilifrp.com】,等待解析生效后我们就可以直接通过mc.nianhua.gold连接服务器

(二) 服务器、VPS等
买什么样的服务器根据经济情况而定,核心数量不需要过多,单核主频要上去,内存足够,带宽人均1Mbps+
服务器默认的防火墙不用更改,只需添加要放行的端口(一般来说内网端口和外网端口是对应的),JAVA版选择TCP协议,基岩版UDP协议(;系统的防火墙也要选择放行)

服务端选择
开服务器是需要有服务端滴~,开不同类型的服务器要用到不同的服务端
(一) 原版服(无插件,无MOD)
这样的话什么服务端都可以,最纯净的服务端大概就是原版端了,可以用BMCL等其他镜像源下载,<version>填版本
http://bmclapi2.bangbang93.com/version/<version>/server
(二)Bukkit类 纯插件服
Bukkit(水桶)、Spigot(水龙头)、Paper(纸?一般就叫做paper),这三个端中(貌似)Spigot 稳定性最好,Paper的优化最好,Bukkit没有了解过,当然无论你选择哪一款服务端,他们的插件都是互相兼容的,只要插件版本对应游戏版本就能用
Bukkit:https://getbukkit.org/download/craftbukkit
Spigot:https://getbukkit.org/download/spigot
Paper:https://papermc.io/downloads
(三)Bukkit+Forge类 插件+MOD服
Catserver(猫),此服务端集成Bukkit和Forge,插件MOD通吃
https://github.com/Luohuayu/CatServer/releases
(四)Sponge类
Sponge(海绵) ,支持MOD和Sponge插件
https://www.spongepowered.org/#downloads
(五)Fabric服
使用Fabric的服务器,偏MOD服,但感觉跟插件也很近,这个服务端需要自己搭建,首先准备一个原版端,然后从Fabric官网下载Fabric,使用方法类似手动安装Forge与Optifine,进入服务器选项,选择到对应路径然后点击安装,与其它非原版端不同,他支持快照与特殊版本的服务端
https://fabricmc.net/use/
(六)基岩服
不是BE圈的人,只知道Nukkit是JAVA编写的,Bug极多?
https://cloudburstmc.org/articles/
(七)JE BE连通服
只介绍其中一个 Geyser ,需要UDP协议,此服务端能使基岩版进入JAVA服,有离线、在线(需登陆正版账号)、闸门(无需正版账号进入正版服)三种登陆模式,这么好的东西其实也有插件版
https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/master/
(八)蹦极服
BungeeCord群组服,用于连接多个服务器,相当于一个中转站,玩家不需要退出游戏直接换服
https://www.spigotmc.org/link-forums/bungeecord.28/

运行服务端
(一)Windows
1.首先需要安装JAVA环境,1.16及以下使用JAVA8,1.17使用JAVA16,1.18使用JAVA17,下载地址:https://www.oracle.com/java/technologies/java-se-glance.html
2.在服务端的目录下创建一个启动脚本,后缀为bat,右键编辑,写入下方内容
-jar后是服务端的名称,加上拓展名(如果使用Fabirc端,此处应填写Fabric的jar而非原版端的名称),-Xms和-Xmx是初始内存和最大内存,根据需要添加,在网上还有许多优化参数
3.运行启动脚本,第一次运行后会生成一个eula.txt,把eula=false修改为eula=true,再次启动服务器就开好了(此时的服务器什么都没配置),如果想要关闭服务器,除非无响应了,最好使用stop指令关闭服务器以防数据丢失
4.自己的电脑开服还需再加一步,内网穿透/端口映射,创建的具体操作在文章开头部分
(二)Linux
Linux有两大系列分别是Redhat和Debian,其主要版本分别为CentOS和Ubuntu,对于MC开服来说,最主要的区别是包管理工具的不同,Redhat是yum,而Debian是apt,如果你不清楚你的Linux包管理工具是什么,分别输入yum和apt试试哪个有反应即可(都不行直接百度吧)
建议就使用root账户,其他账户在命令前添加sudo,如 sudo apt update
1.连接
连接Linux,你需要一个SSH软件,电脑上可以用Xshell,手机可以用阿里云自带的SSH工具,IP填写服务器公网IP,端口默认为22,注意看一下服务商提供给你的端口
2.安装
安装JAVA
Redhat:yum install java-1.8.0-openjdk
Debian:apt install oracle-java8-installer
再安装screen(如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session,也就是说你的MC进程会中断,screen可以解决这个问题)
Redhat:yum install screen
Debian:apt install screen
因为有SFTP,所以有些软件不需要安装
3.虚拟内存设置
输入 free -m 查看 swap total 如果小于2048M,就自己再添加虚拟内存,大于2048M直接跳过这一步
建立虚拟内存
dd if=/dev/zero of=/home/swap bs=1048576 count=2048(count=2048为大小,of=/home/swap为路径,创建需要时间)
将文件设置为swap分区文件
mkswap /home/swap
挂载swap分区
swapon /home/swap
执行后可能会提示“不安全的权限 0644,建议使用 0600”(此时已经挂载完毕)
可以直接忽略也可以执行 chmod -R 0600 /home/swap
此时再次执行 free -m 查看虚拟内存是否挂载成功
如果提示"资源正忙"可直接进行下一步骤设置自动挂在,待重启系统后检查是否成功
设置自动挂载
vi /etc/fstab 编辑 (也可以通过SFTP编辑,见下一步)
输入 i 后左下角提示插入(input)就可以开始编辑了
在文件的最后一行添加
/home/swap swap swap default 0 0
再依次按下 Esc→ :(冒号) → x 保存更改
下次启动就会自动挂载
4.服务端和启动脚本
首先用文件传输工具连接到服务器,电脑可以用Xftp,手机ES文件浏览器,登录信息与SSH完全一致,协议选择SFTP
在服务器里随便找一个地方创建个文件夹(这里命名为mc),直接在 / 目录下即可,再把下载好的服务端传输过去,服务端的路径即在 /mc 下,再右键创建一个文件,拓展名为sh(这里命名为run),编辑 run.sh 的内容,具体参考上文 Windows开服第二步
5.运行
首先创建一个screen作业
screen -S mc (S大写,mc是这个作业的名称),回车后你就进入了这个作业
切换到服务端所在路径
cd /mc
设置启动脚本的权限
chmod -R 001 run.sh
执行
./run.sh (英文句号+斜杠+文件名)
执行后服务端会下载一些东西,如果一直卡着不动最好使用 Ctrl+C 结束,并再次运行
第一次启动会生成一个eula.txt,可以使用SFTP修改eula=false为eula=true,当然也可以使用vi编辑器,具体步骤参考上文设置虚拟内存自动挂载,修改完成后再次执行即可正常启动
6.screen 的一些基础用法
screen -S <作业名称> 创建作业
screen -x <PID|作业名称> 回到作业(或screen -r <PID|作业名称>)
screen -ls 列出所有作业
Ctrl+A+D 退出当前作业
kill <PID> 结束作业

简单配置
(一)server.properties
wiki https://wiki.biligame.com/mc/server.properties
以下是常用的
server-port=25565 内网端口设置,根据需求更改
enable-command-block=false 服务器默认不开启命令方块 更改为true即可
white-list=false 白名单设置
allow-flight=false 允许飞行,建议更改为true,服务端判断不准确经常误踢
online-mode=true 没有正版号请更改为false
spawn-protection=16 出生点保护
max-players=20 玩家数量限制
function-permission-level=2 函数执行等级 建议更改为4
(二)MOD与插件添加
MOD端以及Fabric端会生成一个mods文件夹,将mod扔进去,注意froge与fabric是不兼容的
插件端会生成一个plugins文件夹,将插件扔进去
MOD插件端同理
萌新腐竹如果自行配置最好不要一次行添加所有插件/MOD,建议分次添加,这样能更快解决不兼容问题,或者如果能看得懂报错就随意了
大部分经典插件均可在MCBBS找到搬运贴,直接去插件/MOD官网也是可以的
(三)特殊服务端
如Geyser、BungeeCord等建议查阅官方文档或者MCBBS中汉化的文档,内容过多不在这里叙述
Geyser:https://www.mcbbs.net/forum.php?mod=viewthread&tid=973002
BungeeCord:https://www.mcbbs.net/forum.php?mod=viewthread&tid=450015
(四)bukkit.yml,catserver.yml等
在MCBBS的一些服务端优化帖子中可以看到,是对服务端的一些限制,如每个玩家可自然生成的生物数量等等,针对不同类型的服务器不同配置可以更好的发挥性能,同样内容过多不在这里叙述
优化教程:https://www.mcbbs.net/forum.php?mod=viewthread&tid=774469

如果这对你有帮助的话,
请给个三连+关注吧QAQ~