🚀 建站太难?我来手把手带你—— 了解「WordPress建站陪跑」服务 →

六一儿童节,送给站长的礼物:WP Panel

转眼又到六一儿童节了,如果是老站长可能会有些记忆,以前每年六一军哥会更新他的LNMP一键包,奶爸最早也是靠着LNMP一键包才接触到用VPS搭建网站。2023年LNMP被爆一键安装包植入恶意程序,后面发现原来军哥把这个业务给出售了。正好这个时候宝塔面板也开始崛起,所以奶爸建站笔记里面的教程多数都转向了使用宝塔面板搭建网站。

作为从2009年开始接触WordPress建站的小菜鸟,也算是见证了WordPress的热闹和没落,如果不是外贸建站需求,真不知道国内WordPress生态圈会变成什么样子。

近两年AI的崛起,让奶爸也有了写程序的“能力”,试着也为WordPress圈提供一些力所能及的贡献。

之前提交到WordPress官方插件仓库的B2B产品管理插件,截止本文发布时活跃安装量也有100+了。赶在2026年儿童节之际(谁还不是个儿童呢),奶爸又让AI开发了一款专门针对WordPress网站管理的服务器面板:WP Panel

先说这个面板是怎么来的

奶爸在奶爸建站笔记分享了很多WordPress建站教程的文章,微信也接受了至少5000+人次的咨询,所以深刻地了解小白用户自己建网站的难处。宝塔面板虽说操作已经足够简单,但对部分用户而言,依旧是建站路上的一道门槛。

对于使用WordPress建站,在VPS上把网站跑起来只是第一步,跑起来后网站的安全和稳定性才是小白真正头疼的问题。互联网上随时都有机器人在后台扫描你服务器的漏洞,一些爬虫一分钟打出几十上百次的请求,直接导致服务器CPU 100%,网站卡顿无法操作,然后就又在那骂WordPress垃圾,卡顿,不好用。(⊙﹏⊙)

不会使用 WordPress 的人,常会觉得它上手困难。但在我看来,对小白用户搭建企业官网而言,它目前仍是最优选择。

也有人提出,如今已是 AI 建站时代,没必要再用 WordPress。

其实网站搭建只是第一步,后期运营、管理与维护才是核心。现阶段 AI 还做不到仅凭简单指令,就能打造出专业级网站。尤其对零基础用户来说,在文章发布、SEO 优化等日常运维场景中,AI 生成的站点,远不如 WordPress 设计得全面、易用。

WP Panel面板开发的初衷就是只做 WordPress 服务器管理这一件事。不做 Docker、不做邮件、不做 FTP、不做其他语言运行环境。一行命令装好,纯净的 Debian 13 直接变成一个 WordPress 托管平台。小白装上就搭建好了自己的WordPress网站。

WP Panel能干什么?

一句话概括:从你购买VPS搭建WordPress网站,到网站日常运营维护的事情,WP Panel都能给你提供帮助。

一键创建WordPress网站

按照奶爸之前发表的Vultr搭建WordPress教程,购买一台VPS之后,你需要先安装宝塔面板,然后在宝塔面板上创建网站,等网站创建完毕,还要手动去下载WordPress安装包,最后打开浏览器访问你域名,进入安装界面填写数据库信息,最后填写网站账号密码。

使用WP Panel,你只需要购买一台VPS后,把安装宝塔面板的那一步操作换为安装WP Panel(同样是一键安装),然后在后台创建网站,创建完毕直接打开浏览器访问你域名,配置网站账号密码就ok了。省去了你下载安装包配置数据库的步骤。

WP Panel一键创建网站

同时,在创建网站时WP Panel还添加了WordPress安装选项,删除默认没使用的自带主题和插件,或者安装热门的主题跟插件。

所有资源都是从WordPress官方获取,确保安全、最新。你还可以自定义安装界面需要安装的主题和插件列表。

网站管理

Wp blog

每个网站都支持SSL安全证书管理、状态监控、Nginx缓存优化、数据库自动备份、网站文件自动备份。

同时也支持到期时间设置,对于一台服务器管理多个客户网站的用户来说,这个功能非常有用,到期前发送邮件提醒服务器管理员,不用手动记录客户网站到期时间。

WordPress优化

