更多操作
开MC服指的是 建立Minecraft多人游戏服务的行为。
该条目旨在以简明、通俗易懂的方式讲解开MC服的多种常用方式。
想要开MC服,先拥有下列基本的“物资”。
- 一个可以稳定运行MC服务端软件的环境。
- 一个可以将你运行的MC服务端软件暴露在互联网(公网)上,方便你MC服未来的玩家们与其建立连接的网络环境。
其中,MC服务端软件负责模拟世界的运行,它还开放了一个通讯端口,监听来自玩家的连接请求。玩家与MC服务端软件建立连接后,MC服务端就会处理玩家发送的各种交互动作,并将世界状态实时更新到玩家客户端上。[1]
接下来为你讲述常用的多种开MC服的方式。
方法一:租用云服务器
这类物资(24x7稳定运行xx的环境、把你的MC服务端软件暴露在互联网上的网络环境)通常可以通过云服务商购得。
云服务商是指提供基于互联网的各种计算资源和服务的公司。它们允许个人、企业和组织通过网络访问和使用计算能力、存储空间以及其他服务,而无需在本地购买和维护硬件设备。云服务商通常提供多种服务,包括计算实例、存储、数据库、网络、人工智能服务等。[1]
1. 云服务器
我们可以把 "云服务器" 想象成一种在互联网上可租用的计算机。它不同于你的常规电脑,你无法实物接触到它,但是你可以通过互联网来控制和操作它。
云服务器也被称为 "虚拟私人服务器"(Virtual Private Server, VPS),它的操作方式类似于你家里或者办公室的电脑。你可以安装操作系统、运行应用程序、存储数据、在网络上访问等。
具体来说,云服务器有以下几个主要特点:
- 弹性资源: 你可以根据需要增加或减少云服务器的 (CPU, 内存, 磁盘存储)等资源,而不需要关闭或重装系统。
- 按需付费: 你只需要为你实际使用的资源付费,而不是所有资源。这种 "按需付费" 的价格模式使得云服务器成为一种非常高效且经济的解决方案。
- 可靠性和安全性: 由于云服务器是在数据中心中提供的,因此它们通常比传统的服务器更安全、更可靠。如果硬件发生故障,服务提供商通常会自动将你的云服务器迁移到其他硬件,以避免服务中断。
- 全球访问: 由于云服务器位于互联网上,因此无论你在世界的哪个角落,只要有互联网连接,你就可以访问并操作云服务器。
这些特点使云服务器成为网站托管、数据存储、数据分析、远程工作和学习、互联网应用开发等许多应用的理想选择。[1]
看完了GPT对云服务器的介绍,相信你对云服务器这个概念已经有不少了解了!!那么,对开MC服这个需求来讲,云服务器
- 不仅可以稳定地运行你的MC服务端软件,
- 它的 全球访问 的特点也可以让你MC服的玩家们轻松地访问你开的服!
[TODO]
相关链接 | MCSM面板管理软件介绍页 |
相关云服务商链接 | [TODO] |
2. 面板服
一些云服务商注意到了小白开MC服的需求,推出了所谓的面板服。
面板服基于云服务器,但是是预先为你调试配置好了。有些云服务商甚至还有按天付费的套餐,专门针对偶尔与朋友玩一次的这种需求的人。
一般购买面板服后,只需要进入管理网站,填入云服务商给你的账号和密码登录就能使用了,甚是方便。
相关云服务商链接 | 简幻欢长期免费开服 雨云 |
方法二:内网穿透
1. 使用家里的多余计算设备 + 内网穿透
就是把设备当上面的云服务器使了,但家里的网一般不能“将你运行的MC服务端软件暴露在互联网(公网)上”,所以需要内网穿透才能让你服务器的玩家访问到你的服务端。
特点 | 长期开服挺省钱 |
相关链接 | MCSM面板项目介绍页 |
相关内网穿透服务商链接 | Openfrp Sarufa Frp |
2.
[ToDO]
提示和技巧(Linux)
下载使用第三方JDK
据说 Azul Zulu 这种第三方JDK 比 OpenJDK 性能要好。
1. 访问 https://www.azul.com/downloads ,往下翻,选好Java Version、Operating System、Architecture,点下载
2. 浏览器右键复制下载链接、取消下载:
3. 转到服务器SSH,运行下面命令把安装包下到你服务器上:
wget [你刚才获取到的下载链接]
4. 用包管理器把第三方JDK安装到你服务器上(我这里是apt):
apt install ./[下载过来的安装包文件名]
不知道安装包文件名的话,使用 ls
(列出当前文件夹下的文件)命令即可。
使用数据盘而不是系统盘
有些云服务商会把系统盘和数据盘分开,你希望把服务端存档放在数据盘上。
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,使用“方便”点)
3. 分区完毕。使用 mkfs.ext4 /dev/vdb1
指令给这个分区创建一个Ext4文件系统。
4. 好啦好啦!现在你就可以把这个分区挂载到一个文件夹看看效果了。
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)。。
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+参数