404E Blog

第 8 页

Minecraft

Minecraft插件服安装/配置插件

找插件

插件一般发布在spigot上 https://www.spigotmc.org/search/?type=resource_update (此网站国内不墙,只有5秒的ddos检测)

国内找插件可以去mcbbs,搬运的插件一般都会汉化用法和配置文件,提供明确的获取方式 https://www.mcbbs.net/forum-servermod-1.html

安装插件

插件服的插件基本通用,版本向前兼容(比如支持1.13的插件,如果没有描述,多半支持1.14及以后的版本)

下载插件得到插件的jar文件后将jar文件移动到插件服的plugins文件夹中,然后重启服务端

如果启动时没有报错,并且启动完之后在控制台输plugins看到插件名字并且是绿字说明插件启动/安装成功

配置插件

使用汉化的语言/配置文件

汉化的语言文件有多种可能的使用方式

  1. 插件配置文件夹中有默认的语言文件,替换掉它
  2. 插件有语言文件夹,将语言文件(文件中带zh_CN或者类似的标识)放进去,然后在配置文件中搜索lang,找到后替换语言代码(一般为zh_CN)
  3. 插件自带汉化,在配置文件中搜索lang,找到后替换语言代码(一般为zh_CN)

配置文件的汉化一般是汉化了其中的注释,如果汉化文件不是最新的,建议对照着旧文件改插件自动生成的配置文件,否则可能会有错漏导致不可预知的后果

查看默认配置文件

插件的Jar文件使用压缩软件打开,里面会有默认的配置文件(注意不要修改其中的默认文件,复制出来即可)

此方法可以查看其自带的语言文件是否有自己需要的,以及它使用的语言代码格式

更新插件

如果插件作者没有注明需要操作什么,一般就是将旧的插件Jar删除后将新的插件Jar放进plugins文件夹

一些插件的链接

EssentialsX(包括本体和Protect,Chat,Spawn):提供大部分的基础指令和对玩家限制。使用时需要手动给default组添加权限。注意需要下载带X的版本

mcbbs:https://www.mcbbs.net/thread-619883-1-1.html

中文Wiki:https://mineplugin.org/Essentials

官网:https://essentialsx.net/

英文Wiki:https://essentialsx.net/wiki/Home.html

构建:https://ci.ender.zone/job/EssentialsX/

GitHub:https://github.com/EssentialsX/Essentials/

Luckperms:提供权限组管理,个人认为比GroupManager好用,安装完第一次启动可能比较慢,请耐心等待

mcbbs:https://www.mcbbs.net/thread-676818-1-1.html

官网:https://luckperms.net/

中文Wiki:https://pluginscdtribe.github.io/wiki/luckperms/

构建:https://ci.lucko.me/job/LuckPerms/

GitHub:https://github.com/lucko/LuckPerms/

AuthMeReloaded(开发版):提供登录功能,替代正版验证

mcbbs:https://www.mcbbs.net/thread-442729-1-1.html

官网:https://www.spigotmc.org/resources/authme-reloaded.6269

英文Wiki:https://github.com/AuthMe/AuthMeReloaded/tree/master/docs

构建:https://ci.codemc.io/job/AuthMe/job/AuthMeReloaded/

GitHub:https://github.com/AuthMe/AuthMeReloaded/

CoreProtect:记录玩家的几乎所有操作,提供按区域/玩家/时间回档的功能,防熊利器,但是要定期清理,不然会很占储存

mcbbs:https://www.mcbbs.net/thread-682499-1-1.html

官网:https://www.spigotmc.org/resources/coreprotect.8631/

中文Wiki:https://mineplugin.org/CoreProtect

Residence:领地插件,允许玩家圈地以保护自己的房屋农田等建筑。虽然是付费插件,但是提供了免费版下载,会限制在63格以上高度放置流体和中立方块,一定要手动关闭,方法见mcbbs帖子

mcbbs:https://www.mcbbs.net/thread-631343-1-1.html

官网:https://www.spigotmc.org/resources/residence-1-7-10-up-to-1-16.11480/

免费下载:https://zrips.net/Residence/

Github:https://github.com/Zrips/Residence

Vault:经济及部分插件的前置

官网:https://www.spigotmc.org/resources/vault.34315/

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-703488-1-1.html

