美文网首页
Minecraft服务器

Minecraft服务器

作者: 梅林怒伯爵笑 | 来源:发表于2020-02-14 19:54 被阅读0次

    为了维持minecraft server的运行,需要screen(防止退出终端进程终端)

    sudo apt-get install screen
    

    安装screen

    mkdir一个新文件夹,就叫minecraft

    然后cd到minecraft

    https://minecraft.net/en-us/download/server里的jar包下载下来,上传到minecraft文件夹

    把代号minecraft的进程加入screen里

    screen -S "minecraft"
    

    在screan里执行开服命令(前提是得有jar包)

    java -Xmx1024M -Xms1024M -jar server.jar nogui
    

    退出screen需要ctrl+A+D。查看screen任务用screen -ls,进入某个进程使用screen -r <screen_id>

    接下来有个很有趣的问题,如果出现了如下错误

    [Server thread/INFO]: Starting minecraft server version 1.12.2
    [Server thread/INFO]: Loading properties
    [Server thread/WARN]: server.properties does not exist
    [Server thread/INFO]: Generating new properties file
    [Server thread/WARN]: Failed to load eula.txt
    [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
    [Server thread/INFO]: Stopping server

    这个时候ls mineraft目录,会发现有一个eula.txt文档。打开eula.txt,会有个链接直指https://account.mojang.com/documents/minecraft_eula,根据网页内容和之前错误提示的You need to agree to the EULA in order to run the server. Go to eula.txt for more info.,猜测应该是类似于“我同意XX条款”之类的文章。
    再次看eula.txt,最后一行是

    eula=false

    很典型的布尔值,那么把false改为true

    eula=true

    再次执行

    java -Xmx1024M -Xms1024M -jar server.jar nogui
    

    如果出现如下提示,则说明部署成功

    [Server thread/INFO]: Starting minecraft server version 1.12.2
    [Server thread/INFO]: Loading properties
    [Server thread/INFO]: Default game type: SURVIVAL
    [Server thread/INFO]: Generating keypair
    [Server thread/INFO]: Starting Minecraft server on *:25565
    [Server thread/INFO]: Using epoll channel type
    [Server thread/INFO]: Preparing level "world"
    [Server thread/INFO]: Loaded 488 advancements
    [Server thread/INFO]: Preparing start region for level 0
    [Server thread/INFO]: Preparing spawn area: 4%
    [Server thread/INFO]: Preparing spawn area: 6%
    [Server thread/INFO]: Preparing spawn area: 10%
    [Server thread/INFO]: Preparing spawn area: 13%
    [Server thread/INFO]: Preparing spawn area: 18%
    [Server thread/INFO]: Preparing spawn area: 23%
    [Server thread/INFO]: Preparing spawn area: 29%
    [Server thread/INFO]: Preparing spawn area: 35%
    [Server thread/INFO]: Preparing spawn area: 42%
    [Server thread/INFO]: Preparing spawn area: 49%
    [Server thread/INFO]: Preparing spawn area: 57%
    [Server thread/INFO]: Preparing spawn area: 65%
    [Server thread/INFO]: Preparing spawn area: 73%
    [Server thread/INFO]: Preparing spawn area: 80%
    [Server thread/INFO]: Preparing spawn area: 89%
    [Server thread/INFO]: Preparing spawn area: 98%
    [Server thread/INFO]: Done (18.470s)! For help, type "help" or "?"

    minecraft目录下会有一个server.properties,这是服务器配置各种参数的文件。具体配置参考我的世界wiki,server.proties具体参数如下:

    max-tick-time=60000 #设置每个tick花费的最大毫秒数。
    generator-settings= #本属性质用于自定义超平坦世界的生成。详见超平坦世界和自定义了解正确的设定及例子。
    force-gamemode=false #强制玩家加入时为默认游戏模式。false - 玩家将以退出前的游戏模式加入。true - 玩家总是以默认游戏模式加入。
    allow-nether=true #允许玩家进入下界。false - 下界传送门不会生效。true - 玩家可以通过下界传送门前往下界。
    enforce-whitelist=false
    gamemode=0 #定义默认游戏模式。0 - 生存模式。1 - 创造模式。2 - 冒险模式(仅在12w22a之后,或正式版1.3之后可用)。3 - 旁观模式(仅在14w05a之后,或正式版1.8之后可用)。
    broadcast-console-to-ops=true
    enable-query=false #允许使用GameSpy4协议的服务器监听器。它被用于收集服务器信息。
    player-idle-timeout=0 #如果不为0,服务器将在玩家的空闲时间达到设置的时间(单位为分钟)时将玩家踢出服务器。单位:分钟。
    difficulty=1 #default=1 定义服务器的游戏难度。0 - 和平。1 - 简单。2 - 普通。3 - 困难。
    spawn-monsters=true #决定攻击型生物(怪兽)是否可以生成。true - 可以。只要满足条件的话怪物就会生成。false - 禁用。不会有任何怪物。如果difficulty = 0(和平)的话,本属性值不会有任何影响。
    op-permission-level=4 #设定OP的权限等级。1 - OP可以无视重生点保护。2 - OP可以使用单人游戏作弊命令(除了/publish,因为不能在服务器上使用,/debug也是)并使用命令方块。命令方块和领域服服主/管理员有此等级权限。3 - OP可以使用几乎所有多人游戏限定的命令(除第4级专用命令)。4 - OP可以使用所有命令,包括/stop、/save-all、/save-on和/save-off。
    pvp=true #是否允许PvP。玩家自己的箭也只有在允许PvP时才可能伤害到自己。true - 玩家可以互相残杀。false - 玩家无法互相造成伤害。
    snooper-enabled=true #自1.3正式版之后,一旦启用,将允许服务端定期发送统计数据到http://snoop.minecraft.net。false - 禁用数据采集。true - 启用数据采集。
    level-type=DEFAULT #确定地图所生成的类型。DEFAULT - 标准的世界带有丘陵,河谷,海洋等。FLAT - 一个没有特色的平坦世界,适合用于建设。LARGEBIOMES - 如同预设世界,但所有生态系都更大(仅快照12w19a,或正式版1.3之后可用)。AMPLIFIED - 如同预设世界,但世界生成高度提高(仅快照13w36a,或正式版1.7.2之后可用)。CUSTOMIZED - 自快照14w21b以來,服务器也支持自定义地形。使用方法是在generator-settings贴上代码。
    hardcore=false #一旦启用,玩家在死后会自动被服务器封禁(即开启极限模式)。
    enable-command-block=false #开启命令方块。
    max-players=20 #最大玩家数量
    network-compression-threshold=256 #默认会允许n-1字节的数据包正常发送, 如果数据包为 n 字节或更大时会进行压缩。 所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将会得不偿失。-1 - 永久禁用数据包压缩。0 - 压缩全部数据包。
    resource-pack-sha1= #资源包的SHA-1值,必须为小写十六进制,建议填写它,这还没有用于验证资源包的完整性,但是它提高了资源包缓存的有效性和可靠性。
    max-world-size=29999984 #设置世界边界的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置得更大,但不会超过这里设置的最大方块限制。如果设置的 max-world-size 超过默认值的大小,那将不会起任何效果。
    server-port=25565 #端口号。
    server-ip= #服务器IP,可以填写0.0.0.0,也可以留空。
    spawn-npcs=true #决定是否生成村民。true - 生成村民。false - 不会有村民。
    allow-flight=false #是否允许飞行。false - 不允许飞行。悬空超过5秒的玩家会被踢出服务器。true - 允许飞行。玩家得以使用飞行MOD飞行。
    level-name=world #“level-name”的值将作为世界名称及其文件夹名。该参数使用Unicode字符。你也可以把你已生成的世界存档复制过来,然后让这个值与那个文件夹的名字保持一致,服务器就可以载入该存档。部分字符,例如 ' (单引号)可能需要在前面加反斜杠号 \ 才能被正常应用。
    view-distance=10 #玩家可视区块距离。
    resource-pack= #可选选项,可输入指向一个资源包的URI。玩家可选择是否使用该资源包。
    spawn-animals=true #决定动物是否可以生成。true - 动物可以生成。false - 动物生成后会立即消失。
    white-list=false #服务器的白名单。当启用时,只有白名单上的用户才能连接服务器。白名单主要用于私人服务器,例如相识的朋友等。false - 不使用白名单。true - 从 whitelist.json 文件加载白名单。
    generate-structures=true #定义是否在生成世界时生成结构(例如村庄)。false - 新生成的区块中将不包含结构。true - 新生成的区块中将包含结构。
    online-mode=true #在线正版验证。true - 启用。服务器会认为自己具有 Internet 连接,并检查每一位连入的玩家。false - 禁用。服务器不会检查玩家。
    max-build-height=256 #玩家在游戏中能够建造的最大高度。地形生成算法并不会受这个值的影响。
    level-seed= #地图生成种子。
    use-native-transport=true #是否使用针对Linux平台的数据包收发优化,此选项仅会在Linux平台下生成。true - 启用。false - 禁用。
    prevent-proxy-connections=false #如果服务器发送的和Mojang的验证服务器的ISP/AS不一样,玩家将会被踢出。true - 服务器将会禁止玩家使用VPN或代理。false - 服务器将不会禁止玩家使用VPN或代理。
    enable-rcon=false
    motd=A Minecraft Server #服务器信息,使用Unicode字符。
    

    其中server-ip本是空值,最好设置参数为0.0.0.0

    如果更改了server.properties文件,配置却没有在服务器上表现出来,则需要/stop,以此中断服务,再用java开服命令重新开启服务器

    另外还有一点值得注意,如果开服的时候出现

    **** FAILED TO BIND TO PORT!
    [Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
    [Server thread/WARN]: Perhaps a server is already running on that port?
    [Server thread/INFO]: Stopping server

    则很有可能是之前搭过我的世界服务器,但进程在screen里没有被杀掉,导致端口或服务被占用。那么杀掉原来的我的世界就可以了

    killall screen
    

    这条命令可以杀死所有screen里的进程
    然后重新执行

    java -Xmx1024M -Xms1024M -jar server.jar nogui
    

    screen基本命令

    安装

    sudo apt-get install screen
    

    新建一个名为minecraft的screen shell

    screen -S minecraft
    

    查看所有screen shell(处于Attached状态的会话只能加入。处于Detached状态的会话既能加入,也能还原)

    sreen -ls
    

    进入minecraft screen shell

    screen -r minecraft
    

    相关文章

      网友评论

          本文标题:Minecraft服务器

          本文链接:https://www.haomeiwen.com/subject/cnijfhtx.html