4 Commits 2e363445fc ... 9c4fa23931

Autore SHA1 Messaggio Data
  laperuz92 9c4fa23931 Some README updates (#2562) 6 giorni fa
  mhsanaei 2938694c45 geosite:category-ru and ir 6 giorni fa
  mhsanaei 88d0fb9753 Reality - maxTimediff 6 giorni fa
  mhsanaei d23a7f81ef freedom - default value for timeout 6 giorni fa

+ 2 - 0
README.md

@@ -169,6 +169,8 @@ systemctl restart x-ui
    docker compose up -d
    ```
 
+  Add ```--pull always``` flag to make docker automatically recreate container if a newer image is pulled. See https://docs.docker.com/reference/cli/docker/container/run/#pull for more info.
+
    **OR**
 
    ```sh

+ 11 - 8
README.ru_RU.md

@@ -12,7 +12,7 @@
 
 > **Отказ от ответственности:** Этот проект предназначен только для личного обучения и общения. Пожалуйста, не используйте его в незаконных целях и не применяйте в производственной среде.
 
-**Если этот проект оказался полезным для вас, вы можете оценить его, постативив звёздочку** :star2:
+**Если этот проект оказался полезным для вас, вы можете оценить его, поставив звёздочку** :star2:
 
 <p align="left">
   <a href="https://buymeacoffee.com/mhsanaei" target="_blank">
@@ -53,7 +53,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.
 
    - **Get SSL:** Получить SSL сертификаты.
    - **Revoke:** Отозвать существующие SSL сертификаты.
-   - **Force Renew:** Принудительно превыпустить SSL сертификаты.
+   - **Force Renew:** Принудительно перевыпустить SSL сертификаты.
 
 ### Certbot
 
@@ -76,7 +76,7 @@ certbot renew --dry-run
 **Как получить глобальный API-ключ Cloudflare:**
 
 1. Выполните команду `x-ui` в терминале, затем выберите `Cloudflare SSL Certificate`.
-2. Посетите ссылку: [Cloudflare API Tokens](https://dash.cloudflare.com/profile/api-tokens).
+2. Перейдите по ссылке: [Cloudflare API Tokens](https://dash.cloudflare.com/profile/api-tokens).
 3. Нажмите на "View Global API Key" (см. скриншот ниже):
    ![](media/APIKey1.PNG)
 4. Возможно, вам потребуется повторно пройти аутентификацию. После этого ключ API будет отображён (см. скриншот ниже):
@@ -168,6 +168,8 @@ systemctl restart x-ui
    docker compose up -d
    ```
 
+  Добавьте параметр ```--pull always``` для автоматического обновления контейнера, когда публикуется новый образ. Подробности: https://docs.docker.com/reference/cli/docker/container/run/#pull
+
    **ИЛИ**
 
    ```sh
@@ -285,6 +287,7 @@ location /sub {
 - Индонезийский
 - Украинский
 - Турецкий
+- Португальский (Бразилия)
 
 ## Возможности
 
@@ -329,7 +332,7 @@ location /sub {
    - Выберите опцию `Reset Web Base Path`.
 
 2. **Генерация или настройка пути:**
-   - Путь будет случайным образом сгенерирован, или вы можете ввести пользовательский путь.
+   - Путь будет сгенерирован случайным образом, или вы можете ввести собственный путь.
 
 3. **Просмотр текущих настроек:**
    - Чтобы просмотреть текущие настройки, используйте команду `x-ui settings` в терминале или опцию `View Current Settings` в `x-ui`.
@@ -430,7 +433,7 @@ WARP встроен, и дополнительная установка не т
 
 - Периодические отчеты
 - Уведомления о входе
-- Уведомления о пороге CPU
+- Уведомления о пороге загруженности процессора
 - Уведомления о времени истечения и трафике заранее
 - Поддерживает меню отчетов клиента, если имя пользователя телеграм клиента добавлено в конфигурации пользователя
 - Поддержка отчета о трафике через Telegram, поиск по UUID (VMESS/VLESS) или паролю (TROJAN) - анонимно
@@ -444,7 +447,7 @@ WARP встроен, и дополнительная установка не т
 
 ### Настройка телеграм-бота
 
-- Запустить [Botfather](https://t.me/BotFather) в вашем аккаунте Telegram:
+- Запустите [Botfather](https://t.me/BotFather) в вашем аккаунте Telegram:
     ![Botfather](./media/botfather.png)
 
 - Создайте нового бота с помощью команды /newbot: у вас спросят 2 вопроса: отображаемое имя и имя пользователя для вашего бота. Обратите внимание, что имя пользователя должно заканчиваться на слово "bot".
@@ -459,7 +462,7 @@ WARP встроен, и дополнительная установка не т
 Введите токен вашего бота в поле ввода номер 3.
 Введите ID пользователя в поле ввода номер 4. Telegram-аккаунты с этим ID будут администраторами бота. (Вы можете ввести несколько ID, разделяя их запятой)
 
-- Как получить ID пользователя Telegram? Используйте этого [бота](https://t.me/useridinfobot). Запустите бота, и он предоставит вам ваше ID пользователя Telegram.
+- Как получить ID пользователя Telegram? Используйте этот [бот](https://t.me/useridinfobot). Запустите бота, и он отобразит ваш ID пользователя Telegram.
 ![ID пользователя](./media/user-id.png)
 
 </details>
@@ -493,7 +496,7 @@ WARP встроен, и дополнительная установка не т
 | `POST` | `"/resetAllTraffics"`              | Сбросить трафик всех входящих соединений
 | `POST` | `"/resetAllClientTraffics/:id"`    | Сбросить трафик всех клиентов в входящем соединении
 | `POST` | `"/delDepletedClients/:id"`        | Удалить истекших клиентов в входящем соединении (-1: всех)
-| `POST` | `"/onlines"`                       | Получить пользователей, которые онлайн (список email'ов)
+| `POST` | `"/onlines"`                       | Получить пользователей, которые находятся онлайн (список email'ов)
 
 \*- Поле `clientId` должно быть заполнено следующим образом:
 

+ 2 - 2
web/assets/js/model/outbound.js

@@ -851,7 +851,7 @@ Outbound.Settings = class extends CommonClass {
 Outbound.FreedomSettings = class extends CommonClass {
     constructor(
         domainStrategy = '',
-        timeout = '',
+        timeout = 10,
         redirect = '',
         fragment = {},
         noise = {}
@@ -901,7 +901,7 @@ Outbound.FreedomSettings.Fragment = class extends CommonClass {
     }
 };
 Outbound.FreedomSettings.Noise = class extends CommonClass {
-    constructor(packet = '', delay = '') {
+    constructor(packet = 'rand:100-200', delay = '10-20') {
         super();
         this.packet = packet;
         this.delay = delay;

+ 3 - 0
web/html/xui/form/tls_settings.html

@@ -184,6 +184,9 @@
     <a-form-item label='SNI'>
       <a-input v-model.trim="inbound.stream.reality.serverNames"></a-input>
     </a-form-item>
+    <a-form-item label='Max Time Diff (ms)'>
+      <a-input-number v-model.number="inbound.stream.reality.maxTimediff" :min="0"></a-input-number>
+    </a-form-item>
     <a-form-item>
       <template slot="label">
         <a-tooltip>

+ 1 - 3
web/html/xui/settings.html

@@ -706,9 +706,7 @@
             let category = '';
             if (["cn", "private"].includes(d)) {
               category = "";
-            } else if (d === 'ru') {
-              category = "category-gov-";
-            } else {
+            } else if (["ru", "ir"].includes(d)) {
               category = "category-";
             }
             rules[0].domain.push("geosite:" + category + d);

+ 2 - 1
web/html/xui/xray.html

@@ -850,10 +850,11 @@
                         "regexp:.*\\.cn$"
                     ],
                     ru: [
-                        "geosite:category-gov-ru",
+                        "geosite:category-ru",  //https://github.com/v2fly/domain-list-community/blob/master/data/category-ru
                         "regexp:.*\\.ru$"
                     ],
                     ir: [
+                        "geosite:category-ir",  // https://github.com/v2fly/domain-list-community/blob/master/data/category-ir
                         "regexp:.*\\.ir$",
                         "regexp:.*\\.xn--mgba3a4f16a$",  // .ایران
                         "ext:geosite_IR.dat:ir"