中文Wiki:https://mineplugin.org/Vault

XConomy:经济插件,国产插件,作者修bug快,也可以用其他的经济插件代替

mcbbs:https://www.mcbbs.net/thread-962904-1-1.html (包含Wiki)

spigot:https://www.spigotmc.org/resources/xconomy.75669/

GitHub:https://github.com/YiC200333/XConomy

Skinsrestorer:皮肤插件,允许离线服务器显示正版皮肤(没办法,谁叫国内离线玩家多)

mcbbs:https://www.mcbbs.net/thread-805404-1-1.html

官网:https://www.spigotmc.org/resources/skinsrestorer.2124/

英文Wiki:https://github.com/SkinsRestorer/SkinsRestorerX/wiki

GitHub:https://github.com/SkinsRestorer/SkinsRestorerX

PlaceholderAPI:占位符变量,返回你需要的玩家数据,很多插件的软前置

mcbbs:https://www.mcbbs.net/thread-829732-1-1.html

官网:https://www.spigotmc.org/resources/placeholderapi.6245/

中文Wiki:https://mineplugin.org/PlaceholderAPI

LockettePro:木牌箱子锁

和LWCX相比牌子会占用一格空间,且给予的信任人数有上限,要给很多信任时建议使用圈地,但是使用简单

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-944015-1-1.html

官网:https://www.spigotmc.org/resources/lockettepro-for-1-14-1-15-1-16.74354/

GitHub:https://github.com/brunyman/LockettePro

英文Wiki:https://github.com/connection-lost/LockettePro/wiki

LWCX:箱子锁

和LockettePro相比不会有牌子占用一格空间,添加信任的数量无上限,容器放下即锁

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-892322-1-1.html

官网:https://www.spigotmc.org/resources/lwc-extended.69551/

GitHub:https://github.com/pop4959/LWCX

构建:https://ci.codemc.io/job/pop4959/job/LWCX-dev/

英文Wiki:https://github.com/pop4959/LWCX/wiki

Multiverse-Core:多世界插件,方便管理多个世界,是部分插件的前置

mcbbs:https://www.mcbbs.net/thread-1016455-1-1.html

官网:https://dev.bukkit.org/projects/multiverse-core(可能需要魔法上网)

中文Wiki:https://mineplugin.org/Multiverse-Core

构建:https://ci.onarandombox.com/job/Multiverse-Core/

GitHub:https://github.com/Multiverse/Multiverse-Core/

QuickShop Reremake:商店插件,允许使用箱子,末影箱等容器作为商店出售或收购物品

mcbbs:https://www.mcbbs.net/thread-809496-1-1.html(包含wiki)

官网:https://www.spigotmc.org/resources/quickshop-reremake-1-16-ready-say-hello-with-rgb.62575/

构建:https://ci.codemc.io/job/Ghost-chu/job/QuickShop-Reremake/

GitHub:https://github.com/Ghost-chu/QuickShop-Reremake

PlayerTitle:称号,国产插件

mcbbs:https://www.mcbbs.net/thread-1004671-1-1.html

spigot:https://www.spigotmc.org/resources/playertitle.78048/

FarmProtect:保护农田不被踩坏

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-797619-1-1.html

spigot:https://www.spigotmc.org/resources/farmprotect.6259/

Lite Sign In:签到,国产插件

mcbbs:https://www.mcbbs.net/thread-1056080-1-1.html

spigot:https://www.spigotmc.org/resources/lite-sign-in-1-7-1-16-sign-in-rewards-chest-gui-mysql-sqlite-customizable.79584/

Citizens:NPC插件

mcbbs:https://www.mcbbs.net/thread-797288-1-1.html(带wiki)

spigot:https://www.spigotmc.org/resources/citizens.13811/

Citizens CMD:点击NPC使用指令

mcbbs:https://www.mcbbs.net/thread-1002989-1-1.html

spigot:https://www.spigotmc.org/resources/citizens-cmd.30224/

TrMenu:菜单(2.0版本付费,但是GitHub有下载)

mcbbs:https://www.mcbbs.net/thread-918078-1-1.html

GitHub:https://github.com/TrMenu/TrMenu/actions

TrChat:修改聊天格式

mcbbs:https://www.mcbbs.net/thread-903335-1-1.html

