1.
准备与法律合规检查
说明与准备:
- 请先确认你拥有合法使用该服务器端程序的权限(官方授权或源码许可)。
- 准备一台公网或内网主机,推荐至少4核CPU、8GB内存、50GB盘,根据并发调整。
- 确定公网IP或内网端口映射方案,准备好域名与反向解析(可选)。
2.
Windows 环境准备(前置软件)
小分段:
- 下载并安装最新的 Visual C++ Redistributable、.NET 或 Java(按服务端要求,通常为 Java 8/11 或 .NET 4.8/6)。
- 安装并配置 MySQL/MariaDB(推荐使用MySQL 5.7或8.0),设置 root 密码并开启远程访问(仅在受信网络内)。
- 安装 7-Zip、PowerShell 7 可选用于脚本自动化,关闭不必要的 Windows Defender 阻拦或添加排除。注意安全性。
3.
Linux 环境准备(前置软件)
小分段:
- 常见发行版命令:Ubuntu/Debian 使用 apt,CentOS 使用 yum/dnf。执行基础更新:Ubuntu: sudo apt update && sudo apt upgrade -y。
- 安装必要组件示例(Ubuntu):sudo apt install openjdk-11-jdk mysql-server nginx unzip -y。
- 创建服务专用用户:sudo useradd -r -s /bin/false swserver && sudo mkdir -p /opt/sw && sudo chown swserver:swserver /opt/sw。
4.
从可靠来源下载服务器文件
小分段:
- 强烈建议从官方或有授权的发布渠道下载服务器端包,避免未知来源的二进制。
- 下载后校验:如果有 SHA256 或 MD5 校验码,用 sha256sum 或 PowerShell Get-FileHash 校验文件完整性。示例 Linux: sha256sum server-package.zip。
5.
解压与目录结构规范
小分段:
- Windows:用 7-Zip 解压到 C:\Games\ShenWu 或指定目录,建议不要放在 Program Files 下以避免权限问题。
- Linux:以 swserver 用户解压:sudo -u swserver unzip server-package.zip -d /opt/sw/shenwu。
- 建议目录包含:bin/(可执行)、conf/(配置)、data/(可变数据)、logs/(日志)、backup/(备份)。
6.
数据库创建与导入
小分段:
- 在 MySQL 中创建一个专用库和用户:示例 SQL:CREATE DATABASE shenwu DEFAULT CHARSET utf8mb4; CREATE USER 'swuser'@'%' IDENTIFIED BY 'StrongPass!234'; GRANT ALL ON shenwu.* TO 'swuser'@'%'; FLUSH PRIVILEGES;
- 导入初始 SQL:mysql -u swuser -p shenwu < shenwu_schema.sql。遇到编码问题请用 --default-character-set=utf8mb4。
7.
配置文件逐项说明
小分段:
- 打开 conf/server.conf 或 config.ini,主要项:数据库连接(host/port/user/password/database)、网关端口、游戏服端口、日志级别、最大连接数。
- 修改数据库 host 为数据库主机IP,port 默认3306;调整线程数、连接池大小以配合硬件;保存备份:cp server.conf server.conf.bak。
8.
端口与防火墙设置
小分段:
- 常见端口:登陆网关(如 8000)、游戏端口(如 9000-9100)、数据库端口(3306,仅限信任IP)。
- Windows:打开 PowerShell 以管理员身份运行:New-NetFirewallRule -DisplayName "ShenWu TCP 9000" -Direction Inbound -Protocol TCP -LocalPort 9000 -Action Allow。
- Linux(Ubuntu):sudo ufw allow 9000/tcp 或 firewalld:sudo firewall-cmd --permanent --add-port=9000/tcp && sudo firewall-cmd --reload。
9.
首次启动与日志排查
小分段:
- 以调试模式启动(控制台可见日志)观察启动流程与数据库连接是否成功。Windows 双击 start.bat 或 PowerShell:.\start.ps1。Linux 切换至 swserver 用户并运行:./bin/start.sh。
- 常见错误:数据库连接失败(检查账号/密码/host/端口)、端口被占用(用 netstat/ss 查找)、依赖库缺失(查看异常栈)。
10.
服务化运行与自动重启
小分段:
- Windows:建议用 NSSM(非吸血鬼服务管理器)或 Windows 服务包装工具将启动脚本注册为服务,设置自动重启与依赖。命令行示例:nssm install ShenWu "C:\Games\ShenWu\bin\start.bat"。
- Linux:写 systemd 单元 /etc/systemd/system/shenwu.service 示例:[Unit] Description=ShenWu Server After=network.target [Service] User=swserver WorkingDirectory=/opt/sw/shenwu ExecStart=/opt/sw/shenwu/bin/start.sh Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target。随后 sudo systemctl daemon-reload && sudo systemctl enable --now shenwu。
11.
备份、监控与日志轮替
小分段:
- 数据库定期备份:使用 mysqldump,示例:mysqldump -u swuser -p shenwu | gzip > /backup/shenwu_$(date +%F).sql.gz,建议每天备份并异地保存。
- 日志轮替:使用 logrotate(Linux)配置日志大小与保留策略:/etc/logrotate.d/shenwu。Windows 可用脚本按天归档并删除旧日志。
- 监控:部署 Prometheus + Grafana 或使用 Zabbix、Cloudwatch 等跟踪 CPU、内存、连接数与响应延迟。
12.
常见优化建议与安全加固
小分段:
- 优化数据库:为频繁查询添加索引,检查慢查询日志,调整 innodb_buffer_pool_size。
- 安全:限制数据库访问源 IP、启用防火墙、关闭不必要端口、定期更新系统补丁、使用强口令或秘钥。
- 性能:使用反向代理或负载均衡(Nginx、HAProxy)做前端分发,必要时做分服与网关拆分。
13.
问:如何在Windows上把服务器设置为开机自启并自动恢复?
问:如何在Windows上把服务器设置为开机自启并自动恢复?
答:使用 NSSM 或 Windows 服务包装器将启动脚本注册为服务,设置 Recovery 策略为“第一次失败:重启服务、第二次失败:重启服务、后续失败:不采取行动”,或在服务里配置重试间隔。示例:nssm install ShenWu "C:\Games\ShenWu\bin\start.bat" 然后在服务属性->恢复中设置自动重启。
14.
问:Linux 部署后出现数据库超时怎么排查?
问:Linux 部署后出现数据库超时怎么排查?
答:检查数据库服务是否运行(systemctl status mysql),确认网络连通性(ping/ telnet dbhost 3306 或使用 mysql 客户端连接),查看服务器端与数据库端日志(/var/log/mysql/、应用日志),提高连接池超时并检查慢查询与索引,必要时调整数据库参数如 max_connections 和 innodb_buffer_pool_size。
15.
问:如何做线上版本更新与零停服策略?
问:如何做线上版本更新与零停服策略?
答:采用滚动更新与蓝绿部署:准备新版本服务器节点并加入负载均衡,逐个将旧节点从负载中摘除、升级验证后再投入;或使用短连接热重载策略将玩家迁移到维护的副本,结合备份与回滚脚本,确保更新前后数据库兼容性并演练回滚流程。
来源:覆盖Windows与Linux平台的神武马来西亚服务器下载与部署要点