作者: 启鑫

  • WordPress限制文章修订版本数量

    1. 为什么要限制文章修订版本?

    WordPress 默认会在每次保存或更新文章时创建一个修订版本。这在编辑过程中可以提供历史记录,方便回滚到之前的版本。然而,如果不加限制,数据库会累积大量的修订版本,可能会影响网站性能。因此,限制修订版本的数量可以减少数据库冗余,提高查询效率。

    2. 通过 wp-config.php 限制修订版本数量

    WordPress 允许通过 wp-config.php 文件限制文章的修订版本数量。

    步骤

    1. 打开 WordPress 安装目录 通过 FTP 或 SSH 访问 WordPress 站点的根目录。
    2. 编辑 wp-config.php 文件 使用文本编辑器打开 wp-config.php 文件。
    3. 添加以下代码 在 wp-config.php 文件中
    // Enable WordPress article revisions, limited to 3
    define( 'WP_POST_REVISIONS', 3 );
    1. 保存并上传 保存修改后的 wp-config.php 文件,并上传回服务器。

    3. 其他可选设置

    • 完全禁用修订版本 如果不想存储任何修订版本,可以使用以下代码:
    // Disable WordPress article revisions
    define( 'WP_POST_REVISIONS', false );

    这将禁止 WordPress 存储任何修订版本,仅保留自动保存的版本。

    • 完全启用修订版本 如果想存储每个修订版本,可以使用以下代码:
    // Enable WordPress article version revision
    define( 'WP_POST_REVISIONS', true );

    这将启用 WordPress 存储存储每个修订版本

    • 设置更高或更低的限制 如果需要更改存储的修订版本数量,只需修改 WP_POST_REVISIONS 的值。例如,存储 5 个修订版本:
    // Enable WordPress article revisions, limited to 5
    define( 'WP_POST_REVISIONS', 5 );
  • Windows 11如何彻底关闭 Shift 切换中英文输入

    关闭 Windows 11 中 Shift 键切换中英文输入的功能,主要是为了提高输入效率、减少误操作和干扰。许多用户在使用过程中可能会不小心按到 Shift 键,从而导致语言切换,这种情况往往会打断输入流程。通过关闭 Shift 键切换,可以避免这一问题,并且让用户可以根据自己的需求自定义输入法切换方式,提升工作或学习的效率。

    1. 打开“设置”:
      • 按下 Win + I 组合键,或者点击“开始”菜单,然后点击“设置”图标。
    2. 进入“时间和语言”:
      • 在“设置”窗口中,点击“时间和语言”。
    3. 选择“语言和区域”:
      • 在“时间和语言”菜单中,点击“语言和区域”。
    4. 选择“中文(简体,中国)”:
      • 在语言列表中找到“中文(简体,中国)”然后点击它。
    5. 点击“语言选项”:
      • 在中文(简体,中国)的选项下面,点击“语言选项”。
    6. 点击“微软拼音”的“键盘选项”:
      • 在键盘选项里,找到“微软拼音”选项,然后点击“键盘选项”。
    7. 点击“按键”:
      • 在微软拼音的键盘选项里面,点击“按键”选项。
    8. 取消 Shift 选项:
      • 在按键选项里面,找到与shift切换相关的选项,取消相关选项,然后点击确定。
  • Ollama 安全加固措施

    Ollama 安全加固措施

    为了保护在公网上运行的 Ollama 服务并限制访问,可以采取以下措施:

    方法一:通过防火墙限制

    Linux系统 使用 ufw 防火墙

    1. 检查 Ollama 默认监听的端口(通常是 11434)。
    2. 配置 ufw 只允许指定 IP 访问 11434 端口:
    # 允许指定 IP 访问 11434 端口
    ufw allow from <指定IP> to any port 11434 proto tcp
    
    # 拒绝其他所有 IP 访问 11434 端口
    ufw deny in to any port 11434 proto tcp

    将 <指定IP> 替换为允许访问的 IP 地址(如 192.168.1.100)。完成后,重新加载防火墙规则:

    ufw reload

    确保 ufw 已启用:

    ufw enable

    Windows 系统(使用 Windows 防火墙)

    1. 打开“Windows Defender 防火墙” -> “高级设置”。
    2. 创建一个新的“入站规则”,选择端口 11434,协议为 TCP。
    3. 在“范围”选项中,指定允许访问的远程 IP 地址。
    4. 保存并应用规则,其他未指定的 IP 将被阻止。

    方法二:修改 Ollama 监听地址(配合防火墙)

    默认情况下,Ollama 可能监听 0.0.0.0(所有接口)。你可以将其改为仅监听本地接口(127.0.0.1),然后通过反向代理(如 Nginx)控制访问。

    设置环境变量 OLLAMA_HOST:

    Linux:

    在 /etc/systemd/system/ollama.service 中添加:

    Environment="OLLAMA_HOST=127.0.0.1:11434"

    然后重启ollama服务

    systemctl daemon-reload
    systemctl restart ollama

    Windows:

    在系统环境变量中添加 OLLAMA_HOST=127.0.0.1:11434,然后重启 Ollama 服务。

    通过配置Nginx反向代理,在代理层限制 IP:

    server {
        listen 80;
        location / {
            proxy_pass http://127.0.0.1:11434;
            allow <指定IP>;  # 替换为允许的 IP
            deny all;        # 拒绝其他 IP
        }
    }

    重启 Nginx:

    systemctl restart nginx

    方法三:使用 VPN 或内网访问

    将 Ollama 部署在本地网络中,通过 VPN连接到服务器,避免直接暴露在公网上。仅允许 VPN 内的 IP 访问服务。

  • Debian 12 上使用 Fail2Ban 来增强 SSH 的安全性

    使用 Fail2Ban 来增强 SSH 安全性是一个非常有效的选择,特别是针对暴力破解攻击。Fail2Ban 可以监控系统日志并自动封禁恶意 IP 地址,减少暴力破解的尝试。以下是配置 Fail2Ban 的步骤:

    1. 安装 Fail2Ban

    Debian 12 默认软件仓库中包含 Fail2Ban,可以通过以下命令安装:

    apt update
    apt install fail2ban

    安装完成后,Fail2Ban 会自动启动。你可以使用以下命令检查其状态:

    systemctl status fail2ban

    2. 配置 Fail2Ban

    Fail2Ban 的配置文件位于 /etc/fail2ban/ 目录下。默认的全局配置文件是 /etc/fail2ban/jail.conf,但建议不要直接修改该文件,而是创建一个本地配置文件 /etc/fail2ban/jail.local 或者在 /etc/fail2ban/jail.d/ 目录下添加自定义配置。

    创建本地配置文件

    首先,复制默认配置文件并编辑:

    cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    nano /etc/fail2ban/jail.local

    配置 SSH 防护

    在 jail.local 文件中,找到 [sshd] 部分,或者添加以下内容:

    [sshd]
    enabled  = true
    port     = 22
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 5
    bantime  = 3600
    findtime = 600

    说明:

    • enabled = true:启用 SSH 防护。
    • port = 22:SSH 默认端口(如果更改过端口,请相应调整)。
    • filter = sshd:使用内置的 SSH 过滤器。
    • logpath = /var/log/auth.log:Debian 12 中 SSH 日志的默认路径。
    • maxretry = 5:如果超过 5 次登录失败,IP 将被封禁。
    • bantime = 3600:封禁时间为 1 小时(单位:秒,视情况调整)。
    • findtime = 600:统计失败登录尝试的时间窗口为 10 分钟。

    完成后保存并退出编辑器。

    3. 启动并测试 Fail2Ban

    配置完成后,重启 Fail2Ban 以应用配置:

    systemctl restart fail2ban

    检查 Fail2Ban 是否正常运行:

    fail2ban-client status

    查看 SSH 防护的具体状态:

    fail2ban-client status sshd

    4. 监控和解禁

    你可以随时查看被封禁的 IP 地址,并手动解禁:

    查看被封禁的 IP

    fail2ban-client get sshd banip

    手动解禁某个 IP(如果误封)

    fail2ban-client unban 目标IP

    注意事项

    • 确保 SSH 服务(sshd)已启用并正常运行。
    • 如果使用了非标准日志路径,需要调整 logpath。
    • 定期检查日志文件 /var/log/fail2ban.log,确保规则已生效。
  • LLM 的双重含义

    什么是LLM?它为什么有不同的意思?

    你可能在不同的场合听到过“LLM”这个词,但它的意思可能让你有点混淆。其实,LLM在不同的领域有不同的含义,今天我们就来聊聊它到底是什么意思,为什么它会有这么多不同的解释。

    LLM:法学硕士

    首先,LLM 在法学界是非常常见的缩写,它代表的是“法学硕士”(Master of Laws)。如果你知道有些人去大学读法律,学完之后可能拿到一个叫做“法学硕士”的学位,这个学位就叫做LLM。它是专门给那些已经获得法学本科学位的人,进一步深造的学位。

    举个例子:你读完法律本科后,决定继续学习法律,专攻某一方面的知识,比如国际法、商法等,这时候你就可以去申请法学硕士(LLM)学位。这种学位通常在一些国家很有用,能够帮助你在法律界获得更好的职位。

    所以,在法学领域,LLM 就是法学硕士的意思。

    LLM:大语言模型

    在人工智能(AI)领域,LLM有着完全不同的含义。在AI里,LLM代表的是“大语言模型”(Large Language Model)。这是一种专门用来处理语言的人工智能技术。它能够读懂和生成自然语言,比如你和智能助手对话,智能助手能理解你的问题并给出回答,这背后就可能是一个大语言模型在工作。

    这些大语言模型是通过大量的数据训练出来的,比如从互联网上抓取各种文章、书籍、对话记录等内容,它们学会了语言的规则和结构。所以,当你输入一句话,它就能根据学到的知识给你一个合适的回答。比如,像GPT-3和GPT-4就是知名的大语言模型。

    简单来说,LLM 在AI领域是指用来做语言处理的强大程序,它可以帮助人们更好地理解、生成和使用语言。

    为什么LLM有两种不同的意思?

    那为什么“LLM”这个词会有两种完全不同的意思呢?其实这就是因为不同的领域使用这个缩写的时候,它们有各自的传统和需求。

    1. 法学界的历史 在法学界,LLM 作为法学硕士学位的缩写已经存在很久了,很多国家的法学院都习惯使用这个缩写。因此,当我们提到“LLM”时,大家首先会想到的是法学硕士。
    2. AI技术的快速发展 在人工智能领域,随着技术的发展,新的术语和缩写不断涌现。LLM 这个缩写被用来代表“大语言模型”,是因为这种技术需要处理大量的语言数据,而“LLM”也正好符合这个概念。

    由于两者的应用场景完全不同,虽然它们用的是同一个缩写,但人们根据讨论的上下文可以很容易区分是指哪个意思。

    如何避免混淆?

    虽然LLM在法学和AI领域有不同的含义,但只要你理解了它们各自的背景,基本上就不容易混淆了。这里有几个简单的方法帮助你区分它们:

    • 如果你在讨论法律、律师、法学教育等话题,LLM指的肯定是“法学硕士”。比如,你听到有人说“他刚刚拿到LLM学位”,那肯定是在说他获得了法学硕士学位。
    • 如果你在谈论人工智能、机器学习、语言处理等技术话题,LLM指的就是“大语言模型”。比如,当有人提到“这个AI是基于LLM构建的”,那肯定是在说它是使用了大语言模型来处理语言。

  • Linux发行版在日常使用与业务需求的最佳选择

    关于如何在日常使用和业务应用中选择合适的Linux发行版的实用指南。文章详细分析了不同Linux发行版的特性、优势以及适用场景,以便能够根据自身需求做出选择。

    一、日常使用(个人用户、开发者)

    适用于普通用户、开发者、开源爱好者等,关注易用性、社区支持、桌面体验和软件生态。

    1. 适合桌面用户

    • Ubuntu(桌面版)
      • 优势:安装简单,默认支持大量硬件,应用商店丰富,长期支持(LTS)版本可用。强大的社区支持,丰富的文档。
      • 适用场景:办公、日常上网、影音娱乐、开发环境(VS Code、Docker、PyCharm等)。
      • 缺点:默认启用 Snap,有时会影响软件加载速度。
    • Linux Mint
      • 优势:基于 Ubuntu,界面类似 Windows,适合新手,默认带有更多开箱即用的软件。对老旧硬件兼容性更好。
      • 适用场景:替代 Windows 或 macOS,稳定性好,轻量级硬件支持更友好。
      • 缺点:社区活跃度略低于 Ubuntu。
    • Fedora Workstation
      • 优势:采用 GNOME 桌面,支持最新的 Linux 技术(如 Wayland、PipeWire),开发者友好,拥有较新的软件包。
      • 适用场景:开发者、喜欢尝鲜的人。
      • 缺点:生命周期较短(6 个月一次大更新)。
    • Manjaro
      • 优势:基于 Arch,安装方便,提供滚动更新但更稳定,拥有 AUR(Arch User Repository),软件资源丰富。
      • 适用场景:希望使用 Arch 但不想手动配置的用户。
      • 缺点:部分更新可能导致系统不稳定。
    • Elementary OS
      • 优势:注重美观和简洁,界面类似 macOS,用户体验良好。
      • 适用场景:追求美观和易用性的用户。
      • 缺点:软件生态相对较小。
    • Pop!_OS
      • 优势:由 System76 开发,对游戏和开发支持良好,特别是对NVIDIA显卡支持优化。
      • 适用场景:游戏玩家,开发者,特别是深度学习开发者。
      • 缺点:相对较新的发行版,社区规模小于Ubuntu。

    2. 适合开发者

    • Ubuntu(LTS)
      • 适合大多数开发环境(Python、Node.js、Go、Docker、Kubernetes)。
      • 强大的社区支持,问题易解决。
    • Debian
      • 更稳定,适合需要长期运行的开发环境(服务器、容器化部署)。
      • 默认仓库软件较旧,可手动添加 backports 或使用 Testing 版。
    • Arch Linux
      • 适合高级用户,完全定制化,提供最新的软件版本和内核。
      • 适合构建极简、个性化的开发环境。
    • openSUSE Tumbleweed
      • 优势:滚动更新模型,提供最新的开发工具和库,YaST 管理工具强大。
      • 适用场景:追求最新软件的开发者。
      • 缺点:滚动更新可能带来不稳定性。

    二、业务使用(服务器、企业、生产环境)

    适用于服务器、数据中心、云计算、企业内部系统等,关注稳定性、安全性、长期支持、软件兼容性。

    1. 企业服务器

    • Ubuntu Server(LTS)
      • 适合云计算(支持 AWS、Azure、GCP)、容器化部署(Docker、K8s)。
      • 5 年 LTS + 可选 10 年扩展支持(Ubuntu Pro)。
    • Debian
      • 以稳定著称,适用于 Web 服务器、数据库等长期运行的应用。
      • 软件更新相对较慢,但非常可靠。
    • Rocky Linux / AlmaLinux
      • RHEL(Red Hat Enterprise Linux)的完全兼容替代品,适用于企业生产环境。
      • 长期支持,适用于需要稳定性的企业服务器。
    • Red Hat Enterprise Linux(RHEL)
      • 适用于企业级业务,提供商业支持(Red Hat 订阅)。
      • 大规模生产环境、企业 IT 部门使用较多。
    • Oracle Linux
      • 优势:与Oracle产品兼容性好,适合运行Oracle数据库等。
      • 适用场景:运行Oracle相关业务的企业。
      • 缺点:相对RHEL,社区规模较小。

    2. 高性能计算 / 数据中心

    • SUSE Linux Enterprise Server(SLES)
      • 适用于 SAP、大型企业应用,专注于企业级可靠性。
    • Amazon Linux
      • AWS 官方 Linux 发行版,针对 AWS 进行了优化,适用于云计算。

    3. 容器 / 云计算 / DevOps

    • Ubuntu Server
      • 适用于 Docker、Kubernetes,支持 cloud-init,兼容 AWS/GCP/Azure。
    • Debian
      • 轻量级,适用于自定义容器环境,基础镜像占用较小。
    • RHEL / Rocky Linux / AlmaLinux
      • 适用于企业级 Kubernetes 部署(如 OpenShift)。
    • Flatcar Container Linux
      • 专为容器化工作负载设计(类似于已停更的 CoreOS)。

    4. 嵌入式 / 轻量级服务器

    • Alpine Linux
      • 体积小,安全性高,适用于容器和嵌入式设备。
    • Raspberry Pi OS
      • 适用于树莓派、物联网(IoT)项目。
    • NixOS
      • 优势:声明式配置,可重复构建,适合构建高度定制化的嵌入式系统。
      • 适用场景:需要高度定制化和可重复构建的嵌入式系统。
      • 缺点:学习曲线陡峭。