什么是 WHM(Web Host Manager)以及如何访问它
WHM(Web Host Manager)是由cPanel, LLC开发的服务器级管理控制面板,运行于基于Linux的Web服务器上。它提供root级别和经销商级别的访问权限,用于管理多个cPanel账户、配置服务器范围的设置、控制安全策略,以及通过基于浏览器的界面管理Apache、MySQL和DNS等核心服务。WHM运行于端口2087(HTTPS),是cPanel的后端对应组件,而cPanel则作为终端用户界面。
如果您正在运行托管主机环境、经销商托管业务,或安装了cPanel/WHM的自管理VPS主机或独立服务器,了解WHM的架构和访问方式对于维护正常运行时间、安全性和运营效率至关重要。
WHM与cPanel:理解架构关系
一个常见的误区是将WHM和cPanel视为可互换的工具。事实并非如此。它们处于同一软件栈的不同层级。
| 功能 | WHM(Web Host Manager) | cPanel |
|---|
| — | — | — |
|---|
| 目标用户 | 服务器管理员、经销商 | 终端用户、网站所有者 |
|---|
| 访问端口 | 2087(HTTPS)、2086(HTTP) | 2083(HTTPS)、2082(HTTP) |
|---|
| 权限级别 | root或经销商 | 仅账户级别 |
|---|
| 账户创建 | 是——创建cPanel账户 | 否——管理现有账户 |
|---|
| 服务器服务控制 | 是(Apache、MySQL、DNS等) | 否 |
|---|
| DNS区域管理 | 服务器范围 | 仅限单个账户 |
|---|
| SSL管理 | 服务器范围+单个账户 | 仅限单个账户 |
|---|
| 防火墙配置 | 是(CSF、WHM防火墙) | 否 |
|---|
| 备份范围 | 完整服务器或单个账户 | 仅限单个账户 |
|---|
| 经销商管理 | 是 | 否 |
|---|
WHM是管理平面,cPanel是各个账户的数据平面。每个cPanel账户均由WHM创建、配置和管理。如果WHM不可用,cPanel账户仍可继续提供流量服务,但无法在服务器级别进行任何管理更改。
WHM的核心技术能力
账户与套餐管理
WHM使用一种称为托管套餐(也称为计划或功能列表)的概念来定义资源分配——磁盘配额、带宽限制、电子邮件账户上限、数据库限制和子域名——这些设置统一应用于cPanel账户。这种抽象方式使管理员无需逐一配置即可管理数百个账户。
主要操作包括:
- 使用预定义套餐或自定义资源限制创建cPanel账户
- 暂停和恢复账户而不丢失数据,这对于计费执行至关重要
- 终止账户并可选择保留数据
- 即时修改账户限制而无需重新创建账户
- 使用WHM内置的迁移工具在服务器之间迁移账户,该工具可原子性地处理DNS、电子邮件、数据库和文件结构
一个常被忽视的功能:WHM的骨架目录(`/root/cpanel3-skel/`)允许管理员为每个新cPanel账户预置默认文件、目录结构或配置模板——对于大规模部署标准化WordPress或应用程序环境的机构非常有用。
经销商账户架构
WHM支持三层权限模型:root管理员、经销商和终端用户。经销商获得WHM功能的子集,范围限定于其所拥有的账户。他们可以创建和管理自己的cPanel账户、在自己的分配范围内设置资源限制,以及自定义cPanel界面品牌——但无法访问或影响其他经销商的账户或服务器级配置。
这种架构是经销商托管业务模式的基础,如果您正在运营带cPanel的VPS为下游客户提供托管服务,这一点尤为重要。
重要提示:经销商不获得root SSH访问权限。他们的WHM访问权限受限于root管理员通过ACL(访问控制列表)授予的权限。错误配置ACL是一种常见的安全错误——向经销商授予超出预期的权限,尤其是全局修改DNS或访问服务器配置的能力。
服务器管理与服务管理
WHM提供对支撑每个托管网站的核心服务的直接控制:
- Apache/LiteSpeed配置——修改全局指令、管理虚拟主机模板、配置PHP处理程序(suPHP、FastCGI、PHP-FPM),以及使用MultiPHP Manager按账户切换PHP版本
- MySQL/MariaDB管理——管理全局数据库设置、运行MySQL升级并监控查询负载
- DNS集群管理——配置WHM参与DNS集群,跨多个域名服务器同步区域文件以实现冗余
- Exim邮件服务器配置——管理SMTP中继设置、垃圾邮件阈值、RBL列表和投递队列
- 服务监控——WHM的服务管理器允许启用、禁用和监控守护进程,并设置自动重启策略
一个让许多管理员措手不及的细节:WHM的EasyApache 4(EA4)是用于编译和配置Apache及PHP的工具。切换PHP版本或添加扩展(如`imagick`、`redis`或`memcached`)需通过EA4配置文件完成,而非通过操作系统包管理器。在不了解EA4的情况下尝试通过`yum`或`apt`安装PHP扩展可能会破坏cPanel的PHP处理程序配置。
安全中心
WHM的安全中心整合了多项关键加固控制:
- cPHulk暴力破解防护——对WHM和cPanel的失败登录尝试进行速率限制,可配置锁定阈值和IP白名单
- CSF(ConfigServer Security & Firewall)集成——虽然CSF是第三方插件,但它深度集成到WHM的界面中,是cPanel服务器事实上的防火墙解决方案
- 双因素认证(2FA)——WHM支持基于TOTP的2FA,适用于root和经销商登录,应将其视为强制要求而非可选项
- SSL/TLS管理器——在服务器范围内安装、管理和自动续期SSL证书,包括通过AutoSSL支持Let’s Encrypt
- SSH密码授权调整——无需手动编辑`sshd_config`即可在WHM内禁用基于密码的SSH认证
- 编译器访问控制——限制对编译器(gcc、cc)的访问,防止通过本地编译的漏洞利用程序进行权限提升
如果您正在跨多个域名管理SSL证书,WHM的AutoSSL功能可以自动为服务器上每个cPanel账户完成Let’s Encrypt证书的签发和续期,彻底消除手动证书管理工作。
备份与恢复架构
WHM的备份系统在两个层面运行:
- WHM备份配置(root级别)——定义全局备份计划、保留策略、压缩设置和远程传输目标(FTP、SFTP、S3兼容存储、通过备份传输插件的自定义脚本)
- 按账户恢复——允许从完整服务器备份中恢复单个cPanel账户,而无需恢复整个服务器,这对于最小化账户级数据丢失事件的影响范围至关重要
一个常见的架构错误:仅依赖WHM内置备份系统,而不验证备份是否已传输到服务器外部。服务器本地备份对磁盘故障、勒索软件或灾难性服务器损失提供零保护。请务必配置远程备份目标。
DNS管理
WHM使用BIND(named)或PowerDNS作为底层解析器在服务器级别管理DNS。管理员可以:
- 为服务器上的所有域名创建、编辑和删除DNS区域
- 配置DNS集群以自动将区域复制到辅助域名服务器
- 为所有托管域名管理SPF、DKIM和DMARC记录以提升电子邮件送达率
- 使用DNS区域编辑器在无需SSH访问的情况下进行批量更改
对于管理多个客户域名的托管环境,WHM中正确的DNS配置——尤其是DKIM和SPF设置——直接影响所有账户的电子邮件送达率。在将WHM托管与专用电子邮件托管解决方案配合用于业务关键通信时,这一点尤为重要。
如何访问WHM:分步指南
第一步:准备所需凭据
在尝试访问之前,请确认您已具备:
- 服务器IP地址或主机名——服务器的公共IPv4(或IPv6)地址,或指向该服务器的可解析主机名
- 用户名——主管理员使用`root`;经销商级别访问使用经销商用户名
- 密码——root或经销商账户密码
- 2FA令牌——如果启用了双因素认证,请准备好您的身份验证器应用
如果您购买了预装cPanel/WHM的独立服务器或VPS,这些凭据通常在开通时通过电子邮件发送,或可通过托管控制面板获取。
第二步:选择正确的访问URL
WHM可通过以下URL格式访问:
主要HTTPS访问(推荐):
“`
https://YOUR_SERVER_IP:2087/
https://your-domain.com:2087/
“`
HTTP访问(备用,不建议用于生产环境):
“`
http://YOUR_SERVER_IP:2086/
http://your-domain.com:2086/
“`
基于重定向的访问(解析至端口2087):
“`
https://YOUR_SERVER_IP/whm
https://your-domain.com/whm
“`
将`YOUR_SERVER_IP`替换为您实际的服务器IP地址(例如`https://198.51.100.42:2087/`)。基于重定向的URL使用方便,但依赖于Web服务器正确处理重定向——在排查问题时请使用明确指定端口的URL。
第三步:处理SSL证书警告
在新开通的服务器上,WHM使用颁发给服务器主机名的自签名SSL证书。由于该证书未经受信任的证书颁发机构(CA)签名,浏览器将显示安全警告。
这是初始设置时的预期行为。操作步骤如下:
- Chrome/Edge:点击”高级”,然后点击”继续访问[主机名](不安全)”
- Firefox:点击”高级”,然后点击”接受风险并继续”
要永久消除此警告,请通过WHM的管理服务SSL证书部分为服务器主机名安装有效的SSL证书,或配置AutoSSL为服务器主机名签发Let’s Encrypt证书。这是一次性设置任务,应在开通后立即完成。
第四步:身份验证
在WHM登录页面:
- 输入您的用户名(`root`或经销商用户名)
- 输入您的密码
- 如果启用了2FA,请输入身份验证器应用中的TOTP代码
- 点击登录
身份验证成功后将进入WHM控制面板。多次尝试失败后,如果已启用cPHulk,将触发锁定——而它确实应该被启用。
第五步:导航WHM控制面板
WHM控制面板通过左侧导航面板和搜索栏(这是访问任何特定工具的最快方式)按功能分区组织:
- 账户功能——创建、列出、修改、暂停和迁移cPanel账户
- 套餐——定义和管理应用于账户的托管套餐
- 经销商——创建经销商账户、设置ACL权限并监控经销商资源使用情况
- 服务器配置——配置服务器范围的设置,包括主机名、域名服务器和联系邮箱
- 服务配置——管理Exim、Apache、FTP和其他守护进程配置
- 安全中心——访问cPHulk、2FA设置、SSL管理和防火墙集成
- MultiPHP Manager——按域名或账户设置PHP版本和PHP-FPM配置
- 备份配置——配置备份计划、目标和保留策略
- WHM插件——安装和管理第三方WHM插件(Softaculous、Imunify360、JetBackup等)
WHM访问问题排查
端口2087无法访问
这是最常见的访问故障。原因及解决方案:
- 防火墙阻止端口2087——验证服务器防火墙(iptables、firewalld或CSF)已开放端口2087。运行`iptables -L -n | grep 2087`或检查CSF的`/etc/csf/csf.conf`中的`TCP_IN`规则。同时验证托管服务商的外部防火墙或安全组(如适用)是否允许端口2087。
- cpsrvd服务未运行——WHM由`cpsrvd`守护进程提供服务。如果该进程已停止,则无法访问。通过SSH重启:`service cpsrvd restart`或`/usr/local/cpanel/scripts/restartsrv_cpsrvd`
- IP地址已更改——如果服务器IP发生变化(例如网络重新配置后),请相应更新访问URL
身份验证失败与账户锁定
- cPHulk锁定——如果您的IP因登录失败次数过多被cPHulk锁定,请通过SSH将您的IP加入白名单:编辑`/etc/cphulk/whitelist`或使用WHM API。或者,临时禁用cPHulk:`whmapi1 set_cphulk_config enabled=0`
- root登录已禁用——某些加固配置会禁用直接root WHM登录。在这种情况下,请使用具有sudo权限的用户,或通过SSH和cPanel配置重新启用root登录
- 忘记root密码——通过SSH使用`passwd root`重置,或在SSH访问也不可用时通过托管服务商的带外控制台(IPMI/KVM)重置
SSL与浏览器问题
- 混合内容或重定向循环——通过反向代理或CDN访问WHM时会出现此问题。WHM应通过服务器IP或直接解析到服务器的主机名直接访问,而非通过Cloudflare或类似代理
- 证书主机名不匹配——自签名证书颁发给服务器配置的主机名。如果通过IP地址访问WHM,在安装正确证书之前,主机名不匹配警告将无法避免
- 浏览器缓存——过期的会话Cookie可能导致重定向循环。专门清除WHM URL的站点数据,或使用隐私/无痕窗口
WHM可以加载但功能缺失
- 经销商ACL限制——如果您以经销商身份登录且某些功能不可见,root管理员已通过ACL限制了这些功能。请联系root管理员调整权限。
- 许可证问题——cPanel/WHM需要与服务器IP地址绑定的有效许可证。过期或无效的许可证会导致WHM进入受限模式。请在`https://verify.cpanel.net/`验证许可证状态
WHM安全加固检查清单
在生产服务器上运行WHM而不进行加固是重大安全隐患。在开通后立即采取以下措施:
- 为root和所有经销商账户启用2FA——WHM安全中心 > 双因素认证
- 以严格阈值启用cPHulk并将您的管理IP加入白名单
- 禁用root SSH密码登录——专门使用SSH密钥认证
- 安装CSF/LFD并配置其阻止端口扫描、暴力破解尝试以及来自非邮件进程的出站SMTP
- 配置AutoSSL为服务器主机名和所有托管域名签发有效的Let’s Encrypt证书
- 限制编译器访问——WHM安全中心 > 编译器访问
- 通过EasyApache 4启用ModSecurity,并使用可靠的规则集(OWASP CRS或Imunify360)
- 设置强密码策略——WHM安全中心 > 密码强度配置
- 定期审计经销商ACL——删除非明确需要的权限
- 配置远程备份传输——切勿将备份的唯一副本存储在同一服务器上
决策矩阵:何时使用WHM与替代方案
| 场景 | 推荐方案 |
|---|
| — | — |
|---|
| 个人管理1–5个网站 | 仅使用cPanel(无需WHM) |
|---|
| 运营经销商托管业务 | VPS或独立服务器上的WHM + cPanel |
|---|
| 高流量单一应用 | 直接服务器管理(无cPanel/WHM开销) |
|---|
| 管理客户网站的机构 | WHM配合每个客户的经销商账户 |
|---|
| 预算有限的小型项目 | [共享虚拟主机](https://alexhost.com/zh/shared-hosting/)(含cPanel,无WHM) |
|---|
| 需要完整基础设施控制 | 配备WHM的[独立服务器](https://alexhost.com/zh/dedicated-servers/) |
|---|
| 带面板管理的可扩展VPS | [VPS控制面板](https://alexhost.com/zh/vps/control-panels/) |
|---|
技术要点总结
- WHM运行于端口2087(HTTPS)和2086(HTTP);确保这些端口在操作系统级防火墙和任何上游网络防火墙中均已开放
- `cpsrvd`守护进程必须运行,WHM才能访问;当WHM无法访问时,这是首先需要检查的事项
- 切勿在root账户未启用2FA的情况下运行WHM——端口2087正被自动化机器人主动扫描
- AutoSSL消除了所有托管域名的手动证书管理;开通后立即配置
- 经销商ACL是在不授予root权限的情况下委托管理访问的主要机制——定期审计
- EasyApache 4是PHP版本和扩展管理的正确工具;使用操作系统包管理器绕过它会破坏cPanel的处理程序配置
- 在生产环境中,远程备份传输不是可选项——服务器本地备份只会带来虚假的安全感
- WHM的DNS集群功能对于任何需要域名服务器冗余的多服务器环境至关重要
常见问题解答
WHM和cPanel有什么区别?
WHM是服务器级管理界面,供root管理员和经销商用于创建和管理cPanel账户、配置服务器服务以及控制安全策略。cPanel是账户级界面,供个人网站所有者管理自己的文件、数据库、电子邮件和域名。WHM创建并管理cPanel账户;cPanel无法管理其他账户或服务器范围的设置。
WHM使用哪个端口,可以更改吗?
WHM默认使用端口2087(HTTPS)和端口2086(HTTP)。该端口由`cpsrvd`守护进程决定,无法通过标准WHM界面更改为任意端口。如果端口2087被防火墙阻止,重定向URL(`/whm`)也将失败,因为它们解析到同一端口。
WHM可以在没有root凭据的情况下访问吗?
可以。经销商账户具有WHM访问权限,范围限定于root管理员通过访问控制列表(ACL)授予的权限。经销商可以使用自己的用户名和密码登录WHM,并仅管理其名下的cPanel账户。
为什么WHM在首次访问时显示SSL证书警告?
默认情况下,WHM使用颁发给服务器主机名的自签名SSL证书。由于该证书未经受信任的证书颁发机构签名,浏览器会显示安全警告。这是预期行为,在初始设置期间可以安全绕过。永久解决方案是使用WHM的AutoSSL或通过”管理服务SSL证书”手动安装证书,为服务器主机名安装有效的SSL证书。
服务器重启后WHM无法访问,该怎么办?
首先,通过SSH连接并运行`service cpsrvd status`,验证`cpsrvd`服务是否正常启动。如果启动失败,请检查`/usr/local/cpanel/logs/error_log`获取诊断输出。同时确认端口2087的防火墙规则在重启后已恢复——某些防火墙配置在没有明确保存命令(`service iptables save`或`csf -r`)的情况下不会在重启后持久保存。
