博客

  • SSH 报错REMOTE HOST IDENTIFICATION HAS CHANGED解决方法

    一、问题背景

    重装服务器系统再次连接 SSH 连接时,会出现如下报错:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Host key verification failed.

    提示信息中可能还会包含:

    Offending ECDSA key in /Users/username/.ssh/known_hosts:26
    Host key for 192.168.XXX.XXX has changed

    二、为什么会发生

    SSH 通过 主机密钥(Host Key) 验证服务器身份:

    1. 第一次连接服务器时,SSH 会保存服务器的公钥指纹到本地:
    2. 后续连接时,会对比服务器发来的指纹与本地保存的指纹。
    3. 如果指纹不一致,SSH 会拒绝连接,防止中间人攻击。
    • 重装系统时,服务器会重新生成新的 SSH 主机密钥。
    • 因此,旧的指纹与新的不匹配。
    • SSH 就会报“REMOTE HOST IDENTIFICATION HAS CHANGED”。

    三、解决方法

    在本地终端执行:

    ssh-keygen -R <服务器IP>
    ssh root@<服务器IP>

    首次连接会提示:

    Are you sure you want to continue connecting (yes/no)?

    输入:

    yes
  • Debian 13(Trixie)上禁用 IPv6

    在 Debian 13(Trixie) 上通过 GRUB 内核参数 的方式彻底禁用 IPv6。

    一、禁用原理

    通过向 Linux 内核传递启动参数 ipv6.disable=1,在系统启动时直接禁用 IPv6 协议栈,相比 sysctl 或 NetworkManager 方式更加彻底,不会被系统服务重新启用。


    二、操作步骤

    编辑 GRUB 配置文件

    使用文本编辑器打开 GRUB 默认配置文件:

    nano /etc/default/grub

    修改内核启动参数

    找到如下这一行:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet"

    修改为:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"

    如果该行中已有其他参数,请保留原参数,只需追加 ipv6.disable=1 即可。

    更新 GRUB 配置

    执行以下命令使配置生效:

    update-grub

    确认命令执行过程中未报错。

    重启系统

    reboot
  • ComfyUI 更新到最新版本教程

    已安装 ComfyUI 的情况下更新到最新版本,不包含首次安装与环境创建步骤。

    一、更新 ComfyUI

    激活 Conda 环境

    conda activate comfyui

    如果你的环境名不是 comfyui,请替换为实际名称。

    进入 ComfyUI 目录

    cd ComfyUI

    拉取最新官方代码

    git pull

    更新 Python 依赖库

    pip install -r requirements.txt --upgrade

    二、更新完成后启动

    python main.py

    浏览器访问:

    http://127.0.0.1:8188
  • Debian 13 配置第二块网卡并设置默认路由优先级

    在服务器或虚拟机环境中,服务器需要使用 双网卡结构,例如:

    • 一张卡走业务网络
    • 一张卡走管理网络
    • 或者一张主用,一张备用

    一、确认网卡是否识别

    执行:

    ip a

    如果看到类似:

    ens33:
    ens37:

    说明第二块网卡已经被系统正常识别。

    二、配置第二块网卡

    编辑网络配置文件:

    nano /etc/network/interfaces

    完整配置如下:

    # The primary network interface
    allow-hotplug ens33
    iface ens33 inet dhcp
        metric 100
    # The second network interface
    auto ens37
    iface ens37 dhcp
        metric 300

    三、什么是 metric

    在 Linux 中:

    metric 越小,优先级越高

    例如:

    metric含义
    0最高优先级
    100高
    300低
    1000+极低

    四、重启网络使配置生效

    systemctl restart networking

    五、验证默认路由是否正确

    查看路由表:

    ip route

    正常应显示:

    default via 172.16.1.1 dev ens37 metric 100
    default via 172.17.1.1 dev ens33 metric 300

    验证真实出口:

    ip route get 8.8.8.8

    如果看到:

    dev ens33

    所有默认流量已经从主网卡 ens33 出口走

  • WordPress 高性能配置指南:PHP 8.3+、MySQL 8.0+ 与云主机选型最佳实践

    WordPress 是一个依赖于强大技术栈的动态内容管理系统(CMS),它需要 PHP 运行环境、MySQL/MariaDB 数据库、Web 服务器(如 Nginx/Apache)和服务器文件系统 协同工作。配置的优劣直接决定了您网站的长期生命力,体现在以下四个核心维度:

    1. 性能(Performance): 合理的配置,尤其是新版 PHP 和高性能数据库,能显著减少TTFB(首字节时间)和页面加载速度,直接影响用户体验和搜索引擎排名(SEO)。
    2. 兼容性(Compatibility): 随着 WordPress 核心、插件和主题的不断更新,使用最新的软件环境(如 PHP 8.3+)是确保所有功能正常运行、避免冲突和错误的先决条件。
    3. 安全性(Security): 主流软件的新版本通常修复了已知的安全漏洞。过时的环境配置是网站被攻击的主要入口,保持更新是最低且最有效的安全防护措施。
    4. 稳定性(Stability): 资源(CPU、内存)配置充足,且软件版本稳定,能确保网站在高并发访问或执行复杂任务(如数据导入、定期备份)时,不会崩溃或响应缓慢。

    强烈建议您选择并维护最新的软件环境,这是构建一个高性能、安全可靠的现代化 WordPress 网站的基石。

    官方推荐的软件环境

    为了确保最佳的兼容性和性能,WordPress 官方建议您的主机环境支持以下关键功能:

    • PHP 版本: 8.3 或更高版本。
    • 数据库: MySQL 8.0 或更高版本,或 MariaDB 10.6 或更高版本。
    • Web 服务器: 我们推荐使用 Apache 或 Nginx,它们是运行 WordPress 最稳定、功能最齐全的服务器。
    • 安全性: 必须支持 HTTPS。

    为了确保您的主机环境符合要求,您可以参考并使用以下标准咨询模板与主机商进行沟通:

    我对运行开源 WordPress 网站软件(https://wordpress.org/)很感兴趣,我想知道我的账户或云主机是否完全支持以下配置:

    • PHP 8.3 或更高版本
    • MySQL 8.0 或更高版本,或者 MariaDB 10.6 或更高版本
    • 使用 mod_rewrite 模块的 Nginx 或 Apache 服务器
    • 完整的 HTTPS / SSL 支持

    谢谢您的协助!

    云主机硬件选型:性能指标与配置建议

    选择合适的云主机硬件是确保 WordPress 网站流畅运行和应对流量变化的基础。以下配置建议旨在帮助您根据不同的网站规模和访问需求,做出最经济高效的决策。

    用途/规模建议 CPU 配置建议 内存 (RAM)存储类型及容量带宽 / 网络要求适用场景说明
    个人博客 / 启动项目1 核 vCPU1 – 2 GB20 – 30 GB SSD普通共享带宽资源要求低,适合静态内容为主、低频更新、访问量较小的初级站点。
    中型企业 / 商业网站2 核 vCPU2 – 4 GB40 – 60 GB SSD (高性能型)中等带宽,支持更高并发连接适用于运行复杂插件、电子商务功能、多用户互动和中等到访客量的商业网站。
    大型网站 / 高流量平台4 核或以上 vCPU 4 – 8 GB 或更多80 GB+ NVMe SSD专用高带宽,高并发处理能力专为支撑高访问量峰值、大量媒体文件(如图库、视频)和密集数据库查询操作而设计。

    硬件选购建议:

    1. 优先使用 SSD 存储: 相比传统机械硬盘 (HDD),固态硬盘 (SSD),尤其是 NVMe SSD,提供了数倍的读写速度,这对提升数据库查询性能和页面加载速度至关重要。
    2. 预留资源余量: 配置时应避免“刚好够用”的情况,建议预留至少 30% 的资源余量,以应对未来流量增长、新增插件负载、系统备份或缓存重建等临时性高需求。
    3. 关注弹性扩展能力: 如果预见到网站未来有快速增长的潜力,选择支持 纵向扩展(即快速升级 CPU、内存和存储)的云主机/VPS,可以大幅简化日后的运维和迁移工作。

    网站运维与安全:

    有效的运维策略和安全防护措施,是保障 WordPress 网站长期、稳定、高性能运行的关键。

    • 数据备份与灾难恢复(Backup): 启用主机商提供的自动快照或定期备份功能。建议进行异地备份,以防单点故障或数据丢失,确保在意外发生时能够迅速恢复。
    • 安全传输协议(HTTPS/SSL): 强制全站使用 HTTPS。使用 SSL / TLS 证书(如免费的 Let’s Encrypt)保障用户数据传输的安全与隐私。
    • 软件与环境更新(Updates): 保持 PHP 版本、数据库、WordPress 核心程序、所有插件和主题处于最新状态。这是降低安全风险、获得最佳兼容性与性能的最基础且关键的措施。
    • Web 服务器与缓存优化(Caching/CDN): 对于流量较大的网站,建议配置高性能的 Nginx 服务器。结合专业的缓存插件和 CDN(内容分发网络),全面提升内容加载速度和并发处理能力。
    • 主动安全防护(WAF/DDoS): 启用云主机或网络服务商提供的防火墙(如 WAF,Web 应用防火墙)和 DDoS 保护。设置合理的安全策略,有效保障网站抵御各种网络攻击。
  • 使用 Docker 一键部署本地 WordPress 开发环境

    下面是一份适合完全新手的 WordPress 本地安装教程(使用 Docker Desktop + docker compose)

    1. 为什么选择 Docker 部署 WordPress?

    对于初学者来说,Docker 就像是一个“虚拟打包盒”。它将 WordPress 运行所需的所有组件(数据库、PHP、Web服务器等)打包在隔离的环境中运行,完全不干扰你的电脑主机系统。

    主要优势对比:传统环境 vs. Docker 容器

    特性传统安装 Docker 容器化部署
    环境配置需手动安装和配置 PHP、MySQL、Nginx/Apache,易出现版本冲突和依赖错误。仅需一个配置文件 (docker-compose.yml),环境自动搭建,保证一次成功。
    系统侵入安装组件会修改操作系统配置,可能与其他软件冲突。环境完全隔离,零侵入主机系统,不产生任何“数字垃圾”。
    可移植性难以将环境从一台电脑迁移到另一台,或从本地迁移到云服务器。极高的可移植性。只需复制项目文件夹,即可在任何支持 Docker 的机器上一键还原。
    启动/停止需要分别启动和关闭 Web 服务、数据库服务等多个进程。使用 docker compose up -d 和 down 命令,一键管理所有服务。

    简而言之,Docker 是现代本地开发的首选方案。它帮你彻底告别环境配置的噩梦,让你将所有精力集中在 WordPress 本身,实现真正的即开即用。

    2. 安装 Docker Desktop 与创建独立项目目录

    2.1 安装 Docker Desktop (核心工具)

    访问 Docker 官方网站下载并安装适用于您操作系统的版本:

    https://www.docker.com/products/docker-desktop/

    安装完成后,请打开 Docker Desktop 应用程序,并确保左下角的状态显示为 Running(正在运行)。

    2.2 创建项目工作目录

    在您喜欢的位置(如桌面或文档文件夹),创建一个新的空文件夹,作为您的 WordPress 项目目录。所有配置文件和数据都将保存在这里。

    wordpress-docker

    3. 核心配置:编写 docker-compose.yml 文件

    进入 wordpress-docker 文件夹,新建一个名为 docker-compose.yml 的文件。

    把下面内容完整粘贴进去:

    services:
    
      db:
        image: mysql:8.0
        restart: always
        environment:
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: wordpress
          MYSQL_ROOT_PASSWORD: qixinlee.com
        volumes:
          - ./mysql:/var/lib/mysql
        networks:
          - wordpress_network
    
      wordpress:
        image: wordpress:latest
        restart: always
        ports:
          - "80:80"
        environment:
          WORDPRESS_DB_HOST: db
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: wordpress
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - ./web:/var/www/html
          - ./logs:/var/log/apache2  
        networks:
          - wordpress_network
    
      phpmyadmin:
        image: phpmyadmin:latest
        restart: always
        ports:
          - "8080:80"
        environment:
          PMA_HOST: db
        networks:
          - wordpress_network
    
    networks:
      wordpress_network:

    保存文件即可。

    4. 执行部署:启动容器并验证服务状态

    这是最关键的一步,我们将通过终端命令启动 WordPress 环境。

    4.1 打开终端并导航到项目目录

    首先,根据您的操作系统,打开相应的终端工具:

    系统终端工具
    WindowsPowerShell / CMD
    Mac / LinuxTerminal

    如何确定路径?

    您需要告诉终端工具您的项目文件夹 wordpress-docker 位于电脑的哪个位置。

    1. 找到项目位置: 找到您在 步骤 2 中创建的 wordpress-docker 文件夹。
    2. 复制完整路径:
    • Windows 用户: 在文件管理器中,点击地址栏并复制完整的路径(例如 C:\Users\YourName\Desktop\wordpress-docker)。
    • Mac / Linux 用户: 右键点击文件夹,选择“获取信息”或“属性”,然后复制路径。

    执行导航(cd 命令):

    使用 cd (Change Directory) 命令进入该文件夹。请将下面的示例路径替换为您自己电脑上的实际路径(YourName 也要替换)。

    • 如果您的文件夹在 Windows 桌面:
    cd C:\Users\YourName\Desktop\wordpress-docker
    • 如果您的文件夹在 Mac/Linux 桌面:
    cd /Users/YourName/Desktop/wordpress-docker

    成功进入文件夹后,您就可以进行下一步的启动操作了。

    4.2 执行启动命令

    运行以下命令来启动所有服务。-d 参数表示在后台(分离模式)运行容器:

    docker compose up -d

    提示: 第一次运行会自动下载 WordPress、MySQL 和 phpMyAdmin 的镜像文件——请耐心等待下载和创建过程完成。

    4.3 验证服务状态

    启动完成后,运行以下命令检查容器状态:

    docker compose ps

    如果看到以下三个服务都显示为 running,则表示部署成功:

    服务状态
    dbrunning
    wordpressrunning
    phpmyadminrunning

    5. 首次访问:通过浏览器完成 WordPress 首次安装

    浏览器访问:

    http://localhost

    第一次访问会进入 WordPress 安装向导:

    1. 选择语言
    2. 输入站点名称、管理员账号密码
    3. 完成安装并进入后台

    之后,你就能正常管理网站、安装主题、安装插件、写文章了。

    6. 数据库管理:通过 phpMyAdmin 图形界面管理数据库

    phpMyAdmin 是一个流行的、基于 Web 的 MySQL 数据库管理工具。如果你需要手动检查 WordPress 的数据表结构、备份数据,或进行高级的数据库操作,可以使用这个工具。

    浏览器访问:

    http://localhost:8080

    登录时,请使用您在 docker-compose.yml 文件中为 db 服务配置的凭证:

    字段值
    用户名wordpress
    密码wordpress

    7. 容器操作:停止、重启与日志查看

    动作命令
    停止所有服务docker compose down
    重启所有服务docker compose restart
    查看日志docker compose logs -f

    停止不会删除数据,因为数据库文件和网站文件都保存在你本地文件夹里。

    现在你成功拥有了本地 WordPress 环境

    以后开发或者测试主题、插件,都只需要:

    docker compose up -d

    就能一键启动 WordPress