Github:https://github.com/Arasple/TrChat/releases/tag/1.71

TrHologram:悬浮字

mcbbs:https://www.mcbbs.net/thread-923397-1-1.html

Github:https://github.com/Arasple/TrHologram/releases

Plotsquared:地皮

mcbbs:https://www.mcbbs.net/thread-573771-1-1.html

spigot:https://www.spigotmc.org/resources/plotsquared-v5.77506/

MiniMOTD:修改motd

mcbbs:https://www.mcbbs.net/thread-1075003-1-1.html

spigot:https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/

TitleManager:修改玩家tab样式和右侧计分板

mcbbs:https://www.mcbbs.net/thread-810394-1-1.html

spigot:https://www.spigotmc.org/resources/titlemanager.1049/

ViaVersion:跨版本,允许其他版本的客户端进入服务器

mcbbs:https://www.mcbbs.net/thread-1023597-1-1.html

spigot:https://www.spigotmc.org/resources/viaversion.19254/

ViaBackwards:跨版本,兼容更低的版本

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-698692-1-1.html

spigot:https://www.spigotmc.org/resources/viabackwards.27448/

LaggRemover:优化

mcbbs(旧版本,仅供参考):https://www.mcbbs.net/thread-715006-1-1.html

官网:https://dev.bukkit.org/projects/laggremover  (可能需要魔法上网)

ScriptBlockPlus:脚本方块,点击/踩踏/挖掘时使用指令

mcbbs:https://www.mcbbs.net/thread-691900-1-1.html

spigot:https://www.spigotmc.org/resources/1-9-1-16-x-scriptblockplus-mechanics.78413/

VeinMiner:连锁挖矿

mcbbs:https://www.mcbbs.net/thread-600757-1-1.html

spigot:https://www.spigotmc.org/resources/veinminer.12038/

Marriage Master:结婚

mcbbs:https://www.mcbbs.net/thread-905947-1-1.html

spigot:https://www.spigotmc.org/resources/marriage-master-mc-1-7-1-16.19273/

IronElevators:铁块电梯

mcbbs:https://www.mcbbs.net/thread-612833-1-1.html

spigot:https://www.spigotmc.org/resources/ironelevators-1-4-6-1-16.19451/

Minecraft

Minecraft服务端配置文件

server.properties

这个文件是所有服务端(上面列出的主流服务端)都会生成的一个配置文件,位于核心Jar文件同级目录中

一些基础的参数需要在此文件中设置,下面会列出一些常用参数的用法(以1.16的为参考)

  1. allow-flight=false 允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行
  2. allow-nether=true 允许玩家进入下界
  3. difficulty=easy 定义服务器的游戏难度
  4. enable-command-block=false 是否启用命令方块
  5. level-seed= 种子
  6. level-type=default 地图所生成的类型 default:标准的世界 flat:超平坦 largebiomes:巨大生物群系
  7. max-players=20 最大玩家数量
  8. max-tick-time=60000 最大刻时长,单位毫秒,当一个游戏刻的时长超过此数值后游戏会强行停止并崩溃(paper会保存存档、插件数据),设置为-1以禁用
  9. motd=A Minecraft Server 多人游戏界面服务器的信息
  10. online-mode=true 在线模式,设置为false允许离线模式的玩家进入服务器
  11. pvp=true 玩家pvp
  12. server-ip= 服务器ip,如果你不是清楚地知道你在改什么,让它留空,不要动它
  13. server-port=25565 服务器端口,如果你要开两个服务端或者有其他程序占用了25565端口的话可以自行修改
  14. view-distance=10 服务端视距,如果卡顿的话可以减小该值,可以设置为6
  15. white-list=false 白名单,如果开启,没有添加过白名单的玩家将会无法进入服务器,如果是离线模式的服务器,添加白名单的玩家必须进入过服务器,否则即使添加了白名单,此玩家也无法进入服务器(离线服务器建议用插件或mod实现白名单)

未列出的内容见 https://minecraft.fandom.com/zh/wiki/Server.properties#Java.E7.89.88_3

bukkit.yml

基于bukkit的服务端会生成此文件,位于核心Jar文件同级目录中

配置参考wiki(英文) https://bukkit.gamepedia.com/Bukkit.yml

spigot.yml

