有一定计算机操作基础,渴望体验自定义游戏乐趣的技术爱好者。
重要警示: 本教程仅用于技术交流与学习。搭建/运营未经授权的涉及侵害游戏公司著作权,存在极高法律风险,可能导致民事诉讼甚至刑事责任。强烈建议仅搭建于个人内部测试环境,请自觉遵守法律法规。
一、准备工作:兵马未动,粮草先行
硬件准备:
服务器/个人电脑: 需稳定联网(推荐固定公网IP或做好内网穿透)。建议配置:Windows Server(推荐)或Linux(需更强技术);四核以上CPU;8GB+内存(视规模而定);50GB+硬盘空间。
软件弹药:
服务端文件: 这是核心!(来源需自行寻找,网络上存在多种历史版本的泄露文件)。通常包含/server/目录(存放核心配置文件)、/gamedbd/、/gacd/、/gdeliveryd/、/gfactiond/等关键服务程序。重要:不同来源服务端结构/配置可能不同!
数据库系统: MySQL或MariaDB(版本建议5.5.x,兼容性最好)。安装并设置好root密码(或新建专用用户)。
数据库管理工具: Navicat / HeidiSQL / phpMyAdmin(可视化管理更便捷)。
数据库初始化文件: 服务端通常会附带.sql文件(如pwdb.sql)用于创建初始数据库结构和数据。
游戏客户端: 与服务端版本匹配的《完美世界》或《完美国际》客户端(版本号需一致)。
必要工具: 文本编辑器(Notepad++/VS Code)、压缩解压软件(7-Zip/WinRAR)。
二、服务器环境与数据库搭建
安装与配置数据库:
安装MySQL/MariaDB。记牢root密码。
打开数据库管理工具(以Navicat为例):
新建连接:填入服务器地址(通常是localhost或127.0.0.1)、端口(默认3306)、root用户名和密码。
新建数据库: 创建一个新的空数据库,例如命名为pwdb(名称可自定义,需与后续配置一致)。
导入初始数据: 在新建的pwdb数据库上执行“运行SQL文件”功能,选择服务端附带的pwdb.sql等初始化脚本执行。耐心等待导入完成。
开放服务器端口:
游戏通信依赖特定端口(常见如29000, 29400, 8080等,具体查看服务端配置)。
Windows:
控制面板 -> 系统和安全 -> Windows Defender防火墙 -> 高级设置。
“入站规则” -> 新建规则 -> 端口 -> TCP -> 填入端口列表(或范围)-> 允许连接。
Linux:
使用iptables或firewalld命令开放端口。
示例(CentOS使用firewalld):sudo firewall-cmd --permanent --add-port=29000-29100/tcp (开放一段端口范围)。
重载防火墙配置:sudo firewall-cmd --reload。
三、服务端配置:让服务器“认识”你的设置
这是最核心也最容易出错的部分!
定位核心配置文件:
打开你解压的服务端文件包。
关键目录通常位于/server/或根目录下叫config/或table/的文件夹里。
核心配置文件包括:
serverlist(或servers.conf):定义服务器列表、IP、端口信息。
gdeliveryd文件夹下的配置文件:如gdeliveryd.conf,管理登录验证、网关信息。
gamedbd文件夹下的配置:数据库连接设置(重中之重!)。
uniquenamed(有些版本叫gamed)文件夹下的dbgms.conf:另一个数据库连接点。
修改数据库连接配置:
找到gamedbd目录下的dbserver.conf或类似文件。
查找包含以下关键信息的段落:
<connection>
<db>pwdb</db> <!-- 数据库名,改成你创建的 -->
<host>127.0.0.1</host> <!-- 数据库服务器地址(本地即127.0.0.1) -->
<port>3306</port> <!-- MySQL端口 -->
<user>root</user> <!-- 数据库用户名 -->
<password>your_db_password</password> <!-- 对应用户的密码 -->
<auto_commit>1</auto_commit>
</connection>
同理,修改uniquenamed/gamed/dbgms.conf:
game_db_host = 127.0.0.1
game_db_port = 3306
game_db_user = root
game_db_password = your_db_password
game_db_name = pwdb
务必确保配置准确!用户名、密码、数据库名、端口必须与你第一步设置完全一致! 这是大部分连接失败的根源。
修改服务器信息配置:
打开serverlist文件(位置因端而异,可能在根目录或/server/下)。
修改默认IP地址:
# 示例格式 (常见)
[GameServer]
type = tcp
ip = 127.0.0.1 <!-- 改成你的服务器公网IP或内网IP -->
port = 29000
name = MyPWServer <!-- 服务器显示名称 -->
...
需要修改所有127.0.0.1为你的服务器IP,并检查端口是否开放。
其他配置文件(如gdeliveryd.conf)中涉及的IP通常也需修改为服务器IP(通常只有一个地方定义了对外IP)。
四、客户端连接设置:打通最后一公里
定位客户端入口点:
找到官方游戏客户端安装目录。
寻找patcher_server文件(无扩展名或.txt)或serverlist.txt。它决定了客户端启动时连接哪个服务器列表。
编辑入口文件:
用文本编辑器(Notepad++等)打开patcher_server或serverlist.txt。
将内容替换为指向你的登录信息:
<server>
<id>1</id>
<name>我的名字</name>
<ip>你的服务器公网IP</ip> <!-- 修改为你服务器的IP -->
<port>8080</port> <!-- 通常为8080端口 -->
<version>您的客户端版本号</version> <!-- 确保和服务端一致 -->
</server>
保存文件(可能需要管理员权限)。
启动游戏:
直接运行官方客户端的elementclient.exe(或对应的可执行文件)。
重要: 首次启动后,系统可能提示生成新的userdata文件夹覆盖配置,此时需要重新编辑patcher_server/serverlist.txt文件(因为会被自动重置)。推荐先备份改好的文件。
五、启动服务器!见证奇迹(或排查问题)
启动顺序至关重要:
进入服务端根目录。
按顺序运行以下关键服务(通常有批处理文件start.bat或具体脚本):
gacd 或 authd: 认证中心
gdeliveryd: 登陆网关/登录服务器 (必须第二步运行)
gamedbd: 游戏数据库服务 (核心数据存储)
uniquenamed 或 gamed: 角色名管理/游戏逻辑服务器
gfactiond: 帮派/阵营服务
Windows: 通常直接运行start.bat或按顺序双击各个.bat文件。观察每个窗口的启动日志,看是否有“Successfully Started” 或类似成功信息。
Linux: 使用./命令运行对应的服务脚本(.sh或二进制文件),注意权限问题。
启动客户端验证:
启动配置好的客户端尝试登录。
六、常见问题排查(新手必看)
服务程序启动立刻崩溃/闪退:
日志文件: 首先检查服务端目录下各个服务对应的log文件夹中的错误日志(.log或.txt文件)。关键提示都在这里!
端口冲突: 用netstat -ano(Win)或lsof -i:端口号/netstat -tulpn | grep 端口号(Linux)检查端口是否已被占用。
依赖库缺失: Win需安装VC++运行库(2005-2015或更新)。Linux确保lib32兼容库已装(sudo apt-get install lib32z1 lib32stdc++6)。
配置文件错误: 再次核对所有配置文件的路径、语法(空格、引号、注释符号)。
权限不足: Win以管理员身份运行.bat,Linux使用sudo或设置好用户权限。
客户端连接失败/超时/断开:
防火墙拦截: 确认服务器防火墙已开放所需端口(29000, 29400, 8080等)。客户端电脑防火墙也可能阻止。
IP地址错误: 反复检查服务端所有配置文件中的IP地址是否为服务器的正确公网IP(非局域网IP)。客户端patcher_server里的IP也必须一致。
端口未映射: 服务器在局域网内?需在路由器设置端口转发(Port Forwarding/NAT),转发上述端口到服务器局域网IP。
服务启动顺序错/未启动: gdeliveryd必须早于gamedbd启动。观察所有服务的启动日志是否有ERROR信息。
客户端版本与服务端不匹配: 需严格一致!找不到对应客户端可尝试修改服务端的serverlist文件中的<version>字段来匹配(非万能)。
登录后提示密码错误/账号不存在:
数据库问题。检查gamedbd和dbgms.conf中的数据库连接配置(用户名、密码、数据库名、IP端口)100%准确。
确保pwdb库已正确导入初始SQL数据。
初始账号常在tbl_account或accounts表里。密码可能是明文或MD5加密。尝试初始默认账号密码(如test/test)。
杀毒软件误报:
服务端程序常被误判为病毒。添加服务端目录到杀软白名单/信任区。
重要提醒:技术有边界,法律无侥幸
合法性: 本质上是对游戏公司知识产权的侵害。仅限个人研究学习,勿传播、勿开放注册、勿充值收费。
安全性: 来源不明的服务端程序可能存在后门、病毒或漏洞风险,请谨慎评估来源。
学习态度: 架设失败是常态,解决问题才能成长。耐心阅读日志,善用搜索引擎,不懂关键词就搜!
按照此教程步骤操作,大多数常见问题都能找到解决方案。享受技术带来的乐趣,但也请坚守法律底线。祝你架设顺利!
重要警示: 本教程仅用于技术交流与学习。搭建/运营未经授权的涉及侵害游戏公司著作权,存在极高法律风险,可能导致民事诉讼甚至刑事责任。强烈建议仅搭建于个人内部测试环境,请自觉遵守法律法规。
一、准备工作:兵马未动,粮草先行
硬件准备:
服务器/个人电脑: 需稳定联网(推荐固定公网IP或做好内网穿透)。建议配置:Windows Server(推荐)或Linux(需更强技术);四核以上CPU;8GB+内存(视规模而定);50GB+硬盘空间。
软件弹药:
服务端文件: 这是核心!(来源需自行寻找,网络上存在多种历史版本的泄露文件)。通常包含/server/目录(存放核心配置文件)、/gamedbd/、/gacd/、/gdeliveryd/、/gfactiond/等关键服务程序。重要:不同来源服务端结构/配置可能不同!
数据库系统: MySQL或MariaDB(版本建议5.5.x,兼容性最好)。安装并设置好root密码(或新建专用用户)。
数据库管理工具: Navicat / HeidiSQL / phpMyAdmin(可视化管理更便捷)。
数据库初始化文件: 服务端通常会附带.sql文件(如pwdb.sql)用于创建初始数据库结构和数据。
游戏客户端: 与服务端版本匹配的《完美世界》或《完美国际》客户端(版本号需一致)。
必要工具: 文本编辑器(Notepad++/VS Code)、压缩解压软件(7-Zip/WinRAR)。
二、服务器环境与数据库搭建
安装与配置数据库:
安装MySQL/MariaDB。记牢root密码。
打开数据库管理工具(以Navicat为例):
新建连接:填入服务器地址(通常是localhost或127.0.0.1)、端口(默认3306)、root用户名和密码。
新建数据库: 创建一个新的空数据库,例如命名为pwdb(名称可自定义,需与后续配置一致)。
导入初始数据: 在新建的pwdb数据库上执行“运行SQL文件”功能,选择服务端附带的pwdb.sql等初始化脚本执行。耐心等待导入完成。
开放服务器端口:
游戏通信依赖特定端口(常见如29000, 29400, 8080等,具体查看服务端配置)。
Windows:
控制面板 -> 系统和安全 -> Windows Defender防火墙 -> 高级设置。
“入站规则” -> 新建规则 -> 端口 -> TCP -> 填入端口列表(或范围)-> 允许连接。
Linux:
使用iptables或firewalld命令开放端口。
示例(CentOS使用firewalld):sudo firewall-cmd --permanent --add-port=29000-29100/tcp (开放一段端口范围)。
重载防火墙配置:sudo firewall-cmd --reload。
三、服务端配置:让服务器“认识”你的设置
这是最核心也最容易出错的部分!
定位核心配置文件:
打开你解压的服务端文件包。
关键目录通常位于/server/或根目录下叫config/或table/的文件夹里。
核心配置文件包括:
serverlist(或servers.conf):定义服务器列表、IP、端口信息。
gdeliveryd文件夹下的配置文件:如gdeliveryd.conf,管理登录验证、网关信息。
gamedbd文件夹下的配置:数据库连接设置(重中之重!)。
uniquenamed(有些版本叫gamed)文件夹下的dbgms.conf:另一个数据库连接点。
修改数据库连接配置:
找到gamedbd目录下的dbserver.conf或类似文件。
查找包含以下关键信息的段落:
<connection>
<db>pwdb</db> <!-- 数据库名,改成你创建的 -->
<host>127.0.0.1</host> <!-- 数据库服务器地址(本地即127.0.0.1) -->
<port>3306</port> <!-- MySQL端口 -->
<user>root</user> <!-- 数据库用户名 -->
<password>your_db_password</password> <!-- 对应用户的密码 -->
<auto_commit>1</auto_commit>
</connection>
同理,修改uniquenamed/gamed/dbgms.conf:
game_db_host = 127.0.0.1
game_db_port = 3306
game_db_user = root
game_db_password = your_db_password
game_db_name = pwdb
务必确保配置准确!用户名、密码、数据库名、端口必须与你第一步设置完全一致! 这是大部分连接失败的根源。
修改服务器信息配置:
打开serverlist文件(位置因端而异,可能在根目录或/server/下)。
修改默认IP地址:
# 示例格式 (常见)
[GameServer]
type = tcp
ip = 127.0.0.1 <!-- 改成你的服务器公网IP或内网IP -->
port = 29000
name = MyPWServer <!-- 服务器显示名称 -->
...
需要修改所有127.0.0.1为你的服务器IP,并检查端口是否开放。
其他配置文件(如gdeliveryd.conf)中涉及的IP通常也需修改为服务器IP(通常只有一个地方定义了对外IP)。
四、客户端连接设置:打通最后一公里
定位客户端入口点:
找到官方游戏客户端安装目录。
寻找patcher_server文件(无扩展名或.txt)或serverlist.txt。它决定了客户端启动时连接哪个服务器列表。
编辑入口文件:
用文本编辑器(Notepad++等)打开patcher_server或serverlist.txt。
将内容替换为指向你的登录信息:
<server>
<id>1</id>
<name>我的名字</name>
<ip>你的服务器公网IP</ip> <!-- 修改为你服务器的IP -->
<port>8080</port> <!-- 通常为8080端口 -->
<version>您的客户端版本号</version> <!-- 确保和服务端一致 -->
</server>
保存文件(可能需要管理员权限)。
启动游戏:
直接运行官方客户端的elementclient.exe(或对应的可执行文件)。
重要: 首次启动后,系统可能提示生成新的userdata文件夹覆盖配置,此时需要重新编辑patcher_server/serverlist.txt文件(因为会被自动重置)。推荐先备份改好的文件。
五、启动服务器!见证奇迹(或排查问题)
启动顺序至关重要:
进入服务端根目录。
按顺序运行以下关键服务(通常有批处理文件start.bat或具体脚本):
gacd 或 authd: 认证中心
gdeliveryd: 登陆网关/登录服务器 (必须第二步运行)
gamedbd: 游戏数据库服务 (核心数据存储)
uniquenamed 或 gamed: 角色名管理/游戏逻辑服务器
gfactiond: 帮派/阵营服务
Windows: 通常直接运行start.bat或按顺序双击各个.bat文件。观察每个窗口的启动日志,看是否有“Successfully Started” 或类似成功信息。
Linux: 使用./命令运行对应的服务脚本(.sh或二进制文件),注意权限问题。
启动客户端验证:
启动配置好的客户端尝试登录。
六、常见问题排查(新手必看)
服务程序启动立刻崩溃/闪退:
日志文件: 首先检查服务端目录下各个服务对应的log文件夹中的错误日志(.log或.txt文件)。关键提示都在这里!
端口冲突: 用netstat -ano(Win)或lsof -i:端口号/netstat -tulpn | grep 端口号(Linux)检查端口是否已被占用。
依赖库缺失: Win需安装VC++运行库(2005-2015或更新)。Linux确保lib32兼容库已装(sudo apt-get install lib32z1 lib32stdc++6)。
配置文件错误: 再次核对所有配置文件的路径、语法(空格、引号、注释符号)。
权限不足: Win以管理员身份运行.bat,Linux使用sudo或设置好用户权限。
客户端连接失败/超时/断开:
防火墙拦截: 确认服务器防火墙已开放所需端口(29000, 29400, 8080等)。客户端电脑防火墙也可能阻止。
IP地址错误: 反复检查服务端所有配置文件中的IP地址是否为服务器的正确公网IP(非局域网IP)。客户端patcher_server里的IP也必须一致。
端口未映射: 服务器在局域网内?需在路由器设置端口转发(Port Forwarding/NAT),转发上述端口到服务器局域网IP。
服务启动顺序错/未启动: gdeliveryd必须早于gamedbd启动。观察所有服务的启动日志是否有ERROR信息。
客户端版本与服务端不匹配: 需严格一致!找不到对应客户端可尝试修改服务端的serverlist文件中的<version>字段来匹配(非万能)。
登录后提示密码错误/账号不存在:
数据库问题。检查gamedbd和dbgms.conf中的数据库连接配置(用户名、密码、数据库名、IP端口)100%准确。
确保pwdb库已正确导入初始SQL数据。
初始账号常在tbl_account或accounts表里。密码可能是明文或MD5加密。尝试初始默认账号密码(如test/test)。
杀毒软件误报:
服务端程序常被误判为病毒。添加服务端目录到杀软白名单/信任区。
重要提醒:技术有边界,法律无侥幸
合法性: 本质上是对游戏公司知识产权的侵害。仅限个人研究学习,勿传播、勿开放注册、勿充值收费。
安全性: 来源不明的服务端程序可能存在后门、病毒或漏洞风险,请谨慎评估来源。
学习态度: 架设失败是常态,解决问题才能成长。耐心阅读日志,善用搜索引擎,不懂关键词就搜!
按照此教程步骤操作,大多数常见问题都能找到解决方案。享受技术带来的乐趣,但也请坚守法律底线。祝你架设顺利!