WordPress优化

对于WordPress网站,缓存优化是绕不开的一个点。奶爸之前分享过给宝塔面板Nginx FastCGI缓存配置教程,说句实话,这个操作对于小白来说并不简单,搞不好就弄错了配置导致网站打不开。所以奶爸直接把这个功能做进了WP Panel面板里面。

为什么选择FastCGI缓存,和普通优化插件有什么区别?

和普通的缓存优化插件,例如WP Rocket、WP Super Cache等热门的缓存插件相比,是两种不同的工作模式。

1)WP Rocket(PHP / 插件级缓存)

  • 工作在 WordPress + PHP 层
  • 流程:用户请求 → 进入 WP → 插件判断 → 读 / 生成静态 HTML → 返回。
  • 缓存文件:存于 wp-content/cache/,由 PHP 管理。
  • 必须走 PHP-FPM + 数据库 一次(未命中时)。

2)Nginx FastCGI Cache(服务器 / 系统级缓存)

  • 工作在 Nginx 层完全绕过 PHP
  • 流程:用户请求 → Nginx → 查本地缓存 → 直接返回 HTML。
  • 缓存文件:存于服务器磁盘 / 内存,Nginx 内核管理。
  • PHP、MySQL 几乎不参与,压力极低。

使用Nginx FastCGI缓存比装缓存插件效率更高。

同时还增加了禁止检测更新(核心/插件/主题)和禁止后台文件编辑两个功能,后台直接开启,不需要手动修改wp-config.php文件。

虽说关闭更新检测并非规范做法,但奶爸接触的绝大多数 WordPress 用户,都没有定期更新的习惯。后台常年堆积大量更新提醒,不少人会选择一次性批量更新,结果反而导致网站故障。

究其原因,插件和主题长期不迭代,会累积多个版本的功能变更。跨多个版本直接升级,极易引发兼容问题。既然用户没有及时更新的习惯,不如直接在后台关闭更新检测,从源头规避风险。

另外就是默认禁止了XML-RPC 接口的访问

XML-RPC 是 WordPress 远程通信接口。关闭后 Nginx 直接返回 403,请求不到 PHP-FPM,可彻底防御 xmlrpc.php 暴力攻击。绝大多数的网站都用不到这个功能。

如果你正在使用宝塔面板,你可以进入你网站日志,搜索xmlrpc.php,不出意外的话会有很多请求xmlrpc.php的记录,有时候还持续性多次请求,这就是导致你网站突然间卡顿的原因。

计划任务

Wp blog

计划任务主要有两个特色功能:备份网站文件和创建WP Cron调用

备份网站支持全量备份和增量备份。

全量备份:打包整个网站根目录。
智能增量:仅备份 wp-content/uploads/ 中自上次备份后新增或修改的文件。

WP Cron调用就是用来替代 WordPress 内置伪 Cron — WordPress 默认每次页面访问才触发计划任务(发布定时文章、检查更新等),不稳定且消耗性能。此任务通过系统 Cron 定时直接调用 wp-cron.php,更可靠。

文件管理

这个就不用多介绍了,WP Panel内置了文件管理系统,为了安全考虑,不支持在线编辑,只支持上传、下载、压缩、解压、剪切、复制、粘贴、重命名的功能。

软件管理

WP PANEL软件管理

面板默认建议操作系统为Debian 13,除了PHP调用的Ondřej Surý 源(因为WordPress官方推荐PHP版本是8.3,Debian 13默认源是安装PHP 8.4),其他软件都是从Debian 13官方源安装,这些软件的安全Debian 13官方都会做维护。

Debian 13 LTS 支持约到2030 年 6 月结束,意味着你从今天开始使用WP Panel,可以至少保证你4年内不用担心服务器安装的软件安全问题。

软件管理界面同时也支持这些软件的配置修改,和宝塔修改软件配置类似,不用手动去改文件。

告警通知

通过配置SMTP发件,或者使用Webhook推送,当服务器资源占用高、进程异常、备份失败等场景下,会给服务器管理员发通知。

重头戏:安全防御

Wp blog

面板自身安全

说实话,对于AI开发的面板奶爸比你更担心它的安全性,为此,我设计了4层安全防护,理论上只要你服务器root密码和面板登录账号不被攻破,服务器被黑的风险极低。

