Minecraft开服的一些提示和技巧 (Linux)

1. 下载使用第三方JDK

据说 Azul Zulu 这种第三方JDK 比 OpenJDK 性能要好。

  1. 访问 https://www.azul.com/downloads ,往下翻,选好Java Version、Operating System、Architecture,点下载 。
  2. 浏览器右键复制下载链接、取消下载:

MC开服-提示和技巧-第三方JDK-获取下载链接.png3. 转到服务器SSH,运行下面命令把安装包下到你服务器上:

wget [你刚才获取到的下载链接]

4. 用包管理器把第三方JDK安装到你服务器上(我这里是apt):

apt install ./[下载过来的安装包文件名]

不知道安装包文件名的话,使用 ls (列出当前文件夹下的文件)命令即可。

2. 使用数据盘而不是系统盘

有些云服务商会把系统盘和数据盘分开,你希望把服务端存档放在数据盘上。

1. 使用fdisk -l查看系统中所有磁盘信息。(用lsblk显示所有块设备信息也行)
/* 这里省略掉一些 /dev/loop* 块 */

Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1446C59D-B388-4F17-9F44-E4B60CCC0FAC

Device       Start      End  Sectors Size Type
/dev/vda1     2048     4095     2048   1M BIOS boot
/dev/vda2     4096  2101247  2097152   1G Linux filesystem
/dev/vda3  2101248 41940991 39839744  19G Linux filesystem


Disk /dev/vdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.102 GiB, 20396900352 bytes, 39837696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

从这个示例输出上我们可以看出,/dev/vdb 是还没使用的数据盘,/dev/vda 是已挂载的数据盘。(接下来的教程将以 vdb 和 vda 做例子,实际使用时请以你的块设备名字(如/dev/sdb)为准。)

2. 用 cfdisk 对 /dev/vdb 进行一个分区(下面是分区完毕的截图)。(和 fdisk 相比,有TUI,使用“方便”点)

Minecraft开服-cfdisk.png

3. 分区完毕。使用 mkfs.ext4 /dev/vdb1指令给这个分区创建一个Ext4文件系统
4. OK!现在你就可以把这个分区挂载到一个文件夹看看效果了。

mkdir test :新建一个test文件夹

mount /dev/vdb1 ./test :挂载 /dev/vdb1 到 该目录下的 test 文件夹

lsblk 看看挂载上没有:

NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0   55M  1 loop /snap/core18/1880
loop1                       7:1    0 55.7M  1 loop /snap/core18/2812
loop2                       7:2    0 63.9M  1 loop /snap/core20/2105
loop3                       7:3    0 71.3M  1 loop /snap/lxd/16099
loop4                       7:4    0 91.9M  1 loop /snap/lxd/24061
loop5                       7:5    0 29.9M  1 loop /snap/snapd/8542
sr0                        11:0    1  364K  0 rom  /mnt/cdrom
vda                       252:0    0   20G  0 disk 
├─vda1                    252:1    0    1M  0 part 
├─vda2                    252:2    0    1G  0 part /boot
└─vda3                    252:3    0   19G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   19G  0 lvm  /
vdb                       252:16   0   20G  0 disk 
└─vdb1                    252:17   0   20G  0 part /root/test

vdb1 右边的 MOUNTPOINT 值不为空,而是/root/test,说明已经挂载上了。

cd test :转到 test 文件夹。

目前 test 文件夹被 vdb1 挂载,所以你在 test 文件夹里面做的新建、删除等操作就是对 vdb1 设备的根目录下做的操作。

原 test 文件夹下内容会被“屏蔽”。

ls test :显示 test 文件夹下的内容。 由于 test 文件夹被 vdb1 挂载,所以这个指令实际上显示的是 vdb1 设备根目录下的内容。

umount test 挂载在 test 文件夹下的文件系统 卸载掉。简单理解就是把 vdb1 卸载。这里不仅可以用 umount test 还能用 umount /dev/vdb1

5. 测试完毕!不过 mount命令 挂载的vdb1,重启就失效了 。。。

好消息! 我们可以修改 /etc/fstab 文件,让系统在启动时把 vdb1 自动挂载上,避免重启就失效的问题。

cfdisk /dev/vdb指令获取/dev/vdb硬盘下的分区信息(包括文件系统UUID)。。

Minecraft开服-cfdisk2.png

nano /etc/fstab :用 nano 编辑器打开 /etc/fstab 这个文件,这里也可以用你喜欢的编辑器如 vim。

/etc/fstab添加下面一行,来让系统在启动时自动把 [你分区文件系统的UUID] 对应的文件系统挂载到[你想要挂载到的目录]

UUID=[你分区文件系统的UUID] [你想要挂载到的目录] ext4 defaults 0 2

参见 https://wiki.archlinuxcn.org/wiki/Fstab,了解/etc/fstab以及你添加的那行文字的含义。

  • 用 MCSManager 的话,可以把实例的“工作目录”设定为 vdb1 挂载的文件夹,或者直接把 vdb1 挂载到实例当前正在使用的工作目录上
  • 可以将defaults按需修改为其他值来获取一些性能提升,参见 https://wiki.archlinuxcn.org/wiki/Fstab#atime+参数

3.以非root账户运行mc服务端

mc服务端 或许还有未被发现的安全漏洞,服务端插件也可能存在 恶意代码/安全漏洞/后门。

以root账户运行 mc服务端 有可能导致主机上的其他业务(例如数据备份脚本)被入侵。

另见 Why you shouldn’t run a Minecraft server as roothow-to-run-command-as-different-usersu

该文章摘编自 seekstar.org/Minecraft开服 ,以 知识共享署名-相同方式共享 3.0 中国大陆(CC BY-SA 3.0 CN)许可协议 分享给你。

5 1 投票
文章评分
1 评论
内联反馈
查看所有评论
危险浮莲子
2 月 前

非常好文章,使我寻星旋转

1
0
希望看到您的想法,请您发表评论x
滚动至顶部