1. 机房与线路选择(先决条件)
- 选择马来西亚(吉隆坡)节点:优先本地玩家延迟最低的机房,如 TM, TIME, Celcom 联网良好的机房。
- 测试网络:使用 mtr 或 ping 测试到玩家常见 ISP 的延迟和丢包(示例:mtr -rwzbc100 203.x.x.x)。
- 确认带宽与 DDoS 防护等级:询问托管商是否有专门游戏防护(带宽清洗、黑洞阈值、按包而非按流量计费)。
2. 服务器规格与镜像选择
- CPU/内存选择:TK类实时游戏优先 4 核以上,16GB+ 内存;IO 密集型使用 NVMe。
- 操作系统建议:Ubuntu LTS(20.04/22.04)或 Debian 稳定版;若厂商提供镜像,尽量选最小化镜像。
- 磁盘与快照:启用自动快照或自定义快照策略(每日或每 6 小时一份,根据更新频率)。
3. 基础系统加固(安装后首要操作)
- 建立非 root 管理账号并禁用 root SSH:adduser admin && usermod -aG sudo admin;编辑 /etc/ssh/sshd_config,PermitRootLogin no;然后 systemctl restart sshd。
- 配置 SSH Key:在本地生成 ssh-keygen -t ed25519,然后将公钥追加到 /home/admin/.ssh/authorized_keys。
- 修改默认 SSH 端口(可选)并使用 UFW/iptables 限制来源 IP。
4. 防火墙与入侵防御实操
- 使用 UFW(Ubuntu 示例):apt update && apt install ufw -y;ufw default deny incoming;ufw default allow outgoing;ufw allow 22/tcp(若更换端口相应修改);ufw allow 端口/tcp(游戏端口);ufw enable。
- 安装 fail2ban:apt install fail2ban -y;复制并编辑 /etc/fail2ban/jail.local,设置针对 ssh、game 服务的监控和 ban 时间。
- 应用 iptables 限制 SYN 洪泛:iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT。
5. DDoS 与网络层防护策略
- 在托管商控制台启用 Anti-DDoS/清洗服务,设置阈值(如 100Mbps 或基于包率)。
- 对静态内容使用 CDN(若游戏有客户端下载/更新),考虑 Cloudflare Spectrum 或类似的游戏私有通道。
- 设置流量报警:在控制台和监控系统设置带宽阈值报警,超过立即通知并触发应急流程。
6. 服务管理与自动化运维步骤
- 使用 systemd 管理游戏进程:创建 /etc/systemd/system/tkserver.service 示例文件,ExecStart 指向启动脚本,Restart=always。然后 systemctl daemon-reload && systemctl enable --now tkserver。
- 自动更新与补丁:对于安全更新启用 unattended-upgrades(apt install unattended-upgrades),并在测试环境验证后再到生产应用重大内核更新。
- 日志轮换与监控:配置 logrotate(/etc/logrotate.d/yourgame),并将关键日志通过 rsyslog/Fluentd 汇总到远端日志服务器。
7. 备份、恢复与数据一致性实操
- 数据库备份:使用 mysqldump 或 mariadb 客户端,示例 crontab 每小时增量备份:0 * * * * /usr/bin/mysqldump -u root -p'密码' game_db | gzip > /backup/game_db_$(date +\%F_\%H).sql.gz。
- 文件备份:使用 rsync 增量同步到异地存储(另一个区域或 S3);示例脚本 rsync -az --delete /game/data backup@remote:/backups/game/。
- 恢复演练:定期(至少月度)在测试机上模拟还原,验证备份可用性与时延。
8. 监控与报警配置(可操作清单)
- 部署 node_exporter 与 node_exporter 服务,Prometheus 抓取指标,Grafana 创建仪表板(CPU、内存、磁盘、网络、游戏并发)。
- 关键报警:CPU > 85%(5min)、带宽异常上升、游戏进程退出、磁盘剩余 < 10GB;报警渠道配置到 Slack/Telegram/电话。
9. 账户、权限与审计
- 限制服务账户权限,不用 root 运行游戏进程,创建专用用户 gameuser,设置文件夹所属:chown -R gameuser:gameuser /game。
- 启用审计:安装 auditd,配置 /etc/audit/audit.rules 记录关键文件访问与 su/sudo 使用情况,定期检查 /var/log/audit/audit.log。
10. 日常运维检查表(每日/每周/每月)
- 每日:查看业务日志、监控面板、备份成功状态、异常报警处理记录。
- 每周:更新系统补丁(非紧急),重启测试、验证自动备份完整性。
- 每月:演练恢复、复查防护规则、与托管商确认网络异常记录、清理无用快照。
11. Q1:选择马来西亚服务器时最容易被忽视但关键的点是什么?
- 回答:常被忽视的是“本地 ISP 的互联质量”和“托管商的清洗能力”。建议做从玩家常用 ISP 到服务器的 mtr 测试,确认丢包和跳点;同时查清清洗阈值与响应流程,签好 SLA。
12. Q2:遇到 DDoS 时我应该按什么顺序处理?
- 回答:第一,立刻联系托管商启用清洗/黑洞策略;第二,临时调整防火墙限速和丢弃非必要端口;第三,转移静态内容到 CDN;第四,启动应急备份与日志抓取以便事后分析。
13. Q3:如何在不影响玩家体验下做系统补丁与重启?
- 回答:使用蓝绿或滚动重启:准备二套实例(或副本),先把流量切到副本并更新主服,验证无问题后再切回;若仅单实例,可在低峰时段做短暂停服并提前公告与备份。
来源:游戏服主理人挑选tk马来西亚服务器推荐时的运维与安全要点