如果有人想要进入你的WP Panel面板后台,至少需要攻破四层防御。

第零层:扫描防御。WP Panel默认是通过8443端口+自签名安全证书访问,在防火墙规则设置了非浏览器访问8443端口直接拉黑的规则,就是说只要不是通过浏览器访问服务器的8443端口,一律防火墙黑名单伺候。

第一层:随机入口。像宝塔面板一样的也带有8位随机字符,直接访问ip+8443,进入不到面板登录界面,靠猜后台入口,是不可能完成的任务。

第二层:BasicAuth认证。浏览器弹出那个原生输入框,要输用户名密码。这一层的密码是 bcrypt 12 轮哈希存储的,数据库里没有明文。

第三层:Web 登录。过了 BasicAuth认证,还有网页表单的登录密码。同样是 bcrypt 哈希,登录成功后生成服务端 session,Cookie 带 HttpOnly + Secure + SameSite=Lax,30 分钟滑动过期。

BasicAuth和Web登录两个账号密码,任何一个地方连续输错5次,就会被防火墙拉入黑名单,除非你服务器有极高被黑的价值,不然没人愿意拿着IP被封的风险跟你猜密码玩。

额外防护

CSRF Token:所有非查询类请求必须携带专属验证令牌,有效防范跨站请求伪造,阻止恶意站点冒用你的身份提交操作。

安全响应头:已配置 HSTS、X-Frame-Options、nosniff、Referrer-Policy 全套安全策略,抵御点击劫持、浏览器嗅探等客户端攻击,进一步加固访问安全。

错误信息脱敏:接口报错内容做了处理,不会泄露服务器路径、运行指令等内部信息,避免敏感数据外泄。

代码完全开源:基于 GPL-3.0 协议开源,代码公开可查阅。程序不会收集用户数据、不对外连接第三方服务器,内置无网页后门、无在线代码编辑功能,从根源规避风险。

WordPress 专项防护

xmlrpc.php攻击

经常有朋友给奶爸说网站都没什么流量,一天卡的要死。其实有些时候并不是真的没流量,在你看不到的服务器背后,有机器人正在疯狂的扫描探测你服务器的文件,例如上面截图中,可以看到152.59.52.221这个IP在疯狂的请求/xmlrpc.php,5.101.85.213这个IP在探测/wp-login.php文件。

别看他们后面请求写的是Jetpack和WordPress,这个网站都没装Jepack,怎么可能会有正常来自Jepack的请求,而且查IP,一个是印度的一个是俄罗斯的。都不用验证,这些访问100%是机器人。

为此,WP Panel面板默认做了多方面的安全防护,完全不要你手动配置,自动生效。

WP PANEL安全设置

WP Panel 通过 Fail2ban(Linux 服务器上的自动防暴力破解工具) 多规则组合来拦截恶意请求,设有两个独立的防御 Jail(“监控 + 处罚”规则包):

主防御 Jail(wppanel),默认阈值:60 秒内累计 5 次触发即封禁(阈值、时间窗口、封禁时长可在面板调整)。触发条件包括:

  • POST /wp-login.php — 登录暴力破解,任何对登录页的 POST 请求均计数
  • POST /xmlrpc.php 返回 HTTP 403 — 站点已关闭 XML-RPC 接口后仍被探测(若开启 XML-RPC 则不计数,避免 Jetpack等合法工具误封)
  • 返回 HTTP 429 — 超出请求频率限制(速率限制由 Nginx 独立处理,429 的访问日志同步纳入 Fail2ban 计数)
  • 敏感文件扫描返回 HTTP 404 — 如 .env、.git、wp-config.php、.sql、.tar、.gz、.zip 等 404 泛滥防御 Jail(wppanel-404),独立于主 Jail,固定阈值不可调:
  • 60 秒内任意路径返回 404 达 30次即判定为目录扫描,直接封禁。

封禁动作:调用 nftables 拒绝 IP 的 HTTP/HTTPS 访问,同时在 Nginx 层面返回444(直接关闭连接,不返回任何内容)。初次封禁 10 分钟,重复犯事封禁时间递增。

自动从CloudFlare、Google、Bing官方拉取他们的IP库加入白名单,不用担心误封。

