新增关于 linux 的简单操作

This commit is contained in:
Radiation_pi 2024-06-03 23:45:11 +08:00
parent 6e8eaf6483
commit eda2e7c53b
10 changed files with 230 additions and 27 deletions

View File

@ -81,29 +81,13 @@ sidebar_position: 1
# 第五步 - 更换操作系统
Linux 比 Windows 更适合用于开服,对于 Linux 根据自己的使用经验选择即可如果没有使用经验可以先使用Ubuntu等主流系统。
无论在性能还是稳定性, Linux 比 Windows 更适合用于开服,对于 Linux 根据自己的使用经验选择即可,如果没有使用经验可以先使用 Ubuntu 等主流系统。
1. 更快的发包速度和接收速度,接入服务器速度将提升数十毫秒起,当面对假人攻击/DDOS攻击时会更加稳定
2. 更好的性能根据测试TPS能提升8-15%
3. 更低的内存占用,对于 Windows 服务器一般开机会占用1-2g内存而一般的Linux系统开机后占用往往不到 0.5Gb
4. Linux 的稳定性是 Windows 无论如何也无法比拟的;
5. Linux 安全性更高,开源系统,有社区的支持;
6. Linux 支持文件占用直接删除(也就是说可以自动更新插件,不像 Windows 那样提示文件被占用)
:::info
可能会有小伙伴说:" Linux 太难操作了,根本不会用。" 其实大多数开 Linux 服务器的服主也不是纯纯使用 Linux 编辑插件配置,那么好,我们为小白推荐三个面板辅助我们开服。
1. [MCSM](https://docs.mcsmanager.com/zh_cn/) 全名 MCSManager 是一款开源,分布式,一键部署,支持 Minecraft 和 Steam 游戏服务器 的控制面板。
2. [1Panel](https://1panel.cn/) 是新一代的 Linux 服务器运维管理面板,支持 Web 图形界面管理、快速建站、应用商店、安全可靠、一键备份等功能。
3. [宝塔面板](https://www.bt.cn/) 是一款支持Linux和Windows系统的服务器运维管理工具提供资源监控、文件管理、软件安装等功能。
:::
如果想要了解更多请前往进阶[Linux开服教程](/docs/%E8%BF%9B%E9%98%B6%E6%95%99%E7%A8%8B/Linux%E5%BC%80%E6%9C%8D/Linux%E5%BC%80%E6%9C%8D%E6%95%99%E7%A8%8B.md)
# 第六步 - 性能分析
通用的一些解决方法看来已经差不多做好了,每个服务器都有自己最导致滞后的因素,可能是实体太多,可能是玩家机器多,也可能是某些插件写的太屎... 如此,那么应该如何知道服务器为何卡顿呢?对咯! 性能分析!
如果你是个完完全全的新手,或者懒得分析,想请教别人分析应该怎么办呢? 请转跳到 [怎么让大佬帮我](怎么让大佬帮我.md)
如果你不想求助别人,亦或者你想有一些进步,请参考 [性能分析](性能分析.md)
如果你不想求助别人,亦或者你想有一些进步,请参考 [性能分析](性能分析.md)

View File

@ -12,9 +12,9 @@ sidebar_position: 2
| Minecraft 版本 | 介绍 | 下载地址直链Zulu |
|-----------------|---------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.0 - 1.16.5 | 推荐使用Java 8其他版本会出现一些问题如果使用的是SportPaper或者Beast最好用Java 21 | [Java 8 64位](https://cdn.yghpy.com/DL.Javas/zulu8.74.0.17-ca-jdk8.0.392-win_x64.msi)|
| 1.17.1 - 1.20.4 | 必须使用Java 17以上1.17 至 1.17.1可以用Java 16推荐使用Java 21(特别是LeafBeast核心) | [Java 17 64位](https://cdn.yghpy.com/DL.Javas/zulu17.50.19-ca-fx-jdk17.0.11-win_x64.msi) |
| 1.20.5 + | 必须使用Java 21以上推荐使用Java 21 | [Java 21 64位](https://cdn.yghpy.com/DL.Javas/zulu21.34.19-ca-fx-jdk21.0.3-win_x64.msi) |
| 1.0 - 1.16.5 | 推荐使用 Java 8其他版本会出现一些问题如果使用的是SportPaper或者Beast最好用Java 21 | [Java 8 64位](https://cdn.yghpy.com/DL.Javas/zulu8.74.0.17-ca-jdk8.0.392-win_x64.msi)|
| 1.17.1 - 1.20.4 | 必须使用 Java 17以上1.17 至 1.17.1可以用Java 16推荐使用Java 21(特别是LeafBeast核心) | [Java 17 64位](https://cdn.yghpy.com/DL.Javas/zulu17.50.19-ca-fx-jdk17.0.11-win_x64.msi) |
| 1.20.5 + | 必须使用 Java 21以上推荐使用Java 21 | [Java 21 64位](https://cdn.yghpy.com/DL.Javas/zulu21.34.19-ca-fx-jdk21.0.3-win_x64.msi) |
:::danger
@ -88,4 +88,4 @@ java -version
![](_images/cmd-2.png)
> 返回类似的消息即为java已安装
> 返回类似的消息即为 Java 已安装

View File

@ -1,5 +1,5 @@
{
"position": 9,
"position": 10,
"link": {
"type": "generated-index"
}

View File

@ -120,7 +120,7 @@ folia-supported: true
:::danger
Folia端对 BukkitAPI 的修改是破坏性的,你手动添加而不是插件开发者去兼容,通常加载了也是不可用的
Folia 端对 Bukkit API 的修改是破坏性的,你手动添加而不是插件开发者去兼容,通常加载了也是不可用的
这就是为什么要开启此项 Folia 端才会加载插件

View File

@ -74,7 +74,7 @@ sidebar_position: 100
- [ ] git管理服务端?
- [ ] 二分法和控制变量法排查问题
- [ ] Q机器人教程?
- [ ] 搭建Frp
- [ ] 搭建 Frp
- [ ] Skript简单教程?
- [ ] Minimessage简单讲解?

View File

@ -1,5 +1,5 @@
---
sidebar_position: 10
sidebar_position: 100
---
# 相亲墙

View File

@ -0,0 +1,24 @@
---
sidebar_position: 1
---
# Linux 开服
## 为什么选择 Linux 开服
1. 更快的发包速度和接收速度,接入服务器速度将提升数十毫秒起,当面对假人攻击/ DDOS 攻击时会更加稳定;
2. 更好的性能根据测试TPS能提升 8-15 %
3. 更低的内存占用,对于 Windows 服务器一般开机会占用1-2 GB 内存,而一般的 Linux 系统开机后占用往往不到 0.5 GB
4. Linux 的稳定性是 Windows 无论如何也无法比拟的;
5. Linux 安全性更高,开源系统,有社区的支持;
6. Linux 支持文件占用直接删除(也就是说可以自动更新插件,不像 Windows 那样提示文件被占用)
:::info
可能会有小伙伴说:" Linux 太难操作了,根本不会用。" 其实大多数开 Linux 服务器的服主也不是纯纯使用 Linux 编辑插件配置,那么好,我们为小白推荐三个面板辅助我们开服。
1. [MCSM](https://docs.mcsmanager.com/zh_cn/) 全名 MCSManager 是一款开源,分布式,一键部署,支持 Minecraft 和 Steam 游戏服务器 的控制面板。
2. [1Panel](https://1panel.cn/) 是新一代的 Linux 服务器运维管理面板,支持 Web 图形界面管理、快速建站、应用商店、安全可靠、一键备份等功能。
3. [宝塔面板](https://www.bt.cn/) 是一款支持Linux和Windows系统的服务器运维管理工具提供资源监控、文件管理、软件安装等功能。
:::

View File

@ -0,0 +1,78 @@
---
sidebar_position: 5
---
# 数据库安装
本部分讲解在命令行中安装常见数据库的方式。
## MySQL
本教程以Ubuntu24.04系统为例
在[官方网站](https://dev.mysql.com/downloads/repo/apt/)页面下载 mysql-apt-config_0.8.301_all.deb
将文件传入服务器/opt目录下然后安装输入
```
dpkg -i mysql-apt-config_0.8.30-1_all.deb
```
安装完成后使用 `apt update` 更新软件包列表
然后 `apt install mysql-community-server -y`
安装完成后输入 `mysqld --initialize console` 查看初始密码
红框部分就是初始密码
输入 `systemctl start mysql` 来启动mysql服务
然后输入 `mysql -uroot -p` 按提示输入密码登录到mysql
输入这行指令修改密码`ALTER user 'root'@'localhost' IDENTIFIED BY 'NewPassword';`
将NewPassword修改为你自己设置的密码
使用systemctl enable mysql使mysql开机自启(PS:默认自启)
:::tip
附创建数据库和创建数据库用户以及授权
创建数据库CREATE DATABASE IF NOT EXISTS XXX DEFAULT CHARACTER SET utf8mb4;
(PS:这里的XXX可以选择是你要使用数据库的插件名称也可以是自定义字符)
创建用户CREATE USER 'UserName'@'%' IDENTIFIED BY 'Password';
(PS:这里UserName填你要创建的用户名%代表所有IP地址如果MC服务端和数据库处于同一个服务器建议改成localhost以增加安全性password填要创建的用户的密码)
给用户授权数据库权限GRANT ALL PRIVILEGES ON 数据库名称.* TO 'UserName'@'%';
(PS:和上面那条差不多%可以改成localhost数据库名称就填你创建的数据库名称就行)
(PS:上述命令中的引号均不可删除,每个命令后面的";"(分号)是命令的一部分)
由于安全性设置密码必须有大小写长度8位以上并且默认关闭远程访问
如果需要设置密码强度为低,开启远程访问等不安全的操作请自行百度,对于修改安全设置之后的数据库安全问题,本站概不负责
:::
## Redis
依次在终端输入以下指令,分别操作为安装依赖、下载 Redis、将安装包放在安装路径。更新软件包安装下载好的 Redis
```
apt install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis -y
```
安装完成后输入 `systemctl start redis-server`
至此安装完成,输入 `redis-cli` 即可进入命令行管理
:::tip
使用 systemctl enable redis-server 使 Redis 开机自启
:::

View File

@ -0,0 +1,111 @@
---
sidebar_position: 3
---
# 如何保持服务器在 Linux 服务器中后台运行
由于Linux的会话机制手动启动的服务端会在ssh断开连接之后停止运行所以我们需要服务端保持后台运行。
## 方法一 screen(推荐)
使用screen创建一个虚拟的窗口运行服务端首先安装screen在终端输入
```
screen apt install screen -y
```
screen 的基础指令:
```
screen -ls # 列出所有的 screen
screen -S xxx # 创建一个名叫 xxx 的虚拟窗口(推荐以每个子服务器命名)
screen -r xxx # 进入 xxx 虚拟窗口(只能进入已创建且无人使用的 screen
screen -D xxx # 踢出正在使用 xxx 窗口的用户
screen -S xxx -X quit # 删除 xxx 窗口(在 screen 中输入 exit 也可以删除)
```
在 screen 中启动服务端,在 screen 中时,按键盘上的 Ctrl + A + D 即可返回原窗口。
推荐原因:后台运行的同时还可以在服务端控制台中查看日志,打指令
## 方法二 Systemctl
使用vim 创建 mc.service
```
vim /etc/systemd/system/mc.service
```
vim中的内容按以下配置
```
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=root
Nice=5
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=这里填工作目录路径
ExecStart=这里填启动命令
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
配置完成后输入以重新加载:
```
systemctl daemon-reload
```
然后启动服务器并设置开机启动,先后输入:
```
systemctl start mc.service
systemctl enable mc.service
```
[详细设置说明](https://blog.csdn.net/WHQ78164/article/details/132956725)
优点:可以实现自动重启,开机自启等操作
缺点:无法进入控制台打指令
## 方法三 nohup和&
&:在启动时后面加一个&
例如:./start.sh &
nohup在启动时前面加上这个
例如nohup ./start.sh > run.log 2>&1 &
详细参数:
:::tip
Start.sh: 你需要后台运行的程序
>: 日志文件追加到文件中
run.log: 运行的日志,或你的文件的输出内容
& 是一个描述符如果1或2前不加&,会被当成一个普通文件。
1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中
:::

View File

@ -0,0 +1,6 @@
{
"position": 9,
"link": {
"type": "generated-index"
}
}