# cabal-ep8-centos **Repository Path**: divib/cabal-ep8-centos ## Basic Information - **Project Name**: cabal-ep8-centos - **Description**: 在CentOS服务器上安装运行完整的 Cabal服务 + SQL Server数据库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: centos9 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2023-12-03 - **Last Updated**: 2025-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 - 系统CentOS 9 Stream 服务器版 - 配置是2H4G - [微软官方SSMS数据库管理工具](https://learn.microsoft.com/zh-CN/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16) - 哔哩哔哩 视频安装过程[BV1bcxwe3EXU](https://www.bilibili.com/video/BV1bcxwe3EXU/) - 原帖地址[centos-7-repack-cabal-server](https://forum.ragezone.com/threads/centos-9-stream-full-cabal-server-installation-centos-sql-2022-database-updated-2024.1230675/) ## [系统准备] 1. 检查你是否有一个运行防火墙。检查它的命令: ```Bash systemctl status firewalld ``` 如果显示为:活动:active (running),则转到第 2 步 如果它显示为:不活动,然后转到步骤 1.1 - 1.1. 重新启动防火墙 ```Bash systemctl enable firewalld ``` - 1.2. 启动防火墙的命令 ```Bash systemctl start firewalld ``` 重复步骤 1 以检查它是否正在运行。 - 1.3. 如果您想重新启动防火墙,请使用:`systemctl restart firewalld` 2. 更新系统: ```Bash dnf update -y ``` --- ## [端口 + 防火墙] 建议: 强烈建议使用自定义端口的开放端口,如查特诺德,登录,世界Svr*和代理商店*。 1. 允许在防火墙中的端口: ```Bash sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent ``` 以下是必需端口 [默认端口],如果您决定更改,请相应地更改 ``` - 80 - HTTP - 443 - HTTPS - 1433 - Database - 38101 - LoginSvr - 38121 - Chatnode - 38151 - AgentShop - 38111 - 38116 - Channels* - 38126 - War [170-190]* ``` 您可以通过键入打开完整的端口范围: ```Bash sudo firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --add-port=38101-38151/tcp --permanent ``` 2. 添加所有端口后,重新启动防火墙: ```Bash sudo firewall-cmd --reload ``` 3. 检查您是否添加了所需的所有端口: ```Bash firewall-cmd --list-all ``` *如果要删除端口,用命令 `sudo firewall-cmd --zone=public --remove-port=38101-38151/tcp --permanent` --- ## [安装] 安装 git ```bash dnf install git ``` 进入root目录 ```bash cd /root ``` 获取项目 ```bash git clone -b centos9 https://gitee.com/divib/cabal-ep8-centos.git ``` 进入cabal-ep8-centos目录 ```Shell cd cabal-ep8-centos ``` 赋予install.sh权限 ```Shell chmod +x install.sh ``` 运行install.sh开始安装 ```Shell ./install.sh ``` 安装过程中数据库选择免费社区版[3] 并设置 sa 密码 使用大小写+数字+特殊符号的强密码 将备份数据库移动到`/var/opt/mssql/backup` ```Shell sudo mv /root/cabal-ep8-centos/backup /var/opt/mssql/backup ``` 进入`/var/opt/mssql/backup` ```Bush cd /var/opt/mssql/backup ``` 解压数据库文件 ```Bush tar xzvf db* ``` 给数据库文件权限 ```Bush chmod +rwx *.bak ``` ### 新建数据库 使用`SSMS`数据库管理工具登录,`新建查询`,然后复制以下代码: ```sql CREATE DATABASE Account; CREATE DATABASE Authentication; CREATE DATABASE CabalCash; CREATE DATABASE CabalGuild; CREATE DATABASE EventData; CREATE DATABASE NetcafeBilling; CREATE DATABASE Server01; ``` 并单击`执行`将创建数据库 `新建查询`,然后复制以下代码,并单击`执行`将还原数据库: ```sql USE master; GO -- 还原 Account 数据库 RESTORE DATABASE [Account] FROM DISK = '/var/opt/mssql/backup/Account.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 Authentication 数据库 RESTORE DATABASE [Authentication] FROM DISK = '/var/opt/mssql/backup/Authentication.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 CabalCash 数据库 RESTORE DATABASE [CabalCash] FROM DISK = '/var/opt/mssql/backup/CabalCash.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 CabalGuild 数据库 RESTORE DATABASE [CabalGuild] FROM DISK = '/var/opt/mssql/backup/CabalGuild.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 EventData 数据库 RESTORE DATABASE [EventData] FROM DISK = '/var/opt/mssql/backup/EventData.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 Netcafebilling 数据库 RESTORE DATABASE [Netcafebilling] FROM DISK = '/var/opt/mssql/backup/Netcafebilling.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO -- 还原 Server01 数据库 RESTORE DATABASE [Server01] FROM DISK = '/var/opt/mssql/backup/Server01.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5; GO ``` ### 等待数据库还原完成 --- ## [使用说明] 安装完成后创建 / 配置 ```javascript //示例:cabal_create -s 1 [将创建1个服务器] cabal_create -s 1 ``` ```javascript //示例:cabal_create -c 2 1 [将在第1个服务器上创建2个频道] cabal_create -c 2 1 ``` ```javascript //命令cabal_config配置 cabal_config //Enter MSSQL server IP: 127.0.0.1 //Enter MSSQL server Port(默认1433):1433 //Enter MSSQL server User: sa //Enter MSSQL server Password: 你的数据库密码 //Enter IP for players to connect: 你的服务器 公网IP 或 局域网IP ``` cabal服务管理指令 ```javascript cabal_start//开启服务 cabal_stop//停止服务 cabal_status//查看运行状态 cabal_reload//重新加载实时服务器上的服务 cabal_restart//重启服务 cabal_restart -d//重新启动服务并删除所有日志* ``` 重启频道 ```bush sudo systemctl restart WorldSvr_01_01.service ``` 注册账户 选择[Account]数据库,`新建查询`,然后复制以下代码: ```sql exec dbo.cabal_tool_registerAccount '账号','密码' ``` 更改数据库客户端版本+MagicKey ```sql USE [Account]; UPDATE dbo.cabal_client_version_table SET Ver = 369, MagicKey = 543957823; ``` 重新启动数据库指令 ```Shell systemctl restart mssql-server ``` --- ## 网站架设 打算 用JS全栈 写一个,后端用NestJS,前端用React - 商城还没有好的方案,因为游戏客户端内只能用古老的网页 安装 nginx ```bash dnf install nginx ``` ### 安装 Node.js v20版本 1. **添加 NodeSource 仓库**: ```bash curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - ``` 2. **安装 Node.js**: ```bash sudo dnf install -y nodejs ``` 3. **验证安装**: ```bash node -v npm -v ``` ### 创建角色时增加符文项 - `Server01`数据库`dbo.cabal_new_character_data`设计增加 ```sql ALTER TABLE dbo.cabal_new_character_data ADD PassiveAbilityData varbinary(512) NULL, BlendedAbilityData varbinary(256) NULL ``` ```sql UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 1 UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 2 UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 3 UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 4 UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 5 UPDATE cabal_new_character_data SET PassiveAbilityData = 0x WHERE ClassType = 6 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 1 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 2 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 3 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 4 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 5 UPDATE cabal_new_character_data SET BlendedAbilityData = 0x WHERE ClassType = 6 ``` - 修改角色创建`[Server01].[dbo].[cabal_sp_newchar]` - 修改上线设置`[Server01].[dbo].[cabal_sp_SetCharLoginStt]` ## 访问局域网的共享文件 在 CentOS 9 中访问局域网的共享文件,通常有两种方式:通过 **Samba** 或 **NFS** 协议。以下是这两种方法的步骤。 ### 1. 使用 Samba 访问共享文件 Samba 允许 Linux 系统访问 Windows 共享的文件夹。 #### 步骤: 1. **安装 Samba 客户端:** 打开终端,运行以下命令安装 Samba 客户端: ```bash sudo dnf install samba-client ``` 2. **查找共享的文件夹:** 使用 `smbclient` 工具列出共享的文件夹。例如,访问一个 Windows 系统上的共享文件夹: ```bash smbclient -L // -U <用户名> ``` 输入密码后,系统将列出共享的文件夹。 3. **访问共享文件夹:** 使用 `smbclient` 访问共享文件夹: ```bash smbclient ///<共享名称> -U <用户名> ``` 登录后,您可以使用 `ls` 列出目录内容,使用 `get <文件名>` 下载文件,或者使用 `put <文件名>` 上传文件。 4. **挂载共享文件夹到本地目录:** 如果您希望将共享文件夹挂载到本地目录,使用以下命令: ```bash sudo mount -t cifs ///<共享名称> /mnt/<挂载目录> -o username=<用户名>,password=<密码> ``` 这样,您就可以在 `/mnt/<挂载目录>` 下访问共享文件。 ### 2. 使用 NFS 访问共享文件 NFS(Network File System)适用于 Linux 和 Unix 系统之间的文件共享。 #### 步骤: 1. **安装 NFS 客户端:** 运行以下命令安装 NFS 客户端: ```bash sudo dnf install nfs-utils ``` 2. **挂载 NFS 共享文件夹:** 假设共享目录为 `/shared_folder`,NFS 服务器的 IP 为 ``,在本地挂载点 `/mnt/nfs` 上访问: ```bash sudo mount -t nfs :/shared_folder /mnt/nfs ``` 挂载成功后,您就可以通过 `/mnt/nfs` 访问共享文件。 ### 3. 自动挂载共享文件夹(可选) 如果您希望共享文件夹在系统启动时自动挂载,可以编辑 `/etc/fstab` 文件,添加类似以下的行: #### 对于 Samba: ```bash ///<共享名称> /mnt/<挂载目录> cifs username=<用户名>,password=<密码>,iocharset=utf8 0 0 ``` #### 对于 NFS: ```bash :/shared_folder /mnt/nfs nfs defaults 0 0 ``` 编辑完后保存并退出,运行以下命令使更改生效: ```bash sudo mount -a ``` 这样就能方便地访问局域网共享文件了。