基于spigot的服务端会生成此文件,位于核心Jar文件同级目录中

配置参考wiki(英文) https://www.spigotmc.org/wiki/spigot-configuration/

paper.yml

基于paper的服务端会生成此文件,位于核心Jar文件同级目录中

参考wiki(英文) https://paper.readthedocs.io/en/latest/server/configuration.html

中文参考

以上文件的部分内容汉化+优化参考 https://www.mcbbs.net/thread-478126-1-1.html

插件配置

插件的配置文件一般都会生成在plugins文件夹中的插件同名文件夹内

一般使用yml文件作为配置文件,具体配置方法看插件发布贴作者的说明

yml文件可以直接用文本文档打开,但是没有语法高亮,推荐使用vscode并添加yaml插件

yml语法 https://www.runoob.com/w3cnote/yaml-intro.html (推荐小白看一看,只要了解基础的语法即可)

如果reload时配置文件有语法错误,后台会报一长串错误,并且指令的返回消息可能不会正常显示

mod配置

mod的配置一般在config文件夹中的mod名开头的文件/文件夹中,1.12前文件格式为cfg,之后为toml

一般文件中会有英文注释,如果看不懂不要乱改(先去机翻

这两种文件都可以直接用文本文档打开,但是没有语法高亮,推荐使用vscode并添加对应插件

Minecraft

Minecraft服务端搭建与运行

安装Java

开服需要安装Java (64位机器装64位Java)

安装Java教程

获取核心

首先选择自己要使用的核心和游戏版本

新建一个文件夹,确保其路径没有中文

下载核心后移动到此文件夹

此处注意,forge和fabric的核心是需要通过安装获得的,其他核心大多是一个单独的Jar文件,会自动下载需要的lib文件

移动核心时

  • forge请连着 libraries 文件夹一起
  • fabric请连着 .fabric.fabric-installer 两个文件夹一起

启动

官服的jar文件可以双击打开,但是其他的核心据我所知均需要使用开服脚本,开服脚本教程

现在的文件夹中应该有核心和启动脚本两个文件

win双击start.bat启动服务器,linux在命令行中输入./start.sh (无法执行的看脚本教程中的添加权限)

启动之后如果是没有自动重启的脚本会一闪然后关闭,此时文件夹中会自动生成 eula.txt

打开 eula.txt ,将其中的 false 改成 true (注意不要打错单词),保存并关闭

此时再启动脚本,服务端会正常启动

Minecraft

Minecraft服务端核心介绍及链接

本教程仅包含Java版的核心,基岩版不在此教程范围内

官服

Mojang官方发布的服务端,不支持插件/MOD,只支持数据包

因为Mojang网站的下载不好找并且只有最新版,所以这里放一个第三方的下载链接收集站

https://mcversions.net/

插件服

插件服是只能使用插件(Plugin)的服务端核心,包括以下几个主流的核心

插件服的插件基本通用,版本向前兼容(比如支持1.13的插件,如果没有描述,多半支持1.14及以后的版本)

  1. Bukkit https://getbukkit.org/
  2. Spigot(Bukkit的分支) https://www.spigotmc.org/ (不提供最新版下载,可以自行构建或寻找第三方构建站)
  3. Paper(Spigot的分支|优化性能) https://papermc.io/downloads (粘性活塞刷物品需要手动配置paper.yml启用,刷沙机不可用,配置方法见http://e404.top:9999/?p=347
  4. Airplane(Paper的分支|优化性能) https://ci.tivy.ca/
  5. Purpur(Paper的分支|性能最好) https://purpur.pl3x.net/downloads/
  6. 其他基于Bukkit的插件服

MOD服

MOD服是只能使用MOD的服务端核心,根据加载器的不同,分为以下两种核心

  1. Forge https://files.minecraftforge.net/net/minecraftforge/forge/
  2. Fabric https://fabricmc.net/use/

两者的mod不互通(作者标注了互通的除外)

注意,使用MOD服核心时客户端连接服务端需要

  1. 服务端和客户端的加载器版本(Forge/Fabric版本)一致
  2. 服务端和客户端的服务端MOD一致
  3. 服务端和客户端的服务端MOD版本一致

插件MOD服

同时支持插件和mod的服务端核心,有以下特点

  1. 性能比纯插件/MOD服差
  2. 并非兼容所有插件和mod(不兼容不一定是不能加载,也可能是某个功能不可使用/使用时出现异常)
  3. 客户端的连接同样需要满足和上述mod服相同的条件
  4. 新手服主强烈不建议使用

包括以下几个主流核心

  1. Mohist (使用Forge的mod和Bukkit插件,支持高版本) https://mohistmc.com/download/
  2. Arclight (使用Forge的mod和Bukkit插件,支持高版本) https://github.com/IzzelAliz/Arclight/releases
  3. CatServer (使用Forge的mod和Bukkit插件,仅支持1.12.2) https://catmc.org/
  4. Magma (使用Forge的mod和Bukkit插件,写此教程时尚未支持1.16) https://github.com/magmafoundation/Magma
  5. Sponge (使用Forge的mod和Sponge插件,仅支持1.12.2) https://www.spongepowered.org/
Minecraft

Minecraft服务端教程目录

本教程只讲Java版的核心,基岩版不在此教程范围内

搭建服务端相关

核心介绍

核心是开服所必备的东西,种类繁多,这里对其做简单的分类和介绍

开服脚本

一般开服的设置都比较多,每次都用命令行启动非常麻烦,所以使用脚本

安装Forge

Forge是一种mod加载器,安装了Forge,才可以使用mod(forge的mod)

安装Fabric

Fabric是新出来(相比较Forge)的一种加载器 ,安装了Fabric,才可以使用mod(fabric的mod)

搭建服务端

从零开始搭建一个服务端

配置服务端

搭建完服务端之后对齐进行配置(服务端/插件/mod)

插件相关

插件的安装和配置

mod相关

mod的安装和配置

其他开服相关

更换核心

从一个核心换到另一个核心,或者是更新核心

更换地图

更换地图

地址/端口

端口配置和常见连接服务器失败的解决办法

内网穿透

通过内网穿透使不在一个局域网中的朋友也能链接服务端

DDNS动态解析域名

使用ddns而不是内网穿透,带宽上限就是自己网络的带宽上限,少一个中转,延迟也会更低

日志/崩溃报告

日志/崩溃报告怎么看

Minecraft

Minecraft开服脚本

总是有人不看完就跑来问我,所以把常见问题及其解决办法放到最上面

常见问题

Unrecognized VM option 'xxx'

这里是你使用的开服脚本中的某个参数,不被你的Java接受

xxx可能是 +AggressiveOpts 也可能是 +UseCompressedOops 或者是你启动脚本中的其他不被接受的参数

解决办法:

将开服脚本中的包含xxx的那一段参数删除

Unrecognized VM option '+AggressiveOpts' 就删除 -XX:+AggressiveOpts

Unrecognized VM option ' +UseCompressedOops ' 就删除 -XX:+UseCompressedOops

Could not reserve enough space for object heap

设置了过大的内存

解决办法:

将开服脚本中的内存调小(注意,32位java的可用内存受限制,只能使用最大1.4G到1.6G的内存,解决办法是更换64位的Java)

将参数换成 -Xmx1G -Xms1G

内存分配一般是给系统所有可用内存大小的2/3(给系统和其他应用留出空间),如果你电脑的内存低于1G,就不要想着开服了

页面文件太小,无法完成操作

设置了过大的内存

解决办法:

将开服脚本中的内存调小(注意,32位java的可用内存受限制,只能使用最大1.4G到1.6G的内存,解决办法是更换64位的Java)

将参数换成 -Xmx1G -Xms1G

内存分配一般是给系统所有可用内存大小的2/3(给系统和其他应用留出空间),如果你电脑的内存低于1G,就不要想着开服了

1.17及以后版本使用了低于Java16的Java

Forge的报错

Forge的报错

Fabric的报错

Fabric的报错

Paper的报错

Paper的报错

Spigot的报错

Spigot的报错

只要出现了以上图片中类似的报错,就意味着你需要使用Java16

解决办法:(二选一)

  1. 在启动脚本中指定Java路径(推荐)(方法见上面指定Java的脚本)
  2. 卸载其他版本的Java,只留Java16(不推荐)

1.16及以前版本使用了高于(包括)Java16的Java

只要出现了以上图片中类似的报错,就意味着你需要使用Java16之前的版本(不包括Java16,Java8/11等LTS版本都是不错的选择)

解决办法:(二选一)

  1. 在启动脚本中指定Java路径(推荐)(方法见上面指定Java的脚本)
  2. 卸载其他版本的Java,只留Java8/11(不推荐)

注意

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

本教程中均以server.jar作为核心名字,实际使用时请手动改成你的服务端核心jar名字

再看不到的跑来问我就要做好挨喷的准备

开服需要安装Java (64位机器装64位Java)

安装Java教程

通用

开服所用的指令就一条,一般是java开头的那一条,其他部分都是起辅助作用的,比如设置cmd窗口标题、自动重启等

这里拿一个典型的开服指令举例 java -Xmx2G -Xms2G -jar server.jar nogui

这里的 server.jar 是示例,实际使用时请手动改成核心jar的名字

Java

橙色字 java 意为使用可执行文件java,一般java需要在path中(设置path linux win),如果需要指定使用的java的话需要修改path中的java或者使用绝对路径

脚本使用绝对路径指定使用的java(点击展开)

以下的红字为修改的内容
如果你已经有开服命令了,只需要单独替换开头的 java

windows
假设java路径位于 C:\Program Files\Java\jdk1.8.0_301\bin\java
一般的脚本 java -Xmx2G -Xms2G -jar server.jar nogui
需要改为 "C:\Program Files\Java\jdk1.8.0_301\bin\java" -Xmx2G -Xms2G -jar server.jar nogui
linux(不知道是啥的不需要看)
假设java路径位于 /usr/local/jdk1.8.0_301/bin/java
一般的脚本 java -Xmx2G -Xms2G -jar server.jar nogui
需要改为 /usr/local/jdk1.8.0_301/bin/java -Xmx2G -Xms2G -jar server.jar nogui

JVM参数

红色字 -Xmx2G -Xms2g -jar 是jvm参数

设置jvm参数是开服非常重要的一环,使用的最大内存,最小内存,优化参数等都是jvm参数

-Xmx2G 设置最大可用内存为2G,这里红字的2G可以替换成其他内存大小,单位除了G之外可以用M,例如 -Xmx256M

-Xms2G 设置初始内存为2G,这里红字的2G可以替换成其他内存大小,单位除了G之外可以用M,例如 -Xms256M

-jar 意为通过jar文件启动,后面需要接文件名字,如果后面接的jar文件名字错误或者jar文件损坏则会报错

其他优化参数见 https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

MC服务端参数

紫色字 nogui 意为不显示mc自带的ui界面,不管是否添加此参数,服务端始终会将日志输出至命令行

自带的UI界面效果如下(下图是paper的,和原版略有区别)

Windows

创建脚本

在服务端文件夹新建一个txt文件,将其改名为start.bat

若文件没有显示默认的txt扩展名

编辑脚本

右键bat文件,点击编辑

打开后输入下方的开服代码

如果是新建的脚本,文件>另存为 下方的编码选择ANSI,否则中文会乱码,保存

WIN脚本示例

@ECHO OFF
@REM 作者404E
set a=0
echo ------------------------------------------------------------------
echo --                                                              --
echo --                           正在启动                           --
echo --                                                              --
echo ------------------------------------------------------------------
:start
set b = %date:~0,4%.%date:~5,2%.%date:~8,2% %time:~0,2%:%time:~3,2%:%date:~8,2%
title 服务端 重启%a%次 上次重启于%b%
set date1=%date:~0,4%%date:~5,2%%date:~8,2%
set time1=%time:~0,2%%time:~3,2%%time:~6,2%
java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
set date2=%date:~0,4%%date:~5,2%%date:~8,2%
set /a c=%time:~0,2%%time:~3,2%%time:~6,2% - %time1%
if %c% LEQ 1 (
    if %date2% == %date1% (
        echo ------------------------------------------------------------------
        echo --                                                              --
        echo --                  :( 启动异常,请检查启动参数                  --
        echo --                  或者咨询其他人,按任意键退出                 --
        echo --                                                              --
        echo ------------------------------------------------------------------
        pause>null
        exit
    )
)
set /a a=%a%+1
echo ------------------------------------------------------------------
echo --                                                              --
echo --                       将在3秒后自动重启                      --
echo --                       按任意键跳过等待                       --
echo --                      或者直接关闭服务端                      --
echo --                                                              --
echo ------------------------------------------------------------------
timeout /T 3
goto start

以上是我用的脚本,优化参数 https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

Linux步骤

创建&编辑脚本

vi start.sh

按i或insert键进入编辑模式

输入下方示例的中的脚本代码

按esc,输入:wq保存

给予可执行权限

使用 sudo chmod +x start.sh 给脚本添加可执行权限(root用户可不加sudo,直接使用chmod)

脚本示例

#!/bin/bash
#作者404E
echo '------------------------------------------------------------------'
echo '-                                                                -'
echo '-                         开始启动服务端                         -'
echo '-                                                                -'
echo '------------------------------------------------------------------'
while true;
do
    java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
    echo '------------------------------------------------------------------'
    echo '-                                                                -'
    echo '-                       服务器将在3秒后重启                      -'
    echo '-                     按 ctrl + c 停止服务端                     -'
    echo '-                                                                -'
    echo '------------------------------------------------------------------'
    for i in $(seq 3 -1 1)
    do
        echo -n "·"
        sleep 1s
    done
    echo ''
    echo '------------------------------------------------------------------'
    echo '-                                                                -'
    echo '-                         开始重启服务端                         -'
    echo '-                                                                -'
    echo '------------------------------------------------------------------'
done

以上是我用的脚本,优化参数 https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

重启时自动备份的脚本

#!/bin/bash
#作者404E
echo '------------------------------------------------------------------'
echo '-                                                                -'
echo '-                         开始启动服务端                         -'
echo '-                                                                -'
echo '------------------------------------------------------------------'
while true;
do
    java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
    # 备份
    echo '------------------------------------------------------------------'
    echo '-                                                                -'
    echo '-                     服务器将在3秒后开始备份                    -'
    echo '-                     按 ctrl + c 停止服务端                     -'
    echo '-                                                                -'
    echo '------------------------------------------------------------------'
    for i in $(seq 3 -1 1)
    do
    echo -n "·"
    sleep 1s
    done
    # 备份保留个数
    c=5
    if [ ! -d "backup" ];then
    mkdir backup
    fi
    rm -rf backup/$c.tar.gz
    for((i=$c;i>0;i--));
    do if [ -f "backup/"$i".tar.gz" ];then
    mv backup/$i.tar.gz backup/`expr $i + 1`.tar.gz
    fi done
    # 创建备份指令,可自行添加文件夹(将#去掉)
    tar -zcf backup/1.tar.gz world #world_nether world_the_end
    # 备份结束
    echo '------------------------------------------------------------------'
    echo '-                                                                -'
    echo '-                  备份完成  服务器将在3秒后重启                 -'
    echo '-                     按 ctrl + c 停止服务端                     -'
    echo '-                                                                -'
    echo '------------------------------------------------------------------'
    for i in $(seq 3 -1 1)
    do
        echo -n "·"
        sleep 1s
    done
    echo ''
    echo '------------------------------------------------------------------'
    echo '-                                                                -'
    echo '-                         开始重启服务端                         -'
    echo '-                                                                -'
    echo '------------------------------------------------------------------'
done
教程

基于sakura frp的内网穿透

首先你要知道的事情有

  1. sakura frp需要花一块钱实名才能使用
  2. 默认是有带宽限制的(人数不多的话没影响)
  3. 目前能白嫖的节点较少(好用的服务器都被白嫖的占满了)
  4. vip不是必须,但是vip节点和更高的速度确实很香
  5. frp只需要开服或者是对局域网开放的那一方才需要下载使用

注册/登录 账号

在Sakura frp的官网注册 https://www.natfrp.com/

下载frp客户端

进入管理面板 https://www.natfrp.com/user/

点击进入软件下载并选择适合自己操作系统的客户端下载

下载的exe打开并且完成安装

客户端登录

在网页上的管理面板点击进入用户信息

访问密钥默认不显示,鼠标左键点击一次后显示。选中并复制

打开安装好的客户端

创建隧道

此时你应该知道你内网穿透的端口和协议

点击左侧的隧道并且在最上方找到加号,点击创建新隧道

进入隧道创建界面后需要填写的有

  1. 本地ip (如没有特殊情况写 127.0.0.1
  2. 端口 (MC Java服务端默认 25565;Java版客户端每次对局域网开放的端口都是随机的,需要自行填写;基岩版服务端默认 19132
  3. 隧道类型 (MC Java服务端默认 TCP,基岩版服务端默认 UDP
  4. 穿透节点 (选择离自己和联机的朋友都相对较近的区域的节点,最好选择多线的服务器)

其他选项

  1. 隧道名称:留空/自己命名
  2. 备注:同上
  3. 远程端口:可以自己自定义,但是大部分端口已经有人使用,所以大概率要试好几次才能找到一个没人用的端口,故推荐留空让服务器分配

完成后点击创建,弹出的界面询问是否继续创建选择否

开启隧道 & 查看地址

此时隧道虽然创建完毕,但是需要手动开启

手动开启隧道后在左侧找到日志选项,在最下面找到隧道的映射地址,首先自己测试连接正常后即可将地址给别人,让他通过此地址进行连接

此时内网穿透已经完成

注意 & 常见问题

内网穿透的服务器数量少:除非花钱买vip,用vip节点,否则无解,满了的服务器怎么给你用?

客户端对局域网开放关闭重新开之后连接不了:每次对局域网开放的端口都是随机的,需要重新创建隧道(或者使用联机mod设置端口为固定端口)

vip流量:只是放宽了带宽限制,对于人数不是非常多的服务器来说并没有必要,在默认的带宽限制下也是可以正常游玩的

使用内网穿透进入服务器的玩家地址都是127.0.0.1,绝对不要banip,会导致所有通过内网穿透进入服务器的玩家都无法进入服务器

教程

修改DNS

DNS意义

域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。

来自百度百科 https://baike.baidu.com/item/dns/427444#viewPageContent

一般没有设置的时候DNS是运营商提供的,运营商提供的NDS更新慢,解析也慢(起码我这边是这样的)

我使用的是119.29.29.29和223.5.5.5

修改步骤

右键桌面右下角任务栏的网络图标

点击打开网络与Internet设置

点击高级网络设置中的更改适配器选项

打开后选择当前使用的网络右键

如果用的是wifi就选择WLAN,如果用的有限网络就选择以太网或者本地连接,如果不确定就都改一遍

点击Internet协议版本4(TCP/IPv4),然后点击属性

将DNS的两个选项修改为

119.29.29.29223.5.5.5

点击确定,完成dns的修改

Minecraft

安装Optifine高清修复

下载

  1. 进入Optifine官网 https://www.optifine.net/downloads
  2. 选择自己需要的版本下载(要求小版本也对应),下载时点击右侧的Mirror按钮
  3. 下载完成的文件应该是一个Jar文件

注意

服务端不需要也不能安装Optifine,如果安装了会导致无法启动

安装

原版

  1. 双击打开Optifine的Jar文件,选择安装位置为 客户端文件夹/.minecraft 文件夹

    • 如果打不开,在Jar所在的文件夹中的空白地方,按shift+右键点击在此处打开Powershell

    • 在其中输入java -jar optifineJar的完整文件名 并且回车

    • 如果不能打开可以找我询问,并附带powershell中显示的内容截图

    • 在其中输入java -jar optifineJar的完整文件名 并且回车

    • 如果不能打开可以找我询问,并附带powershell中显示的内容截图

  2. 选择 客户端文件夹/.minecraft 文件夹

  3. 点击左下角的install安装

Forge

  1. 将下载的Optifine的Jar文件移动到 游戏文件夹/.minecraft/mods
  2. 重启游戏

Fabric

  1. 下载OptiFabric
  2. 将Optifine和OptiFabric的Jar文件移动进 客户端文件夹/.minecraft 文件夹
  3. 重启游戏

更新

  1. 下载新版本的Optifine的Jar文件
    1. 通过安装方式使用的Optifine需要下载新版本的按照上面的步骤重新安装Optifine
    2. Forge在mods文件夹中找到旧的Optifine的Jar文件,删除并把新的Optifine移动到mods文件夹
    3. Fabric需要同时更新Optifine和OptiFabric,在mods文件夹中找到旧的Optifine和OptiFabric的Jar文件,删除并把新的Optifine和OptiFabric移动到mods文件夹
  2. 重启游戏