From ee825d5fd93ab1492ca60d67fc1a1d97cbcb7a3d Mon Sep 17 00:00:00 2001 From: Fangliding Date: Wed, 11 Feb 2026 22:16:10 +0800 Subject: [PATCH] Tutorial: Fix incorrect description #819 #820 Co-authored-by: weycen <22557692+weycen@users.noreply.github.com> Co-authored-by: ts0307 <3348532+ts0307@users.noreply.github.com> --- docs/document/level-0/ch07-xray-server.md | 60 +------------------- docs/document/level-1/routing-lv1-part2.md | 2 +- docs/en/document/level-0/ch07-xray-server.md | 56 +----------------- docs/ru/document/level-0/ch07-xray-server.md | 57 +------------------ 4 files changed, 4 insertions(+), 171 deletions(-) diff --git a/docs/document/level-0/ch07-xray-server.md b/docs/document/level-0/ch07-xray-server.md index 93957089..350f6228 100644 --- a/docs/document/level-0/ch07-xray-server.md +++ b/docs/document/level-0/ch07-xray-server.md @@ -90,65 +90,7 @@ ![Xray服务器端安装流程演示](./ch07-img02-xray-cert-install.png) -5. `acme.sh` 会每 60 天检查一次证书并自动更新临期证书。但据我所知是它并不会自动将新证书安装给 `xray-core`,所以我们需要新增一个系统的自动周期任务来完成这一步。 - 1. 小小白白 Linux 基础命令: - - | 编号 | 命令名称 | 命令说明 | - | :------: | :----------: | :--------------------: | - | `cmd-15` | `crontab -e` | 编辑当前用户的定时任务 | - 2. 建立一个脚本文件(`xray-cert-renew.sh`) - - ```shell - nano ~/xray_cert/xray-cert-renew.sh - ``` - - 3. 把下面的内容复制进去,记得替换你的真实域名,然后保存退出 - - ```bash - #!/bin/bash - - /home/vpsadmin/.acme.sh/acme.sh --install-cert -d a-name.yourdomain.com --ecc --fullchain-file /home/vpsadmin/xray_cert/xray.crt --key-file /home/vpsadmin/xray_cert/xray.key - echo "Xray Certificates Renewed" - - chmod +r /home/vpsadmin/xray_cert/xray.key - echo "Read Permission Granted for Private Key" - - sudo systemctl restart xray - echo "Xray Restarted" - ``` - - ::: warning - 经大家提醒,`acme.sh` 有一个 `reloadcmd` 命令,可以在证书更新时自动执行特定命令,那么就可以指定自动给 `Xray` 安装证书,但因为 `crontab` 是 Linux - 系统中一个非常有用、非常常用的功能,所以本文保留 `crontab` 的方式来更新 `Xray` 证书。(对 `reloadcmd` 感兴趣的同学可以查看 `acme.sh` - 的[官方文档](https://github.com/acmesh-official/acme.sh)) - - 另外,录制动图时,脚本中没有加入重启 `Xray` 的命令,是因为 `Xray` 计划支持【证书热更新】功能,即 `Xray` 会自动识别证书更新并重载证书、无需手动重启。待功能加入后,我将适当修改 `config.json` - 开启此设置,并删除脚本中的重启命令。 - ::: - - 4. 给这个文件增加【可执行】权限 - - ``` - chmod +x ~/xray_cert/xray-cert-renew.sh - ``` - - 5. 运行 `crontab -e`,添加一个自动任务【每月自动运行一次`xray-cert-renew.sh`】 (注意不要加`sudo`,因为我们增加的是`vpsadmin` - 账户的自动任务。初次运行时会让你选择编辑器,当然是选择熟悉的`nano`啦!) - - ```shell - crontab -e - ``` - - 6. 把下面的内容增加在文件最后,保存退出即可。 - - ``` - # 1:00am, 1st day each month, run `xray-cert-renew.sh` - 0 1 1 * * bash /home/vpsadmin/xray_cert/xray-cert-renew.sh - ``` - - 7. 完整流程演示如下: - - ![每月自动给Xray安装证书](./ch07-img03-crontab-cert-renew.gif) +5. `acme.sh` 会每天检查一次并自动更新有效期短于 30 天的证书,Xray 默认会自动热重载证书,无需担心后续证书更新的问题。 ## 7.4 配置 Xray diff --git a/docs/document/level-1/routing-lv1-part2.md b/docs/document/level-1/routing-lv1-part2.md index 1da7320d..a31e5532 100644 --- a/docs/document/level-1/routing-lv1-part2.md +++ b/docs/document/level-1/routing-lv1-part2.md @@ -159,7 +159,7 @@ ### 5.5 基于更多条件的分流 -到目前位置,我们仍然只讲了【路由功能】分流能力的冰山一角!因为它还支持很多其他的判断条件!我在此简单罗列如下: +到目前为止,我们仍然只讲了【路由功能】分流能力的冰山一角!因为它还支持很多其他的判断条件!我在此简单罗列如下: 本文已经讲过的: diff --git a/docs/en/document/level-0/ch07-xray-server.md b/docs/en/document/level-0/ch07-xray-server.md index b3680ae4..ea574667 100644 --- a/docs/en/document/level-0/ch07-xray-server.md +++ b/docs/en/document/level-0/ch07-xray-server.md @@ -85,61 +85,7 @@ Although we have already applied for TLS certificates earlier, according to the ![Xray Certificate Install Demo](./ch07-img02-xray-cert-install.png) -5. `acme.sh` checks the certificate every 60 days and automatically renews it if it's close to expiration. However, as far as I know, it does not automatically install the new certificate to `xray-core`, so we need to add a system automatic periodic task to complete this step. - 1. Linux 101 - Basic Commands: - - | Number | Command Name | Command Description | - | :------: | :----------: | :-------------------------------------: | - | `cmd-15` | `crontab -e` | Edit the current user's scheduled tasks | - 2. Create a script file (`xray-cert-renew.sh`): - - ```shell - nano ~/xray_cert/xray-cert-renew.sh - ``` - - 3. Copy the content below into it, remembering to replace it with your real domain name, then save and exit. - - ```bash - #!/bin/bash - - /home/vpsadmin/.acme.sh/acme.sh --install-cert -d a-name.yourdomain.com --ecc --fullchain-file /home/vpsadmin/xray_cert/xray.crt --key-file /home/vpsadmin/xray_cert/xray.key - echo "Xray Certificates Renewed" - - chmod +r /home/vpsadmin/xray_cert/xray.key - echo "Read Permission Granted for Private Key" - - sudo systemctl restart xray - echo "Xray Restarted" - ``` - - ::: warning - As pointed out by others, `acme.sh` has a `reloadcmd` command that can automatically execute specific commands when the certificate is updated. This could be used to automatically install certificates for `Xray`. However, since `crontab` is a very useful and common function in Linux systems, this article retains the `crontab` method for updating `Xray` certificates. (Those interested in `reloadcmd` can check the [official documentation](https://github.com/acmesh-official/acme.sh) of `acme.sh`). - - Additionally, in the GIF recording, the script did not include the `Xray` restart command because `Xray` plans to support [Certificate Hot Reload], meaning `Xray` will automatically recognize certificate updates and reload them without a manual restart. Once this feature is added, I will modify `config.json` appropriately to enable this setting and remove the restart command from the script. - ::: - - 4. Add [Executable] permission to this file. - - ```shell - chmod +x ~/xray_cert/xray-cert-renew.sh - ``` - - 5. Run `crontab -e` to add an automatic task [Run `xray-cert-renew.sh` automatically once a month] (Note: do not add `sudo`, because we are adding the automatic task for the `vpsadmin` account. When running for the first time, it will ask you to choose an editor; choose the familiar `nano`!). - - ```shell - crontab -e - ``` - - 6. Add the following content to the end of the file, save, and exit. - - ``` - # 1:00am, 1st day each month, run `xray-cert-renew.sh` - 0 1 1 * * bash /home/vpsadmin/xray_cert/xray-cert-renew.sh - ``` - - 7. The complete process demonstration is as follows: - - ![Automatically install certificates for Xray monthly](./ch07-img03-crontab-cert-renew.gif) +5. `acme.sh` checks every day and automatically updates certificates that expire within 30 days. Xray reloads the certificate automatically by default, so you don't need to worry about certificate updates. ## 7.4 Configuring Xray diff --git a/docs/ru/document/level-0/ch07-xray-server.md b/docs/ru/document/level-0/ch07-xray-server.md index 4f498b32..7f7a0ccf 100644 --- a/docs/ru/document/level-0/ch07-xray-server.md +++ b/docs/ru/document/level-0/ch07-xray-server.md @@ -85,62 +85,7 @@ Xray основан на проекте с открытым исходным к ![Установка сертификата для Xray](./ch07-img02-xray-cert-install.png) -5. `acme.sh` проверяет срок действия сертификата каждые 60 дней и автоматически обновляет его при необходимости. Однако, насколько мне известно, он не устанавливает новый сертификат для `xray-core` автоматически. Поэтому нам нужно добавить автоматическое задание cron, которое будет делать это за нас. - 1. Базовые команды Linux: - - | Номер | Команда | Описание | - | :------: | :----------: | :------------------------------------------- | - | `cmd-15` | `crontab -e` | Редактирование crontab текущего пользователя | - - 2. Создаём файл скрипта (`xray-cert-renew.sh`): - - ```shell - nano ~/xray_cert/xray-cert-renew.sh - ``` - - 3. Копируем в него следующий код, заменив `sub.yourdomain.com` на своё доменное имя, и сохраняем файл: - - ```bash - #!/bin/bash - - /home/vpsadmin/.acme.sh/acme.sh --install-cert -d sub.yourdomain.com --ecc --fullchain-file /home/vpsadmin/xray_cert/xray.crt --key-file /home/vpsadmin/xray_cert/xray.key - echo "Xray Certificates Renewed" - - chmod +r /home/vpsadmin/xray_cert/xray.key - echo "Read Permission Granted for Private Key" - - sudo systemctl restart xray - echo "Xray Restarted" - ``` - - ::: warning - Как заметили пользователи, `acme.sh` имеет команду `reloadcmd`, которая позволяет выполнить произвольную команду после обновления сертификата. Таким образом, можно настроить автоматическую установку сертификата для `Xray`. Однако, поскольку `crontab` — очень полезный и часто используемый инструмент в Linux, в данном руководстве мы будем использовать его для обновления сертификата `Xray`. (Подробнее о команде `reloadcmd` можно прочитать в [документации `acme.sh`](https://github.com/acmesh-official/acme.sh)). - - Кроме того, в момент записи гифки в скрипт не была добавлена команда перезапуска `Xray`, поскольку в планах разработчиков `Xray` — поддержка **горячего обновления сертификатов**. Это означает, что `Xray` сможет автоматически обнаруживать обновление сертификата и перезагружать его без необходимости перезапуска. После добавления этой функции я обновлю конфигурацию `config.json`, включив эту настройку, и удалю команду перезапуска из скрипта. - ::: - - 4. Делаем скрипт исполняемым: - - ```shell - chmod +x ~/xray_cert/xray-cert-renew.sh - ``` - - 5. Запускаем `crontab -e`, чтобы добавить задание на автоматическое выполнение `xray-cert-renew.sh` каждый месяц (не используйте `sudo`, так как мы добавляем задание для пользователя `vpsadmin`. При первом запуске `crontab` вам будет предложено выбрать редактор. Выбираем знакомый нам `nano`!): - - ```shell - crontab -e - ``` - - 6. Добавляем следующую строку в конец файла и сохраняем его: - - ``` - # 1:00am, 1st day each month, run `xray-cert-renew.sh` - 0 1 1 * * bash /home/vpsadmin/xray_cert/xray-cert-renew.sh - ``` - - 7. Весь процесс показан на гифке: - - ![Автоматическая установка сертификата для Xray каждый месяц](./ch07-img03-crontab-cert-renew.gif) +5. `acme.sh` будет проверять раз в день и автоматически обновлять сертификаты, срок действия которых истекает менее чем через 30 дней. Xray по умолчанию автоматически перезагружает сертификаты, так что нет необходимости беспокоиться о последующих обновлениях сертификатов. ## 7.4 Настройка Xray