Merge branch 'XTLS:main' into ru
commit
2785ca7851
|
@ -3,6 +3,9 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -36,6 +39,7 @@ jobs:
|
||||||
pnpm install
|
pnpm install
|
||||||
yarn docs:build
|
yarn docs:build
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -47,6 +51,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
yarn docs:build
|
yarn docs:build
|
||||||
- name: Deploy to main Repository
|
- name: Deploy to main Repository
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
with:
|
||||||
personal_token: ${{ secrets.ACTION_PERSONAL_TOKEN }}
|
personal_token: ${{ secrets.ACTION_PERSONAL_TOKEN }}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import process from 'node:process'
|
||||||
// import { getDirname, path } from '@vuepress/utils'
|
// import { getDirname, path } from '@vuepress/utils'
|
||||||
import { getDirname, path } from 'vuepress/utils'
|
import { getDirname, path } from 'vuepress/utils'
|
||||||
import { MermaidPlugin } from './plugins/mermaid/node/mermaid'
|
import { MermaidPlugin } from './plugins/mermaid/node/mermaid'
|
||||||
|
import i18nPlugin from "vuepress-plugin-i18n";
|
||||||
|
|
||||||
const __dirname = getDirname(import.meta.url)
|
const __dirname = getDirname(import.meta.url)
|
||||||
console.log('>>> __dirname -> ', __dirname)
|
console.log('>>> __dirname -> ', __dirname)
|
||||||
|
@ -25,6 +26,21 @@ console.log(
|
||||||
|
|
||||||
export default defineUserConfig(<UserConfig>{
|
export default defineUserConfig(<UserConfig>{
|
||||||
plugins: [
|
plugins: [
|
||||||
|
i18nPlugin({
|
||||||
|
updatedTime: "git",
|
||||||
|
translationGuide: "https://github.com/XTLS/Xray-docs-next",
|
||||||
|
locales: {
|
||||||
|
en: {
|
||||||
|
lang: "en-US",
|
||||||
|
untranslated: {
|
||||||
|
title: "Untranslated"
|
||||||
|
},
|
||||||
|
outdated: {
|
||||||
|
title: "Outdated"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
searchPlugin({
|
searchPlugin({
|
||||||
locales: {
|
locales: {
|
||||||
"/": {
|
"/": {
|
||||||
|
|
|
@ -28,6 +28,7 @@ export const sidebarEn: SidebarConfig = {
|
||||||
'/en/config/stats.md',
|
'/en/config/stats.md',
|
||||||
'/en/config/transport.md',
|
'/en/config/transport.md',
|
||||||
'/en/config/metrics.md',
|
'/en/config/metrics.md',
|
||||||
|
'/en/config/observatory.md',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,9 @@ The configuration file of Xray is in JSON format, and the configuration format f
|
||||||
"stats": {},
|
"stats": {},
|
||||||
"reverse": {},
|
"reverse": {},
|
||||||
"fakedns": {},
|
"fakedns": {},
|
||||||
"metrics": {}
|
"metrics": {},
|
||||||
|
"observatory": {},
|
||||||
|
"burstObservatory": {}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -78,4 +80,12 @@ FakeDNS configuration. Can be used with a transparent proxy to obtain the actual
|
||||||
|
|
||||||
> metrics: [metricsObject](./metrics.md)
|
> metrics: [metricsObject](./metrics.md)
|
||||||
|
|
||||||
Metrics configuration. A more straightforward (and hopefully better) way to export metrics.
|
Metrics configuration. A more straightforward (and hopefully better) way to export metrics.
|
||||||
|
|
||||||
|
> observatory: [ObservatoryObject](./observatory.md#observatoryobject)
|
||||||
|
|
||||||
|
Background connection observation. Detect the connection status of outbound proxies.
|
||||||
|
|
||||||
|
> burstObservatory: [BurstObservatoryObject](./observatory.md#burstobservatoryobject)
|
||||||
|
|
||||||
|
Concurrent connection observation. Detect the connection status of outbound proxies.
|
||||||
|
|
|
@ -7,7 +7,7 @@ The interface can be enabled through the api configuration module. When the api
|
||||||
Please refer to the [related configuration](#related-configuration) in this section.
|
Please refer to the [related configuration](#related-configuration) in this section.
|
||||||
|
|
||||||
::: warning
|
::: warning
|
||||||
Most users do not need to use this API. Novices can ignore this item directly.
|
Most users do not need to use this API. Novices can ignore this page entirely.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## ApiObject
|
## ApiObject
|
||||||
|
@ -18,6 +18,7 @@ Most users do not need to use this API. Novices can ignore this item directly.
|
||||||
{
|
{
|
||||||
"api": {
|
"api": {
|
||||||
"tag": "api",
|
"tag": "api",
|
||||||
|
"listen": "127.0.0.1:8080",
|
||||||
"services": ["HandlerService", "LoggerService", "StatsService"]
|
"services": ["HandlerService", "LoggerService", "StatsService"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +28,13 @@ Most users do not need to use this API. Novices can ignore this item directly.
|
||||||
|
|
||||||
Outbound proxy identifier.
|
Outbound proxy identifier.
|
||||||
|
|
||||||
|
> `listen`: string
|
||||||
|
|
||||||
|
The IP and port that the API service listens on. This is an optional configuration item.
|
||||||
|
|
||||||
|
When you omit this item, you need to add inbounds and routing configurations according to the examples in the [relevant configurations below](#related-configuration).
|
||||||
|
|
||||||
|
|
||||||
> `services`: [string]
|
> `services`: [string]
|
||||||
|
|
||||||
List of enabled APIs, optional values can be found in [Supported API List](#supported-api-list).
|
List of enabled APIs, optional values can be found in [Supported API List](#supported-api-list).
|
||||||
|
@ -65,6 +73,18 @@ Add routing rules for the api inbound in the routing configuration.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Add api to basic configuration
|
||||||
|
|
||||||
|
```
|
||||||
|
"api": {
|
||||||
|
"tag": "api",
|
||||||
|
"services": [
|
||||||
|
"StatsService"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Supported API List
|
## Supported API List
|
||||||
|
|
||||||
### HandlerService
|
### HandlerService
|
||||||
|
@ -78,6 +98,18 @@ APIs that modify the inbound and outbound proxies, with the following available
|
||||||
- Add a user to an inbound proxy (VMess, VLESS, Trojan, and Shadowsocks(v1.3.0+) only);
|
- Add a user to an inbound proxy (VMess, VLESS, Trojan, and Shadowsocks(v1.3.0+) only);
|
||||||
- Delete a user from an inbound proxy (VMess, VLESS, Trojan, and Shadowsocks(v1.3.0+) only);
|
- Delete a user from an inbound proxy (VMess, VLESS, Trojan, and Shadowsocks(v1.3.0+) only);
|
||||||
|
|
||||||
|
## RoutingService
|
||||||
|
|
||||||
|
API for adding, deleting, and replacing routing rules and querying equalizer statistics. The available functions are as follows:
|
||||||
|
|
||||||
|
* `adrules` adds and replaces routing configuration
|
||||||
|
* `rmrules` delete routing rules
|
||||||
|
* `sib` Disconnect source IP
|
||||||
|
* `bi` Query equalizer statistics
|
||||||
|
* `bo` Forces the equalizer to select the specified outboundTag
|
||||||
|
|
||||||
|
You can use something like `./xray help api bi` to query the specific usage.
|
||||||
|
|
||||||
### LoggerService
|
### LoggerService
|
||||||
|
|
||||||
Supports restarting the built-in logger, which can be used in conjunction with logrotate to perform operations on log files.
|
Supports restarting the built-in logger, which can be used in conjunction with logrotate to perform operations on log files.
|
||||||
|
|
|
@ -112,3 +112,11 @@ Recommendations:
|
||||||
HTTP/1.1 with or without TLS, h2 and h2c, however no h3.
|
HTTP/1.1 with or without TLS, h2 and h2c, however no h3.
|
||||||
|
|
||||||
Neither Xray server nor client support h3, but this may change in the future.
|
Neither Xray server nor client support h3, but this may change in the future.
|
||||||
|
|
||||||
|
## Browser Dialer
|
||||||
|
|
||||||
|
<Badge text="v1.8.17+" type="warning"/>
|
||||||
|
|
||||||
|
If uTLS is not enough, SplitHTTP's TLS can be handled by a browser using [Browser Dialer](../features/browser_dialer.md)
|
||||||
|
|
||||||
|
Depending on the browser, Browser Dialer also supports transmission of SplitHTTP using HTTP3 (QUIC) while the regular implementation does not.
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
"@vuepress/bundler-webpack": "2.0.0-rc.2",
|
"@vuepress/bundler-webpack": "2.0.0-rc.2",
|
||||||
"@vuepress/plugin-back-to-top": "^2.0.0-rc.3",
|
"@vuepress/plugin-back-to-top": "^2.0.0-rc.3",
|
||||||
"@vuepress/plugin-search": "2.0.0-rc.3",
|
"@vuepress/plugin-search": "2.0.0-rc.3",
|
||||||
|
"vuepress-plugin-i18n": "https://github.com/XTLS/vuepress-plugin-i18n#5ae5b2d",
|
||||||
"postcss-loader": "^8.0.0",
|
"postcss-loader": "^8.0.0",
|
||||||
"prettier": "^3.3.2",
|
"prettier": "^3.3.2",
|
||||||
"sass": "^1.51.0",
|
"sass": "^1.51.0",
|
||||||
|
|
|
@ -90,6 +90,9 @@ importers:
|
||||||
vuepress:
|
vuepress:
|
||||||
specifier: 2.0.0-rc.2
|
specifier: 2.0.0-rc.2
|
||||||
version: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))
|
version: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))
|
||||||
|
vuepress-plugin-i18n:
|
||||||
|
specifier: https://github.com/XTLS/vuepress-plugin-i18n#5ae5b2d
|
||||||
|
version: https://codeload.github.com/XTLS/vuepress-plugin-i18n/tar.gz/5ae5b2d(typescript@5.5.2)(vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2)))
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
|
@ -3053,6 +3056,9 @@ packages:
|
||||||
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
|
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
striptags@3.2.0:
|
||||||
|
resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==}
|
||||||
|
|
||||||
style-loader@3.3.4:
|
style-loader@3.3.4:
|
||||||
resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
|
resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==}
|
||||||
engines: {node: '>= 12.13.0'}
|
engines: {node: '>= 12.13.0'}
|
||||||
|
@ -3305,6 +3311,18 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
vuepress-plugin-i18n@https://codeload.github.com/XTLS/vuepress-plugin-i18n/tar.gz/5ae5b2d:
|
||||||
|
resolution: {tarball: https://codeload.github.com/XTLS/vuepress-plugin-i18n/tar.gz/5ae5b2d}
|
||||||
|
version: 0.8.4
|
||||||
|
peerDependencies:
|
||||||
|
vuepress: 2.0.0-rc.2
|
||||||
|
|
||||||
|
vuepress-shared@2.0.0-rc.15:
|
||||||
|
resolution: {integrity: sha512-PzuXgAlzTrD6b6pCaeSb65CD5ponpD86IF+xaCxWrQDAQWk4zSY2brPk6seS10i2teZFNqVeyY8ERoC27HOzcg==}
|
||||||
|
engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'}
|
||||||
|
peerDependencies:
|
||||||
|
vuepress: 2.0.0-rc.2
|
||||||
|
|
||||||
vuepress@2.0.0-rc.2:
|
vuepress@2.0.0-rc.2:
|
||||||
resolution: {integrity: sha512-OEHfXx4Q3IzkXqcY9bKZqHXYAnSR82AGrmWYX5R1I3+ntzjaAbUhUKbG/jjMzLg40XqAHS++pM/zzMBNrcY3rg==}
|
resolution: {integrity: sha512-OEHfXx4Q3IzkXqcY9bKZqHXYAnSR82AGrmWYX5R1I3+ntzjaAbUhUKbG/jjMzLg40XqAHS++pM/zzMBNrcY3rg==}
|
||||||
engines: {node: '>=18.16.0'}
|
engines: {node: '>=18.16.0'}
|
||||||
|
@ -6790,6 +6808,8 @@ snapshots:
|
||||||
|
|
||||||
strip-final-newline@3.0.0: {}
|
strip-final-newline@3.0.0: {}
|
||||||
|
|
||||||
|
striptags@3.2.0: {}
|
||||||
|
|
||||||
style-loader@3.3.4(webpack@5.91.0(esbuild@0.22.0)):
|
style-loader@3.3.4(webpack@5.91.0(esbuild@0.22.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
webpack: 5.91.0(esbuild@0.22.0)
|
webpack: 5.91.0(esbuild@0.22.0)
|
||||||
|
@ -6990,6 +7010,37 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.2
|
typescript: 5.5.2
|
||||||
|
|
||||||
|
vuepress-plugin-i18n@https://codeload.github.com/XTLS/vuepress-plugin-i18n/tar.gz/5ae5b2d(typescript@5.5.2)(vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))):
|
||||||
|
dependencies:
|
||||||
|
'@vuepress/client': 2.0.0-rc.2(typescript@5.5.2)
|
||||||
|
'@vuepress/core': 2.0.0-rc.2(typescript@5.5.2)
|
||||||
|
'@vuepress/utils': 2.0.0-rc.2
|
||||||
|
chokidar: 3.6.0
|
||||||
|
vue: 3.3.13(typescript@5.5.2)
|
||||||
|
vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))
|
||||||
|
vuepress-shared: 2.0.0-rc.15(typescript@5.5.2)(vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2)))
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- supports-color
|
||||||
|
- typescript
|
||||||
|
|
||||||
|
vuepress-shared@2.0.0-rc.15(typescript@5.5.2)(vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))):
|
||||||
|
dependencies:
|
||||||
|
'@vueuse/core': 10.11.0(vue@3.4.27(typescript@5.5.2))
|
||||||
|
cheerio: 1.0.0-rc.12
|
||||||
|
dayjs: 1.11.11
|
||||||
|
execa: 8.0.1
|
||||||
|
fflate: 0.8.2
|
||||||
|
gray-matter: 4.0.3
|
||||||
|
semver: 7.6.2
|
||||||
|
striptags: 3.2.0
|
||||||
|
vue: 3.4.27(typescript@5.5.2)
|
||||||
|
vue-router: 4.3.2(vue@3.4.27(typescript@5.5.2))
|
||||||
|
vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2))
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- typescript
|
||||||
|
|
||||||
vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2)):
|
vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2(@types/node@20.14.9)(jiti@1.21.0)(sass@1.77.4)(terser@5.31.0)(typescript@5.5.2))(@vuepress/bundler-webpack@2.0.0-rc.2(esbuild@0.22.0)(typescript@5.5.2))(typescript@5.5.2)(vue@3.3.13(typescript@5.5.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vuepress/cli': 2.0.0-rc.2(typescript@5.5.2)
|
'@vuepress/cli': 2.0.0-rc.2(typescript@5.5.2)
|
||||||
|
|
Loading…
Reference in New Issue