mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-22 22:38:05 +03:00
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>
This commit is contained in:
co-authored by
weycen
ts0307
parent
cc8f03de78
commit
ee825d5fd9
@@ -90,65 +90,7 @@
|
||||
|
||||

|
||||
|
||||
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. 完整流程演示如下:
|
||||
|
||||

|
||||
5. `acme.sh` 会每天检查一次并自动更新有效期短于 30 天的证书,Xray 默认会自动热重载证书,无需担心后续证书更新的问题。
|
||||
|
||||
## 7.4 配置 Xray
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
### 5.5 基于更多条件的分流
|
||||
|
||||
到目前位置,我们仍然只讲了【路由功能】分流能力的冰山一角!因为它还支持很多其他的判断条件!我在此简单罗列如下:
|
||||
到目前为止,我们仍然只讲了【路由功能】分流能力的冰山一角!因为它还支持很多其他的判断条件!我在此简单罗列如下:
|
||||
|
||||
本文已经讲过的:
|
||||
|
||||
|
||||
@@ -85,61 +85,7 @@ Although we have already applied for TLS certificates earlier, according to the
|
||||
|
||||

|
||||
|
||||
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:
|
||||
|
||||

|
||||
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
|
||||
|
||||
|
||||
@@ -85,62 +85,7 @@ Xray основан на проекте с открытым исходным к
|
||||
|
||||

|
||||
|
||||
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. Весь процесс показан на гифке:
|
||||
|
||||

|
||||
5. `acme.sh` будет проверять раз в день и автоматически обновлять сертификаты, срок действия которых истекает менее чем через 30 дней. Xray по умолчанию автоматически перезагружает сертификаты, так что нет необходимости беспокоиться о последующих обновлениях сертификатов.
|
||||
|
||||
## 7.4 Настройка Xray
|
||||
|
||||
|
||||
Reference in New Issue
Block a user