恶意请求通过CloudFlare发起的恶意请求,可以识别真实IP并封禁。

网站安全防护

一个 VPS 跑多个 WordPress 网站时,最怕一个站被搞挂,其他站跟着遭殃。WP Panel 从创建网站那一刻起就做了隔离。

每个网站拥有独立的系统用户和用户组(如 wp_naibabiji:wp_naibabiji),不共享 www-data 组。PHP-FPM 进程池以该用户身份运行,与Nginx 隔开。

PHP 层面做了三道限制:

  • open_basedir 限定在本站目录 + /tmp + /usr/share/php,无法跨站读文件
  • 禁用危险函数:exec、passthru、shell_exec、system、proc_open、popen、show_source
  • allow_url_include 关闭,禁止网站从外网网址加载、执行文件代码

敏感文件的系统权限也做了加固:wp-config.php 设为 600(仅本站用户可读),密钥目录设为700。其他站点的同名文件对当前站点用户不可见、不可读。

每个站点使用独立的数据库和数据库用户,互不连通。

总的来说:一个站点被插件漏洞拿下后,攻击者在该站内可以篡改文件、读写自身数据库,但读不了其他站点的文件、连不上其他站点的数据库、执行不了系统命令。隔离边界在系统用户和用户组层面就卡住了,跨不过去。

WP Panel安全吗?

面板和网站各自做了多层隔离和防御,从代码层面看已经足够安全。但安全没有 100%,出现以下几种情况,WP Panel也无能为力:

  1. 服务器或面板的账号密码泄露
  2. 系统内核漏洞被利用,攻击者提权到 root(WP Panel支持检测系统更新,确保Debian 13安全更新一个不落)
  3. 有人同时获取了我的 GitHub 账号和离线私钥,推送带毒更新骗你升级

如果面板代码本身有漏洞呢?

好吧,确实AI写的代码会让人担心安全性,但是从我们设定的安全防御来判断,攻击者要利用面板代码漏洞获取你服务器权限,需要跨过以下几道关卡:

  1. 随机入口 —— 8 位十六进制随机路径,43 亿种组合,暴力枚举先要过下一关
  2. BasicAuth —— 浏览器弹窗认证,与 Web 登录共享计数器,5 次失败即封 IP
  3. Web 登录 —— 页面表单,同计数器,累计 5 次失败封 IP 24 小时
  4. CSRF Token —— 非 GET 请求必须携带,跨站伪造无法命中

这四层中任何一步触发封禁,nftables 直接在网络层拒绝该 IP 的所有连接。攻击者要利用一个面板 bug,先得穿透这四道关卡到达有 bug 的代码,概率极低。

另外,面板代码完全开源,欢迎白帽和安全研究人员测试。有效漏洞修复后会在 Release Notes 中致谢。

如何安装WP Panel

说了这么多,对WP Panel感兴趣吗?你可以先随便找一台VPS,例如支持按时计费的Vultr来安装体验,觉得OK再部署到正式服务器。

WP Panel我是在Debian 13系统开发的,理论上Debian 12也可以用,其他系统大概率有bug,所以建议使用Debian 13系统来安装WP Paenl

使用SSH连接上VPS后,直接复制粘贴下面的命令回车,等待安装完毕即可。

apt-get update && apt-get install -y wget ca-certificates && wget -qO- https://raw.githubusercontent.com/naibabiji/wp-panel/main/install.sh | bash

总结

WP Panel不是一个大而全的面板,它只做WordPress网站管理,希望它可以帮助更多的用户使用VPS搭建自己的WordPress网站。

最后,如果面板有Bug,欢迎反馈给我。

GitHub 地址:github.com/naibabiji/wp-panel

🚀 看教程还是觉得迷茫?不如让我手把手带你

「WordPress建站陪跑」——从选域名、买主机,到装主题、上线发文,每一步都有我全程陪跑,少走弯路,直达目标。

👉 了解建站陪跑服务

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

🔒 安全验证
找到草莓
🍎
苹果
🍓
草莓
🍇
葡萄
🍊
橙子

×
二维码

扫码关注

AI 建站助手

🤖
您好!我是奶爸建站笔记 AI 助手,有什么可以帮您的吗?
快速咨询: