@gozargah/xray-schema 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/full/index.d.ts +30 -78
- package/dist/full/index.js +17 -21
- package/dist/full/schema.json +704 -567
- package/dist/index.d.ts +30 -78
- package/dist/index.js +14 -21
- package/dist/schema.json +249 -178
- package/dist/with-docs/index.d.ts +30 -78
- package/dist/with-docs/index.js +17 -21
- package/dist/with-docs/schema.json +704 -567
- package/package.json +1 -1
package/dist/full/schema.json
CHANGED
|
@@ -796,7 +796,7 @@
|
|
|
796
796
|
]
|
|
797
797
|
},
|
|
798
798
|
"then": {
|
|
799
|
-
"$ref": "#/definitions/
|
|
799
|
+
"$ref": "#/definitions/__schema619"
|
|
800
800
|
}
|
|
801
801
|
},
|
|
802
802
|
{
|
|
@@ -811,7 +811,7 @@
|
|
|
811
811
|
]
|
|
812
812
|
},
|
|
813
813
|
"then": {
|
|
814
|
-
"$ref": "#/definitions/
|
|
814
|
+
"$ref": "#/definitions/__schema641"
|
|
815
815
|
}
|
|
816
816
|
},
|
|
817
817
|
{
|
|
@@ -826,7 +826,7 @@
|
|
|
826
826
|
]
|
|
827
827
|
},
|
|
828
828
|
"then": {
|
|
829
|
-
"$ref": "#/definitions/
|
|
829
|
+
"$ref": "#/definitions/__schema653"
|
|
830
830
|
}
|
|
831
831
|
},
|
|
832
832
|
{
|
|
@@ -841,7 +841,7 @@
|
|
|
841
841
|
]
|
|
842
842
|
},
|
|
843
843
|
"then": {
|
|
844
|
-
"$ref": "#/definitions/
|
|
844
|
+
"$ref": "#/definitions/__schema662"
|
|
845
845
|
}
|
|
846
846
|
},
|
|
847
847
|
{
|
|
@@ -856,7 +856,7 @@
|
|
|
856
856
|
]
|
|
857
857
|
},
|
|
858
858
|
"then": {
|
|
859
|
-
"$ref": "#/definitions/
|
|
859
|
+
"$ref": "#/definitions/__schema670"
|
|
860
860
|
}
|
|
861
861
|
},
|
|
862
862
|
{
|
|
@@ -871,7 +871,7 @@
|
|
|
871
871
|
]
|
|
872
872
|
},
|
|
873
873
|
"then": {
|
|
874
|
-
"$ref": "#/definitions/
|
|
874
|
+
"$ref": "#/definitions/__schema687"
|
|
875
875
|
}
|
|
876
876
|
}
|
|
877
877
|
]
|
|
@@ -918,7 +918,7 @@
|
|
|
918
918
|
]
|
|
919
919
|
},
|
|
920
920
|
"then": {
|
|
921
|
-
"$ref": "#/definitions/
|
|
921
|
+
"$ref": "#/definitions/__schema694"
|
|
922
922
|
}
|
|
923
923
|
},
|
|
924
924
|
{
|
|
@@ -936,7 +936,7 @@
|
|
|
936
936
|
]
|
|
937
937
|
},
|
|
938
938
|
"then": {
|
|
939
|
-
"$ref": "#/definitions/
|
|
939
|
+
"$ref": "#/definitions/__schema716"
|
|
940
940
|
}
|
|
941
941
|
},
|
|
942
942
|
{
|
|
@@ -951,7 +951,7 @@
|
|
|
951
951
|
]
|
|
952
952
|
},
|
|
953
953
|
"then": {
|
|
954
|
-
"$ref": "#/definitions/
|
|
954
|
+
"$ref": "#/definitions/__schema736"
|
|
955
955
|
}
|
|
956
956
|
},
|
|
957
957
|
{
|
|
@@ -966,7 +966,7 @@
|
|
|
966
966
|
]
|
|
967
967
|
},
|
|
968
968
|
"then": {
|
|
969
|
-
"$ref": "#/definitions/
|
|
969
|
+
"$ref": "#/definitions/__schema756"
|
|
970
970
|
}
|
|
971
971
|
},
|
|
972
972
|
{
|
|
@@ -981,7 +981,7 @@
|
|
|
981
981
|
]
|
|
982
982
|
},
|
|
983
983
|
"then": {
|
|
984
|
-
"$ref": "#/definitions/
|
|
984
|
+
"$ref": "#/definitions/__schema762"
|
|
985
985
|
}
|
|
986
986
|
},
|
|
987
987
|
{
|
|
@@ -996,7 +996,7 @@
|
|
|
996
996
|
]
|
|
997
997
|
},
|
|
998
998
|
"then": {
|
|
999
|
-
"$ref": "#/definitions/
|
|
999
|
+
"$ref": "#/definitions/__schema766"
|
|
1000
1000
|
}
|
|
1001
1001
|
},
|
|
1002
1002
|
{
|
|
@@ -1011,7 +1011,7 @@
|
|
|
1011
1011
|
]
|
|
1012
1012
|
},
|
|
1013
1013
|
"then": {
|
|
1014
|
-
"$ref": "#/definitions/
|
|
1014
|
+
"$ref": "#/definitions/__schema775"
|
|
1015
1015
|
}
|
|
1016
1016
|
},
|
|
1017
1017
|
{
|
|
@@ -1026,7 +1026,7 @@
|
|
|
1026
1026
|
]
|
|
1027
1027
|
},
|
|
1028
1028
|
"then": {
|
|
1029
|
-
"$ref": "#/definitions/
|
|
1029
|
+
"$ref": "#/definitions/__schema789"
|
|
1030
1030
|
}
|
|
1031
1031
|
},
|
|
1032
1032
|
{
|
|
@@ -1041,7 +1041,7 @@
|
|
|
1041
1041
|
]
|
|
1042
1042
|
},
|
|
1043
1043
|
"then": {
|
|
1044
|
-
"$ref": "#/definitions/
|
|
1044
|
+
"$ref": "#/definitions/__schema796"
|
|
1045
1045
|
}
|
|
1046
1046
|
},
|
|
1047
1047
|
{
|
|
@@ -1056,7 +1056,7 @@
|
|
|
1056
1056
|
]
|
|
1057
1057
|
},
|
|
1058
1058
|
"then": {
|
|
1059
|
-
"$ref": "#/definitions/
|
|
1059
|
+
"$ref": "#/definitions/__schema810"
|
|
1060
1060
|
}
|
|
1061
1061
|
},
|
|
1062
1062
|
{
|
|
@@ -1071,7 +1071,7 @@
|
|
|
1071
1071
|
]
|
|
1072
1072
|
},
|
|
1073
1073
|
"then": {
|
|
1074
|
-
"$ref": "#/definitions/
|
|
1074
|
+
"$ref": "#/definitions/__schema822"
|
|
1075
1075
|
}
|
|
1076
1076
|
}
|
|
1077
1077
|
]
|
|
@@ -8120,15 +8120,69 @@
|
|
|
8120
8120
|
"const": "shadowsocks"
|
|
8121
8121
|
},
|
|
8122
8122
|
"__schema597": {
|
|
8123
|
-
"
|
|
8123
|
+
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n",
|
|
8124
|
+
"properties": {
|
|
8125
|
+
"method": {
|
|
8126
|
+
"enum": [
|
|
8127
|
+
"2022-blake3-aes-128-gcm",
|
|
8128
|
+
"2022-blake3-aes-256-gcm",
|
|
8129
|
+
"2022-blake3-chacha20-poly1305",
|
|
8130
|
+
"aes-256-gcm",
|
|
8131
|
+
"aes-128-gcm",
|
|
8132
|
+
"chacha20-poly1305",
|
|
8133
|
+
"chacha20-ietf-poly1305",
|
|
8134
|
+
"xchacha20-poly1305",
|
|
8135
|
+
"xchacha20-ietf-poly1305",
|
|
8136
|
+
"none",
|
|
8137
|
+
""
|
|
8138
|
+
]
|
|
8139
|
+
}
|
|
8140
|
+
},
|
|
8141
|
+
"allOf": [
|
|
8124
8142
|
{
|
|
8125
|
-
"
|
|
8143
|
+
"if": {
|
|
8144
|
+
"properties": {
|
|
8145
|
+
"method": {
|
|
8146
|
+
"enum": [
|
|
8147
|
+
"2022-blake3-aes-128-gcm",
|
|
8148
|
+
"2022-blake3-aes-256-gcm",
|
|
8149
|
+
"2022-blake3-chacha20-poly1305"
|
|
8150
|
+
]
|
|
8151
|
+
}
|
|
8152
|
+
},
|
|
8153
|
+
"required": [
|
|
8154
|
+
"method"
|
|
8155
|
+
]
|
|
8156
|
+
},
|
|
8157
|
+
"then": {
|
|
8158
|
+
"$ref": "#/definitions/__schema598"
|
|
8159
|
+
}
|
|
8126
8160
|
},
|
|
8127
8161
|
{
|
|
8128
|
-
"
|
|
8162
|
+
"if": {
|
|
8163
|
+
"properties": {
|
|
8164
|
+
"method": {
|
|
8165
|
+
"enum": [
|
|
8166
|
+
"aes-256-gcm",
|
|
8167
|
+
"aes-128-gcm",
|
|
8168
|
+
"chacha20-poly1305",
|
|
8169
|
+
"chacha20-ietf-poly1305",
|
|
8170
|
+
"xchacha20-poly1305",
|
|
8171
|
+
"xchacha20-ietf-poly1305",
|
|
8172
|
+
"none",
|
|
8173
|
+
""
|
|
8174
|
+
]
|
|
8175
|
+
}
|
|
8176
|
+
},
|
|
8177
|
+
"required": [
|
|
8178
|
+
"method"
|
|
8179
|
+
]
|
|
8180
|
+
},
|
|
8181
|
+
"then": {
|
|
8182
|
+
"$ref": "#/definitions/__schema611"
|
|
8183
|
+
}
|
|
8129
8184
|
}
|
|
8130
|
-
]
|
|
8131
|
-
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
8185
|
+
]
|
|
8132
8186
|
},
|
|
8133
8187
|
"__schema598": {
|
|
8134
8188
|
"type": "object",
|
|
@@ -8151,17 +8205,15 @@
|
|
|
8151
8205
|
"markdownDescription": "Encryption method. See the recommended and supported options in the protocol description above.\n",
|
|
8152
8206
|
"allOf": [
|
|
8153
8207
|
{
|
|
8154
|
-
"$ref": "#/definitions/
|
|
8208
|
+
"$ref": "#/definitions/__schema606"
|
|
8155
8209
|
}
|
|
8156
8210
|
]
|
|
8157
8211
|
},
|
|
8158
8212
|
"users": {
|
|
8159
|
-
"
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
}
|
|
8164
|
-
]
|
|
8213
|
+
"$ref": "#/definitions/__schema607"
|
|
8214
|
+
},
|
|
8215
|
+
"clients": {
|
|
8216
|
+
"$ref": "#/definitions/__schema607"
|
|
8165
8217
|
}
|
|
8166
8218
|
},
|
|
8167
8219
|
"required": [
|
|
@@ -8207,13 +8259,39 @@
|
|
|
8207
8259
|
},
|
|
8208
8260
|
"__schema604": {
|
|
8209
8261
|
"type": "string",
|
|
8210
|
-
"
|
|
8211
|
-
"2022-blake3-aes-128-gcm",
|
|
8212
|
-
"2022-blake3-aes-256-gcm",
|
|
8213
|
-
"2022-blake3-chacha20-poly1305"
|
|
8214
|
-
]
|
|
8262
|
+
"const": "2022-blake3-aes-128-gcm"
|
|
8215
8263
|
},
|
|
8216
8264
|
"__schema605": {
|
|
8265
|
+
"anyOf": [
|
|
8266
|
+
{
|
|
8267
|
+
"type": "string",
|
|
8268
|
+
"const": "2022-blake3-aes-256-gcm"
|
|
8269
|
+
},
|
|
8270
|
+
{
|
|
8271
|
+
"type": "string",
|
|
8272
|
+
"const": "2022-blake3-chacha20-poly1305"
|
|
8273
|
+
}
|
|
8274
|
+
]
|
|
8275
|
+
},
|
|
8276
|
+
"__schema606": {
|
|
8277
|
+
"anyOf": [
|
|
8278
|
+
{
|
|
8279
|
+
"$ref": "#/definitions/__schema604"
|
|
8280
|
+
},
|
|
8281
|
+
{
|
|
8282
|
+
"$ref": "#/definitions/__schema605"
|
|
8283
|
+
}
|
|
8284
|
+
]
|
|
8285
|
+
},
|
|
8286
|
+
"__schema607": {
|
|
8287
|
+
"markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
|
|
8288
|
+
"allOf": [
|
|
8289
|
+
{
|
|
8290
|
+
"$ref": "#/definitions/__schema608"
|
|
8291
|
+
}
|
|
8292
|
+
]
|
|
8293
|
+
},
|
|
8294
|
+
"__schema608": {
|
|
8217
8295
|
"type": "array",
|
|
8218
8296
|
"items": {
|
|
8219
8297
|
"type": "object",
|
|
@@ -8222,7 +8300,7 @@
|
|
|
8222
8300
|
"markdownDescription": "Note that SS2022 does not ignore the upper-level `password` like the old SS did. The correct password format for the client should be `ServerPassword:UserPassword`. For example: `\"password\": \"114514:1919810\"`.\n",
|
|
8223
8301
|
"allOf": [
|
|
8224
8302
|
{
|
|
8225
|
-
"$ref": "#/definitions/
|
|
8303
|
+
"$ref": "#/definitions/__schema609"
|
|
8226
8304
|
}
|
|
8227
8305
|
]
|
|
8228
8306
|
},
|
|
@@ -8230,7 +8308,7 @@
|
|
|
8230
8308
|
"markdownDescription": "Same meaning as `level` in `InboundConfigurationObject`.\n",
|
|
8231
8309
|
"allOf": [
|
|
8232
8310
|
{
|
|
8233
|
-
"$ref": "#/definitions/
|
|
8311
|
+
"$ref": "#/definitions/__schema610"
|
|
8234
8312
|
}
|
|
8235
8313
|
]
|
|
8236
8314
|
},
|
|
@@ -8246,14 +8324,14 @@
|
|
|
8246
8324
|
"additionalProperties": false
|
|
8247
8325
|
}
|
|
8248
8326
|
},
|
|
8249
|
-
"
|
|
8327
|
+
"__schema609": {
|
|
8250
8328
|
"type": "string"
|
|
8251
8329
|
},
|
|
8252
|
-
"
|
|
8330
|
+
"__schema610": {
|
|
8253
8331
|
"default": 0,
|
|
8254
8332
|
"type": "number"
|
|
8255
8333
|
},
|
|
8256
|
-
"
|
|
8334
|
+
"__schema611": {
|
|
8257
8335
|
"type": "object",
|
|
8258
8336
|
"properties": {
|
|
8259
8337
|
"network": {
|
|
@@ -8274,17 +8352,15 @@
|
|
|
8274
8352
|
"markdownDescription": "Encryption method. See the recommended and supported options in the protocol description above.\n",
|
|
8275
8353
|
"allOf": [
|
|
8276
8354
|
{
|
|
8277
|
-
"$ref": "#/definitions/
|
|
8355
|
+
"$ref": "#/definitions/__schema614"
|
|
8278
8356
|
}
|
|
8279
8357
|
]
|
|
8280
8358
|
},
|
|
8281
8359
|
"users": {
|
|
8282
|
-
"
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
}
|
|
8287
|
-
]
|
|
8360
|
+
"$ref": "#/definitions/__schema615"
|
|
8361
|
+
},
|
|
8362
|
+
"clients": {
|
|
8363
|
+
"$ref": "#/definitions/__schema615"
|
|
8288
8364
|
}
|
|
8289
8365
|
},
|
|
8290
8366
|
"required": [
|
|
@@ -8292,20 +8368,81 @@
|
|
|
8292
8368
|
],
|
|
8293
8369
|
"additionalProperties": false
|
|
8294
8370
|
},
|
|
8295
|
-
"
|
|
8371
|
+
"__schema612": {
|
|
8296
8372
|
"type": "string",
|
|
8297
|
-
"
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8373
|
+
"const": "aes-256-gcm"
|
|
8374
|
+
},
|
|
8375
|
+
"__schema613": {
|
|
8376
|
+
"anyOf": [
|
|
8377
|
+
{
|
|
8378
|
+
"type": "string",
|
|
8379
|
+
"const": "aes-128-gcm"
|
|
8380
|
+
},
|
|
8381
|
+
{
|
|
8382
|
+
"anyOf": [
|
|
8383
|
+
{
|
|
8384
|
+
"type": "string",
|
|
8385
|
+
"const": "chacha20-poly1305"
|
|
8386
|
+
},
|
|
8387
|
+
{
|
|
8388
|
+
"anyOf": [
|
|
8389
|
+
{
|
|
8390
|
+
"type": "string",
|
|
8391
|
+
"const": "chacha20-ietf-poly1305"
|
|
8392
|
+
},
|
|
8393
|
+
{
|
|
8394
|
+
"anyOf": [
|
|
8395
|
+
{
|
|
8396
|
+
"type": "string",
|
|
8397
|
+
"const": "xchacha20-poly1305"
|
|
8398
|
+
},
|
|
8399
|
+
{
|
|
8400
|
+
"anyOf": [
|
|
8401
|
+
{
|
|
8402
|
+
"type": "string",
|
|
8403
|
+
"const": "xchacha20-ietf-poly1305"
|
|
8404
|
+
},
|
|
8405
|
+
{
|
|
8406
|
+
"anyOf": [
|
|
8407
|
+
{
|
|
8408
|
+
"type": "string",
|
|
8409
|
+
"const": "none"
|
|
8410
|
+
},
|
|
8411
|
+
{
|
|
8412
|
+
"type": "string",
|
|
8413
|
+
"const": ""
|
|
8414
|
+
}
|
|
8415
|
+
]
|
|
8416
|
+
}
|
|
8417
|
+
]
|
|
8418
|
+
}
|
|
8419
|
+
]
|
|
8420
|
+
}
|
|
8421
|
+
]
|
|
8422
|
+
}
|
|
8423
|
+
]
|
|
8424
|
+
}
|
|
8306
8425
|
]
|
|
8307
8426
|
},
|
|
8308
|
-
"
|
|
8427
|
+
"__schema614": {
|
|
8428
|
+
"anyOf": [
|
|
8429
|
+
{
|
|
8430
|
+
"$ref": "#/definitions/__schema612"
|
|
8431
|
+
},
|
|
8432
|
+
{
|
|
8433
|
+
"$ref": "#/definitions/__schema613"
|
|
8434
|
+
}
|
|
8435
|
+
]
|
|
8436
|
+
},
|
|
8437
|
+
"__schema615": {
|
|
8438
|
+
"markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
|
|
8439
|
+
"allOf": [
|
|
8440
|
+
{
|
|
8441
|
+
"$ref": "#/definitions/__schema616"
|
|
8442
|
+
}
|
|
8443
|
+
]
|
|
8444
|
+
},
|
|
8445
|
+
"__schema616": {
|
|
8309
8446
|
"type": "array",
|
|
8310
8447
|
"items": {
|
|
8311
8448
|
"type": "object",
|
|
@@ -8314,7 +8451,7 @@
|
|
|
8314
8451
|
"markdownDescription": "Note that SS2022 does not ignore the upper-level `password` like the old SS did. The correct password format for the client should be `ServerPassword:UserPassword`. For example: `\"password\": \"114514:1919810\"`.\n",
|
|
8315
8452
|
"allOf": [
|
|
8316
8453
|
{
|
|
8317
|
-
"$ref": "#/definitions/
|
|
8454
|
+
"$ref": "#/definitions/__schema617"
|
|
8318
8455
|
}
|
|
8319
8456
|
]
|
|
8320
8457
|
},
|
|
@@ -8322,7 +8459,7 @@
|
|
|
8322
8459
|
"markdownDescription": "Same meaning as `level` in `InboundConfigurationObject`.\n",
|
|
8323
8460
|
"allOf": [
|
|
8324
8461
|
{
|
|
8325
|
-
"$ref": "#/definitions/
|
|
8462
|
+
"$ref": "#/definitions/__schema618"
|
|
8326
8463
|
}
|
|
8327
8464
|
]
|
|
8328
8465
|
},
|
|
@@ -8335,7 +8472,7 @@
|
|
|
8335
8472
|
"markdownDescription": "When the `method` in `InboundConfigurationObject` is not an SS2022 option, you can specify `method` for each user here (only non-SS2022 options are supported) together with `password`. In that case, the `password` set in `InboundConfigurationObject` will be ignored.\n\nWhen the `method` in `InboundConfigurationObject` is an SS2022 option, setting `method` for individual users is not supported; it is unified to the method specified in `InboundConfigurationObject`.\n",
|
|
8336
8473
|
"allOf": [
|
|
8337
8474
|
{
|
|
8338
|
-
"$ref": "#/definitions/
|
|
8475
|
+
"$ref": "#/definitions/__schema614"
|
|
8339
8476
|
}
|
|
8340
8477
|
]
|
|
8341
8478
|
}
|
|
@@ -8346,14 +8483,14 @@
|
|
|
8346
8483
|
"additionalProperties": false
|
|
8347
8484
|
}
|
|
8348
8485
|
},
|
|
8349
|
-
"
|
|
8486
|
+
"__schema617": {
|
|
8350
8487
|
"type": "string"
|
|
8351
8488
|
},
|
|
8352
|
-
"
|
|
8489
|
+
"__schema618": {
|
|
8353
8490
|
"default": 0,
|
|
8354
8491
|
"type": "number"
|
|
8355
8492
|
},
|
|
8356
|
-
"
|
|
8493
|
+
"__schema619": {
|
|
8357
8494
|
"type": "object",
|
|
8358
8495
|
"properties": {
|
|
8359
8496
|
"tag": {
|
|
@@ -8372,10 +8509,10 @@
|
|
|
8372
8509
|
"$ref": "#/definitions/__schema552"
|
|
8373
8510
|
},
|
|
8374
8511
|
"protocol": {
|
|
8375
|
-
"$ref": "#/definitions/
|
|
8512
|
+
"$ref": "#/definitions/__schema620"
|
|
8376
8513
|
},
|
|
8377
8514
|
"settings": {
|
|
8378
|
-
"$ref": "#/definitions/
|
|
8515
|
+
"$ref": "#/definitions/__schema621"
|
|
8379
8516
|
}
|
|
8380
8517
|
},
|
|
8381
8518
|
"required": [
|
|
@@ -8385,35 +8522,35 @@
|
|
|
8385
8522
|
"additionalProperties": false,
|
|
8386
8523
|
"markdownDescription": "VLESS is a stateless, lightweight transport protocol. It is divided into inbound and outbound parts and can serve as a bridge between Xray clients and servers.\n\nUnlike [VMess](https://xtls.github.io/en/config/inbounds/vmess.html), VLESS does not depend on system time. The authentication method is also UUID.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/vless.html)\n"
|
|
8387
8524
|
},
|
|
8388
|
-
"
|
|
8525
|
+
"__schema620": {
|
|
8389
8526
|
"type": "string",
|
|
8390
8527
|
"const": "vless"
|
|
8391
8528
|
},
|
|
8392
|
-
"
|
|
8529
|
+
"__schema621": {
|
|
8393
8530
|
"anyOf": [
|
|
8394
8531
|
{
|
|
8395
|
-
"$ref": "#/definitions/
|
|
8532
|
+
"$ref": "#/definitions/__schema622"
|
|
8396
8533
|
},
|
|
8397
8534
|
{
|
|
8398
|
-
"$ref": "#/definitions/
|
|
8535
|
+
"$ref": "#/definitions/__schema639"
|
|
8399
8536
|
}
|
|
8400
8537
|
],
|
|
8401
8538
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
8402
8539
|
},
|
|
8403
|
-
"
|
|
8540
|
+
"__schema622": {
|
|
8404
8541
|
"type": "object",
|
|
8405
8542
|
"properties": {
|
|
8406
8543
|
"decryption": {
|
|
8407
|
-
"$ref": "#/definitions/
|
|
8544
|
+
"$ref": "#/definitions/__schema623"
|
|
8408
8545
|
},
|
|
8409
8546
|
"fallbacks": {
|
|
8410
|
-
"$ref": "#/definitions/
|
|
8547
|
+
"$ref": "#/definitions/__schema626"
|
|
8411
8548
|
},
|
|
8412
8549
|
"users": {
|
|
8413
8550
|
"markdownDescription": "An array representing a group of users approved by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/vless.html#userobject).\n",
|
|
8414
8551
|
"allOf": [
|
|
8415
8552
|
{
|
|
8416
|
-
"$ref": "#/definitions/
|
|
8553
|
+
"$ref": "#/definitions/__schema628"
|
|
8417
8554
|
}
|
|
8418
8555
|
]
|
|
8419
8556
|
}
|
|
@@ -8423,33 +8560,33 @@
|
|
|
8423
8560
|
],
|
|
8424
8561
|
"additionalProperties": false
|
|
8425
8562
|
},
|
|
8426
|
-
"
|
|
8563
|
+
"__schema623": {
|
|
8427
8564
|
"anyOf": [
|
|
8428
8565
|
{
|
|
8429
|
-
"$ref": "#/definitions/
|
|
8566
|
+
"$ref": "#/definitions/__schema624"
|
|
8430
8567
|
},
|
|
8431
8568
|
{
|
|
8432
|
-
"$ref": "#/definitions/
|
|
8569
|
+
"$ref": "#/definitions/__schema625"
|
|
8433
8570
|
}
|
|
8434
8571
|
],
|
|
8435
8572
|
"markdownDescription": "VLESS Encryption settings. Cannot be left empty; to disable, explicitly set it to `\"none\"`.\n\nIt is recommended for most users to use the `xray vlessenc` command to automatically generate this field to avoid configuration mistakes. The detailed configuration below is recommended for advanced users only.\n\nDetailed configuration format is a string of blocks connected by dots, for example:\n\n`mlkem768x25519plus.native.600s.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`\n\nThis document refers to the individual parts separated by dots as blocks.\n\n- The 1st block is the handshake method. Currently, there is only `mlkem768x25519plus`. Requires the server and client to match.\n- The 2nd block is the encryption method. Options are `native`/`xorpub`/`random`, corresponding to: raw format packets / raw format + obfuscated public key part / full random numbers (similar to VMess/Shadowsocks). Requires the server and client to match.\n- The 3rd block is the session resumption ticket validity time. Format is `600s` or `100-500s`. The former will pick a random time between that duration and half of that duration (e.g., `600s` = `300-600s`); the latter manually specifies a random range.\n\nFollowing this is padding. After the connection is established, the server sends garbage data to obfuscate length characteristics. This does not need to be the same as the client (the same part in the outbound is the padding sent from the client to the server). It is a variable-length part, formatted as `padding.delay.padding` + `(.delay.padding)*n`. Multiple paddings can be inserted, requiring a delay block between two padding blocks.\n\n- The `padding` format is `probability-min-max`, e.g., `100-111-1111` means 100% probability of sending a padding with a length of 111~1111.\n- The `delay` format is also `probability-min-max`, e.g., `75-0-111` means 75% probability of waiting for 0~111 milliseconds.\n\nThe first padding block has special requirements: it requires 100% probability and a minimum length greater than 0. If no padding exists, the core automatically uses `100-111-1111.75-0-111.50-0-3333` as the padding setting.\n\nThe last block is identified by the core as the parameter used to authenticate the client. It can be generated using `./xray x25519` (using the PrivateKey part) or `./xray mlkem768` (using the Seed part). It must correspond to the client. `mlkem768` is a post-quantum algorithm that prevents the private key from being cracked by quantum computers (in the future) to impersonate the server if client parameters are leaked. This parameter is only used for verification; the handshake process is post-quantum secure regardless, and existing encrypted data cannot be cracked by future quantum computers.\n"
|
|
8436
8573
|
},
|
|
8437
|
-
"
|
|
8574
|
+
"__schema624": {
|
|
8438
8575
|
"type": "string",
|
|
8439
8576
|
"const": "none"
|
|
8440
8577
|
},
|
|
8441
|
-
"
|
|
8578
|
+
"__schema625": {
|
|
8442
8579
|
"type": "string"
|
|
8443
8580
|
},
|
|
8444
|
-
"
|
|
8581
|
+
"__schema626": {
|
|
8445
8582
|
"markdownDescription": "An array containing a series of powerful fallback distribution configurations (optional). For specific fallback configurations, see [FallbackObject](https://xtls.github.io/en/config/features/fallback.html#fallbacks-configuration).\n",
|
|
8446
8583
|
"allOf": [
|
|
8447
8584
|
{
|
|
8448
|
-
"$ref": "#/definitions/
|
|
8585
|
+
"$ref": "#/definitions/__schema627"
|
|
8449
8586
|
}
|
|
8450
8587
|
]
|
|
8451
8588
|
},
|
|
8452
|
-
"
|
|
8589
|
+
"__schema627": {
|
|
8453
8590
|
"type": "array",
|
|
8454
8591
|
"items": {
|
|
8455
8592
|
"type": "object",
|
|
@@ -8484,26 +8621,26 @@
|
|
|
8484
8621
|
"additionalProperties": false
|
|
8485
8622
|
}
|
|
8486
8623
|
},
|
|
8487
|
-
"
|
|
8624
|
+
"__schema628": {
|
|
8488
8625
|
"default": [],
|
|
8489
8626
|
"type": "array",
|
|
8490
8627
|
"items": {
|
|
8491
8628
|
"type": "object",
|
|
8492
8629
|
"properties": {
|
|
8493
8630
|
"id": {
|
|
8494
|
-
"$ref": "#/definitions/
|
|
8631
|
+
"$ref": "#/definitions/__schema629"
|
|
8495
8632
|
},
|
|
8496
8633
|
"level": {
|
|
8497
|
-
"$ref": "#/definitions/
|
|
8634
|
+
"$ref": "#/definitions/__schema630"
|
|
8498
8635
|
},
|
|
8499
8636
|
"email": {
|
|
8500
|
-
"$ref": "#/definitions/
|
|
8637
|
+
"$ref": "#/definitions/__schema632"
|
|
8501
8638
|
},
|
|
8502
8639
|
"flow": {
|
|
8503
|
-
"$ref": "#/definitions/
|
|
8640
|
+
"$ref": "#/definitions/__schema634"
|
|
8504
8641
|
},
|
|
8505
8642
|
"reverse": {
|
|
8506
|
-
"$ref": "#/definitions/
|
|
8643
|
+
"$ref": "#/definitions/__schema636"
|
|
8507
8644
|
}
|
|
8508
8645
|
},
|
|
8509
8646
|
"required": [
|
|
@@ -8512,43 +8649,43 @@
|
|
|
8512
8649
|
"additionalProperties": {}
|
|
8513
8650
|
}
|
|
8514
8651
|
},
|
|
8515
|
-
"
|
|
8652
|
+
"__schema629": {
|
|
8516
8653
|
"type": "string",
|
|
8517
8654
|
"minLength": 1,
|
|
8518
8655
|
"markdownDescription": "The user ID for VLESS. It can be any string less than 30 bytes or a valid UUID. A custom string and its mapped UUID are equivalent.\n\nMapping standard: [VLESS UUID Mapping Standard: Mapping Custom Strings to a UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nUse `xray uuid -i \"custom string\"` to generate the mapped UUID, or `xray uuid` to generate a random UUID.\n"
|
|
8519
8656
|
},
|
|
8520
|
-
"
|
|
8657
|
+
"__schema630": {
|
|
8521
8658
|
"markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
8522
8659
|
"allOf": [
|
|
8523
8660
|
{
|
|
8524
|
-
"$ref": "#/definitions/
|
|
8661
|
+
"$ref": "#/definitions/__schema631"
|
|
8525
8662
|
}
|
|
8526
8663
|
]
|
|
8527
8664
|
},
|
|
8528
|
-
"
|
|
8665
|
+
"__schema631": {
|
|
8529
8666
|
"default": 0,
|
|
8530
8667
|
"type": "number"
|
|
8531
8668
|
},
|
|
8532
|
-
"
|
|
8669
|
+
"__schema632": {
|
|
8533
8670
|
"markdownDescription": "User email, used to distinguish traffic from different users (reflected in logs and statistics).\n",
|
|
8534
8671
|
"allOf": [
|
|
8535
8672
|
{
|
|
8536
|
-
"$ref": "#/definitions/
|
|
8673
|
+
"$ref": "#/definitions/__schema633"
|
|
8537
8674
|
}
|
|
8538
8675
|
]
|
|
8539
8676
|
},
|
|
8540
|
-
"
|
|
8677
|
+
"__schema633": {
|
|
8541
8678
|
"type": "string"
|
|
8542
8679
|
},
|
|
8543
|
-
"
|
|
8680
|
+
"__schema634": {
|
|
8544
8681
|
"markdownDescription": "Flow control mode, used to select the XTLS algorithm.\n\nAvailable inbound flow control modes:\n\n- Empty string: use standard TLS proxy.\n- `xtls-rprx-vision`: use the new XTLS mode, including inner handshake random padding.\n\nXTLS is only available under the following combinations:\n\n- TCP+TLS/REALITY: In this case, if transmitting TLS 1.3, the core will attempt to Splice encrypted data at the bottom layer. If successful, it saves all core IO overhead.\n- VLESS Encryption: no underlying transport restrictions. If the underlying layer does not support direct copying (see above), it only penetrates Encryption.\n",
|
|
8545
8682
|
"allOf": [
|
|
8546
8683
|
{
|
|
8547
|
-
"$ref": "#/definitions/
|
|
8684
|
+
"$ref": "#/definitions/__schema635"
|
|
8548
8685
|
}
|
|
8549
8686
|
]
|
|
8550
8687
|
},
|
|
8551
|
-
"
|
|
8688
|
+
"__schema635": {
|
|
8552
8689
|
"default": "",
|
|
8553
8690
|
"type": "string",
|
|
8554
8691
|
"enum": [
|
|
@@ -8556,15 +8693,15 @@
|
|
|
8556
8693
|
"xtls-rprx-vision"
|
|
8557
8694
|
]
|
|
8558
8695
|
},
|
|
8559
|
-
"
|
|
8696
|
+
"__schema636": {
|
|
8560
8697
|
"markdownDescription": "VLESS simplified reverse proxy configuration.\n\nThe presence of this item indicates that connections from this user can be used to establish a reverse proxy tunnel, while disabling normal forward proxy usage.\n\n### TIP\n\nFull tutorial: [VLESS Reverse Proxy Examples](https://xtls.github.io/en/document/level-2/vless_reverse.html)\n",
|
|
8561
8698
|
"allOf": [
|
|
8562
8699
|
{
|
|
8563
|
-
"$ref": "#/definitions/
|
|
8700
|
+
"$ref": "#/definitions/__schema637"
|
|
8564
8701
|
}
|
|
8565
8702
|
]
|
|
8566
8703
|
},
|
|
8567
|
-
"
|
|
8704
|
+
"__schema637": {
|
|
8568
8705
|
"default": {},
|
|
8569
8706
|
"type": "object",
|
|
8570
8707
|
"properties": {
|
|
@@ -8572,31 +8709,31 @@
|
|
|
8572
8709
|
"markdownDescription": "`tag` is the outbound proxy tag for this reverse proxy. Routing traffic to this outbound using routing rules will forward it through the reverse proxy to the connected client's routing system (see VLESS outbound for client configuration details).\n\nWhen multiple different connections (potentially from different devices) are connected, the core randomly selects one to dispatch reverse proxy data for each request.\n",
|
|
8573
8710
|
"allOf": [
|
|
8574
8711
|
{
|
|
8575
|
-
"$ref": "#/definitions/
|
|
8712
|
+
"$ref": "#/definitions/__schema638"
|
|
8576
8713
|
}
|
|
8577
8714
|
]
|
|
8578
8715
|
}
|
|
8579
8716
|
},
|
|
8580
8717
|
"additionalProperties": false
|
|
8581
8718
|
},
|
|
8582
|
-
"
|
|
8719
|
+
"__schema638": {
|
|
8583
8720
|
"type": "string",
|
|
8584
8721
|
"minLength": 1
|
|
8585
8722
|
},
|
|
8586
|
-
"
|
|
8723
|
+
"__schema639": {
|
|
8587
8724
|
"type": "object",
|
|
8588
8725
|
"properties": {
|
|
8589
8726
|
"decryption": {
|
|
8590
|
-
"$ref": "#/definitions/
|
|
8727
|
+
"$ref": "#/definitions/__schema623"
|
|
8591
8728
|
},
|
|
8592
8729
|
"fallbacks": {
|
|
8593
|
-
"$ref": "#/definitions/
|
|
8730
|
+
"$ref": "#/definitions/__schema626"
|
|
8594
8731
|
},
|
|
8595
8732
|
"clients": {
|
|
8596
8733
|
"markdownDescription": "An array representing a group of users approved by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/vless.html#userobject).\n",
|
|
8597
8734
|
"allOf": [
|
|
8598
8735
|
{
|
|
8599
|
-
"$ref": "#/definitions/
|
|
8736
|
+
"$ref": "#/definitions/__schema640"
|
|
8600
8737
|
}
|
|
8601
8738
|
]
|
|
8602
8739
|
}
|
|
@@ -8606,26 +8743,26 @@
|
|
|
8606
8743
|
],
|
|
8607
8744
|
"additionalProperties": false
|
|
8608
8745
|
},
|
|
8609
|
-
"
|
|
8746
|
+
"__schema640": {
|
|
8610
8747
|
"default": [],
|
|
8611
8748
|
"type": "array",
|
|
8612
8749
|
"items": {
|
|
8613
8750
|
"type": "object",
|
|
8614
8751
|
"properties": {
|
|
8615
8752
|
"id": {
|
|
8616
|
-
"$ref": "#/definitions/
|
|
8753
|
+
"$ref": "#/definitions/__schema629"
|
|
8617
8754
|
},
|
|
8618
8755
|
"level": {
|
|
8619
|
-
"$ref": "#/definitions/
|
|
8756
|
+
"$ref": "#/definitions/__schema630"
|
|
8620
8757
|
},
|
|
8621
8758
|
"email": {
|
|
8622
|
-
"$ref": "#/definitions/
|
|
8759
|
+
"$ref": "#/definitions/__schema632"
|
|
8623
8760
|
},
|
|
8624
8761
|
"flow": {
|
|
8625
|
-
"$ref": "#/definitions/
|
|
8762
|
+
"$ref": "#/definitions/__schema634"
|
|
8626
8763
|
},
|
|
8627
8764
|
"reverse": {
|
|
8628
|
-
"$ref": "#/definitions/
|
|
8765
|
+
"$ref": "#/definitions/__schema636"
|
|
8629
8766
|
}
|
|
8630
8767
|
},
|
|
8631
8768
|
"required": [
|
|
@@ -8634,7 +8771,7 @@
|
|
|
8634
8771
|
"additionalProperties": {}
|
|
8635
8772
|
}
|
|
8636
8773
|
},
|
|
8637
|
-
"
|
|
8774
|
+
"__schema641": {
|
|
8638
8775
|
"type": "object",
|
|
8639
8776
|
"properties": {
|
|
8640
8777
|
"tag": {
|
|
@@ -8653,10 +8790,10 @@
|
|
|
8653
8790
|
"$ref": "#/definitions/__schema552"
|
|
8654
8791
|
},
|
|
8655
8792
|
"protocol": {
|
|
8656
|
-
"$ref": "#/definitions/
|
|
8793
|
+
"$ref": "#/definitions/__schema642"
|
|
8657
8794
|
},
|
|
8658
8795
|
"settings": {
|
|
8659
|
-
"$ref": "#/definitions/
|
|
8796
|
+
"$ref": "#/definitions/__schema643"
|
|
8660
8797
|
}
|
|
8661
8798
|
},
|
|
8662
8799
|
"required": [
|
|
@@ -8666,47 +8803,47 @@
|
|
|
8666
8803
|
"additionalProperties": false,
|
|
8667
8804
|
"markdownDescription": "[VMess](https://xtls.github.io/en/development/protocols/vmess.html) is an encrypted transport protocol, commonly acting as a bridge between the Xray client and server.\n\n### DANGER\n\nVMess depends on system time. Please ensure that the system UTC time of the device running Xray is within 120 seconds of the actual time, regardless of the time zone. On Linux systems, you can install the `ntp` service to automatically synchronize system time.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/vmess.html)\n"
|
|
8668
8805
|
},
|
|
8669
|
-
"
|
|
8806
|
+
"__schema642": {
|
|
8670
8807
|
"type": "string",
|
|
8671
8808
|
"const": "vmess"
|
|
8672
8809
|
},
|
|
8673
|
-
"
|
|
8810
|
+
"__schema643": {
|
|
8674
8811
|
"anyOf": [
|
|
8675
8812
|
{
|
|
8676
|
-
"$ref": "#/definitions/
|
|
8813
|
+
"$ref": "#/definitions/__schema644"
|
|
8677
8814
|
},
|
|
8678
8815
|
{
|
|
8679
|
-
"$ref": "#/definitions/
|
|
8816
|
+
"$ref": "#/definitions/__schema651"
|
|
8680
8817
|
}
|
|
8681
8818
|
],
|
|
8682
8819
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
8683
8820
|
},
|
|
8684
|
-
"
|
|
8821
|
+
"__schema644": {
|
|
8685
8822
|
"type": "object",
|
|
8686
8823
|
"properties": {
|
|
8687
8824
|
"default": {
|
|
8688
|
-
"$ref": "#/definitions/
|
|
8825
|
+
"$ref": "#/definitions/__schema645"
|
|
8689
8826
|
},
|
|
8690
8827
|
"clients": {
|
|
8691
8828
|
"markdownDescription": "An array representing a group of users accepted by the server. Each item is a UserObject.\n\nWhen this configuration is used for dynamic ports, Xray will automatically create users.\n",
|
|
8692
8829
|
"allOf": [
|
|
8693
8830
|
{
|
|
8694
|
-
"$ref": "#/definitions/
|
|
8831
|
+
"$ref": "#/definitions/__schema647"
|
|
8695
8832
|
}
|
|
8696
8833
|
]
|
|
8697
8834
|
}
|
|
8698
8835
|
},
|
|
8699
8836
|
"additionalProperties": false
|
|
8700
8837
|
},
|
|
8701
|
-
"
|
|
8838
|
+
"__schema645": {
|
|
8702
8839
|
"markdownDescription": "Optional. Default configuration for `users`. Only valid when used in conjunction with `detour`.\n",
|
|
8703
8840
|
"allOf": [
|
|
8704
8841
|
{
|
|
8705
|
-
"$ref": "#/definitions/
|
|
8842
|
+
"$ref": "#/definitions/__schema646"
|
|
8706
8843
|
}
|
|
8707
8844
|
]
|
|
8708
8845
|
},
|
|
8709
|
-
"
|
|
8846
|
+
"__schema646": {
|
|
8710
8847
|
"type": "object",
|
|
8711
8848
|
"properties": {
|
|
8712
8849
|
"level": {
|
|
@@ -8719,14 +8856,14 @@
|
|
|
8719
8856
|
],
|
|
8720
8857
|
"additionalProperties": false
|
|
8721
8858
|
},
|
|
8722
|
-
"
|
|
8859
|
+
"__schema647": {
|
|
8723
8860
|
"default": [],
|
|
8724
8861
|
"type": "array",
|
|
8725
8862
|
"items": {
|
|
8726
|
-
"$ref": "#/definitions/
|
|
8863
|
+
"$ref": "#/definitions/__schema648"
|
|
8727
8864
|
}
|
|
8728
8865
|
},
|
|
8729
|
-
"
|
|
8866
|
+
"__schema648": {
|
|
8730
8867
|
"type": "object",
|
|
8731
8868
|
"properties": {
|
|
8732
8869
|
"id": {
|
|
@@ -8738,7 +8875,7 @@
|
|
|
8738
8875
|
"markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
|
|
8739
8876
|
"allOf": [
|
|
8740
8877
|
{
|
|
8741
|
-
"$ref": "#/definitions/
|
|
8878
|
+
"$ref": "#/definitions/__schema649"
|
|
8742
8879
|
}
|
|
8743
8880
|
]
|
|
8744
8881
|
},
|
|
@@ -8746,7 +8883,7 @@
|
|
|
8746
8883
|
"markdownDescription": "User email address, used to distinguish traffic from different users.\n",
|
|
8747
8884
|
"allOf": [
|
|
8748
8885
|
{
|
|
8749
|
-
"$ref": "#/definitions/
|
|
8886
|
+
"$ref": "#/definitions/__schema650"
|
|
8750
8887
|
}
|
|
8751
8888
|
]
|
|
8752
8889
|
}
|
|
@@ -8756,37 +8893,37 @@
|
|
|
8756
8893
|
],
|
|
8757
8894
|
"additionalProperties": false
|
|
8758
8895
|
},
|
|
8759
|
-
"
|
|
8896
|
+
"__schema649": {
|
|
8760
8897
|
"type": "number"
|
|
8761
8898
|
},
|
|
8762
|
-
"
|
|
8899
|
+
"__schema650": {
|
|
8763
8900
|
"type": "string"
|
|
8764
8901
|
},
|
|
8765
|
-
"
|
|
8902
|
+
"__schema651": {
|
|
8766
8903
|
"type": "object",
|
|
8767
8904
|
"properties": {
|
|
8768
8905
|
"default": {
|
|
8769
|
-
"$ref": "#/definitions/
|
|
8906
|
+
"$ref": "#/definitions/__schema645"
|
|
8770
8907
|
},
|
|
8771
8908
|
"users": {
|
|
8772
8909
|
"markdownDescription": "An array representing a group of users accepted by the server. Each item is a UserObject.\n\nWhen this configuration is used for dynamic ports, Xray will automatically create users.\n",
|
|
8773
8910
|
"allOf": [
|
|
8774
8911
|
{
|
|
8775
|
-
"$ref": "#/definitions/
|
|
8912
|
+
"$ref": "#/definitions/__schema652"
|
|
8776
8913
|
}
|
|
8777
8914
|
]
|
|
8778
8915
|
}
|
|
8779
8916
|
},
|
|
8780
8917
|
"additionalProperties": false
|
|
8781
8918
|
},
|
|
8782
|
-
"
|
|
8919
|
+
"__schema652": {
|
|
8783
8920
|
"default": [],
|
|
8784
8921
|
"type": "array",
|
|
8785
8922
|
"items": {
|
|
8786
|
-
"$ref": "#/definitions/
|
|
8923
|
+
"$ref": "#/definitions/__schema648"
|
|
8787
8924
|
}
|
|
8788
8925
|
},
|
|
8789
|
-
"
|
|
8926
|
+
"__schema653": {
|
|
8790
8927
|
"type": "object",
|
|
8791
8928
|
"properties": {
|
|
8792
8929
|
"tag": {
|
|
@@ -8805,10 +8942,10 @@
|
|
|
8805
8942
|
"$ref": "#/definitions/__schema552"
|
|
8806
8943
|
},
|
|
8807
8944
|
"protocol": {
|
|
8808
|
-
"$ref": "#/definitions/
|
|
8945
|
+
"$ref": "#/definitions/__schema654"
|
|
8809
8946
|
},
|
|
8810
8947
|
"settings": {
|
|
8811
|
-
"$ref": "#/definitions/
|
|
8948
|
+
"$ref": "#/definitions/__schema655"
|
|
8812
8949
|
}
|
|
8813
8950
|
},
|
|
8814
8951
|
"required": [
|
|
@@ -8818,21 +8955,21 @@
|
|
|
8818
8955
|
"additionalProperties": false,
|
|
8819
8956
|
"markdownDescription": "User-space WireGuard protocol implementation.\n\n### DANGER\n\n**The WireGuard protocol is not designed specifically for bypassing firewalls. If used as the outer layer to cross the firewall, its distinct characteristics may lead to the server being blocked.**\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/wireguard.html)\n"
|
|
8820
8957
|
},
|
|
8821
|
-
"
|
|
8958
|
+
"__schema654": {
|
|
8822
8959
|
"type": "string",
|
|
8823
8960
|
"const": "wireguard"
|
|
8824
8961
|
},
|
|
8825
|
-
"
|
|
8962
|
+
"__schema655": {
|
|
8826
8963
|
"type": "object",
|
|
8827
8964
|
"properties": {
|
|
8828
8965
|
"secretKey": {
|
|
8829
|
-
"$ref": "#/definitions/
|
|
8966
|
+
"$ref": "#/definitions/__schema656"
|
|
8830
8967
|
},
|
|
8831
8968
|
"peers": {
|
|
8832
|
-
"$ref": "#/definitions/
|
|
8969
|
+
"$ref": "#/definitions/__schema657"
|
|
8833
8970
|
},
|
|
8834
8971
|
"mtu": {
|
|
8835
|
-
"$ref": "#/definitions/
|
|
8972
|
+
"$ref": "#/definitions/__schema660"
|
|
8836
8973
|
}
|
|
8837
8974
|
},
|
|
8838
8975
|
"required": [
|
|
@@ -8841,19 +8978,19 @@
|
|
|
8841
8978
|
"additionalProperties": false,
|
|
8842
8979
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
8843
8980
|
},
|
|
8844
|
-
"
|
|
8981
|
+
"__schema656": {
|
|
8845
8982
|
"type": "string",
|
|
8846
8983
|
"markdownDescription": "Private key. Required.\n"
|
|
8847
8984
|
},
|
|
8848
|
-
"
|
|
8985
|
+
"__schema657": {
|
|
8849
8986
|
"markdownDescription": "List of peers, where each item is a peer configuration.\n",
|
|
8850
8987
|
"allOf": [
|
|
8851
8988
|
{
|
|
8852
|
-
"$ref": "#/definitions/
|
|
8989
|
+
"$ref": "#/definitions/__schema658"
|
|
8853
8990
|
}
|
|
8854
8991
|
]
|
|
8855
8992
|
},
|
|
8856
|
-
"
|
|
8993
|
+
"__schema658": {
|
|
8857
8994
|
"default": [],
|
|
8858
8995
|
"type": "array",
|
|
8859
8996
|
"items": {
|
|
@@ -8867,7 +9004,7 @@
|
|
|
8867
9004
|
"allowedIPs": {
|
|
8868
9005
|
"type": "array",
|
|
8869
9006
|
"items": {
|
|
8870
|
-
"$ref": "#/definitions/
|
|
9007
|
+
"$ref": "#/definitions/__schema659"
|
|
8871
9008
|
},
|
|
8872
9009
|
"markdownDescription": "Allowed source IPs.\n"
|
|
8873
9010
|
}
|
|
@@ -8879,23 +9016,23 @@
|
|
|
8879
9016
|
"additionalProperties": false
|
|
8880
9017
|
}
|
|
8881
9018
|
},
|
|
8882
|
-
"
|
|
9019
|
+
"__schema659": {
|
|
8883
9020
|
"type": "string",
|
|
8884
9021
|
"minLength": 1
|
|
8885
9022
|
},
|
|
8886
|
-
"
|
|
9023
|
+
"__schema660": {
|
|
8887
9024
|
"markdownDescription": "The MTU size of the underlying WireGuard TUN.\n\nMethod to Calculate MTU\n\n- 20-byte IPv4 header or 40 byte IPv6 header\n- 8-byte UDP header\n- 4-byte type\n- 4-byte key index\n- 8-byte nonce\n- N-byte encrypted data\n- 16-byte authentication tag\n\n`N-byte encrypted data` is the MTU value needed. Depending on whether the endpoint is IPv4 or IPv6, the specific value can be 1440 (IPv4) or 1420 (IPv6). If you are in a special network environment, you may need to subtract more (e.g., home broadband PPPoE requires an extra -8).\n",
|
|
8888
9025
|
"allOf": [
|
|
8889
9026
|
{
|
|
8890
|
-
"$ref": "#/definitions/
|
|
9027
|
+
"$ref": "#/definitions/__schema661"
|
|
8891
9028
|
}
|
|
8892
9029
|
]
|
|
8893
9030
|
},
|
|
8894
|
-
"
|
|
9031
|
+
"__schema661": {
|
|
8895
9032
|
"default": 1420,
|
|
8896
9033
|
"type": "number"
|
|
8897
9034
|
},
|
|
8898
|
-
"
|
|
9035
|
+
"__schema662": {
|
|
8899
9036
|
"type": "object",
|
|
8900
9037
|
"properties": {
|
|
8901
9038
|
"tag": {
|
|
@@ -8914,10 +9051,10 @@
|
|
|
8914
9051
|
"$ref": "#/definitions/__schema552"
|
|
8915
9052
|
},
|
|
8916
9053
|
"protocol": {
|
|
8917
|
-
"$ref": "#/definitions/
|
|
9054
|
+
"$ref": "#/definitions/__schema663"
|
|
8918
9055
|
},
|
|
8919
9056
|
"settings": {
|
|
8920
|
-
"$ref": "#/definitions/
|
|
9057
|
+
"$ref": "#/definitions/__schema664"
|
|
8921
9058
|
}
|
|
8922
9059
|
},
|
|
8923
9060
|
"required": [
|
|
@@ -8927,32 +9064,32 @@
|
|
|
8927
9064
|
"additionalProperties": false,
|
|
8928
9065
|
"markdownDescription": "[Trojan](https://trojan-gfw.github.io/trojan/protocol) protocol.\n\n### DANGER\n\nTrojan is designed to work over correctly configured encrypted TLS tunnels.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/trojan.html)\n"
|
|
8929
9066
|
},
|
|
8930
|
-
"
|
|
9067
|
+
"__schema663": {
|
|
8931
9068
|
"type": "string",
|
|
8932
9069
|
"const": "trojan"
|
|
8933
9070
|
},
|
|
8934
|
-
"
|
|
9071
|
+
"__schema664": {
|
|
8935
9072
|
"type": "object",
|
|
8936
9073
|
"properties": {
|
|
8937
9074
|
"users": {
|
|
8938
|
-
"$ref": "#/definitions/
|
|
9075
|
+
"$ref": "#/definitions/__schema665"
|
|
8939
9076
|
},
|
|
8940
9077
|
"fallbacks": {
|
|
8941
|
-
"$ref": "#/definitions/
|
|
9078
|
+
"$ref": "#/definitions/__schema668"
|
|
8942
9079
|
}
|
|
8943
9080
|
},
|
|
8944
9081
|
"additionalProperties": false,
|
|
8945
9082
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
8946
9083
|
},
|
|
8947
|
-
"
|
|
9084
|
+
"__schema665": {
|
|
8948
9085
|
"markdownDescription": "An array representing a group of users accepted by the server. Each item is a [UserObjects](https://xtls.github.io/en/config/inbounds/trojan.html#userobject).\n",
|
|
8949
9086
|
"allOf": [
|
|
8950
9087
|
{
|
|
8951
|
-
"$ref": "#/definitions/
|
|
9088
|
+
"$ref": "#/definitions/__schema666"
|
|
8952
9089
|
}
|
|
8953
9090
|
]
|
|
8954
9091
|
},
|
|
8955
|
-
"
|
|
9092
|
+
"__schema666": {
|
|
8956
9093
|
"default": [],
|
|
8957
9094
|
"type": "array",
|
|
8958
9095
|
"items": {
|
|
@@ -8972,7 +9109,7 @@
|
|
|
8972
9109
|
"markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
|
|
8973
9110
|
"allOf": [
|
|
8974
9111
|
{
|
|
8975
|
-
"$ref": "#/definitions/
|
|
9112
|
+
"$ref": "#/definitions/__schema667"
|
|
8976
9113
|
}
|
|
8977
9114
|
]
|
|
8978
9115
|
}
|
|
@@ -8984,21 +9121,21 @@
|
|
|
8984
9121
|
"additionalProperties": false
|
|
8985
9122
|
}
|
|
8986
9123
|
},
|
|
8987
|
-
"
|
|
9124
|
+
"__schema667": {
|
|
8988
9125
|
"default": 0,
|
|
8989
9126
|
"type": "integer",
|
|
8990
9127
|
"minimum": -9007199254740991,
|
|
8991
9128
|
"maximum": 9007199254740991
|
|
8992
9129
|
},
|
|
8993
|
-
"
|
|
9130
|
+
"__schema668": {
|
|
8994
9131
|
"markdownDescription": "An array containing a series of powerful fallback configurations (optional). For specific configuration of fallbacks, see [FallbackObject](https://xtls.github.io/en/config/features/fallback.html#fallbackobject).\n\n### TIP\n\nXray's Trojan has complete support for fallbacks, and the configuration method is exactly the same as VLESS. The conditions for triggering fallback are also similar to VLESS: the length of the first packet < 58, OR the 57th byte is not `\\r` (because Trojan has no protocol version), OR authentication fails.\n",
|
|
8995
9132
|
"allOf": [
|
|
8996
9133
|
{
|
|
8997
|
-
"$ref": "#/definitions/
|
|
9134
|
+
"$ref": "#/definitions/__schema669"
|
|
8998
9135
|
}
|
|
8999
9136
|
]
|
|
9000
9137
|
},
|
|
9001
|
-
"
|
|
9138
|
+
"__schema669": {
|
|
9002
9139
|
"type": "array",
|
|
9003
9140
|
"items": {
|
|
9004
9141
|
"type": "object",
|
|
@@ -9033,7 +9170,7 @@
|
|
|
9033
9170
|
"additionalProperties": false
|
|
9034
9171
|
}
|
|
9035
9172
|
},
|
|
9036
|
-
"
|
|
9173
|
+
"__schema670": {
|
|
9037
9174
|
"type": "object",
|
|
9038
9175
|
"properties": {
|
|
9039
9176
|
"tag": {
|
|
@@ -9052,10 +9189,10 @@
|
|
|
9052
9189
|
"$ref": "#/definitions/__schema552"
|
|
9053
9190
|
},
|
|
9054
9191
|
"protocol": {
|
|
9055
|
-
"$ref": "#/definitions/
|
|
9192
|
+
"$ref": "#/definitions/__schema671"
|
|
9056
9193
|
},
|
|
9057
9194
|
"settings": {
|
|
9058
|
-
"$ref": "#/definitions/
|
|
9195
|
+
"$ref": "#/definitions/__schema672"
|
|
9059
9196
|
}
|
|
9060
9197
|
},
|
|
9061
9198
|
"required": [
|
|
@@ -9065,33 +9202,33 @@
|
|
|
9065
9202
|
"additionalProperties": false,
|
|
9066
9203
|
"markdownDescription": "Creates a TUN interface; traffic sent to this interface will be processed by Xray. Currently, Windows, Linux, macOS, and FreeBSD are supported.\n\nOn Android, the TUN FD must be passed in from an external app, which uses VPN Service to redirect traffic. It cannot run standalone and only serves as a way for an app to feed traffic into Xray.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/tun.html)\n\n\n\n## Usage Tips\n\nIf `autoSystemRoutingTable` is not configured, you still need to add routes manually to direct traffic to the created TUN interface; otherwise, it remains just an interface.\n\nWhen `gateway`, `dns`, `autoSystemRoutingTable`, and `autoOutboundsInterface` are configured, Xray can perform part of the system-side setup automatically on supported platforms. If your platform does not implement these automatic settings yet, or if you need more fine-grained policy routing, you still need to configure the OS manually.\n\nIf you only want to proxy specific process(es), the process name routing in the Xray routing system will be very useful.\n\n### WARNING\n\nBe aware of potential traffic loop issues. After setting routes, requests initiated by Xray might be sent back to Xray, causing a loop. Prefer `autoOutboundsInterface` to avoid this problem. If you need manual control, you can still use `interface` in `sockopt` to bind to the actual physical network interface. `ipconfig` (Windows) or `ip a` (Linux) will help you find the interface name you need. Alternatively, use the outbound `sendThrough` setting. It is available directly in `OutboundObject` without the deep nesting level of `sockOpt.interface`. Here you need to use the IP address on the network card, such as 192.168.1.2 (As you can see, its disadvantage is that it cannot automatically support dual-stack; please choose according to the IP actually used for your outbound connection).\n"
|
|
9067
9204
|
},
|
|
9068
|
-
"
|
|
9205
|
+
"__schema671": {
|
|
9069
9206
|
"type": "string",
|
|
9070
9207
|
"const": "tun"
|
|
9071
9208
|
},
|
|
9072
|
-
"
|
|
9209
|
+
"__schema672": {
|
|
9073
9210
|
"type": "object",
|
|
9074
9211
|
"properties": {
|
|
9075
9212
|
"name": {
|
|
9076
|
-
"$ref": "#/definitions/
|
|
9213
|
+
"$ref": "#/definitions/__schema673"
|
|
9077
9214
|
},
|
|
9078
9215
|
"mtu": {
|
|
9079
|
-
"$ref": "#/definitions/
|
|
9216
|
+
"$ref": "#/definitions/__schema675"
|
|
9080
9217
|
},
|
|
9081
9218
|
"userLevel": {
|
|
9082
|
-
"$ref": "#/definitions/
|
|
9219
|
+
"$ref": "#/definitions/__schema677"
|
|
9083
9220
|
},
|
|
9084
9221
|
"gateway": {
|
|
9085
|
-
"$ref": "#/definitions/
|
|
9222
|
+
"$ref": "#/definitions/__schema679"
|
|
9086
9223
|
},
|
|
9087
9224
|
"dns": {
|
|
9088
|
-
"$ref": "#/definitions/
|
|
9225
|
+
"$ref": "#/definitions/__schema681"
|
|
9089
9226
|
},
|
|
9090
9227
|
"autoSystemRoutingTable": {
|
|
9091
|
-
"$ref": "#/definitions/
|
|
9228
|
+
"$ref": "#/definitions/__schema683"
|
|
9092
9229
|
},
|
|
9093
9230
|
"autoOutboundsInterface": {
|
|
9094
|
-
"$ref": "#/definitions/
|
|
9231
|
+
"$ref": "#/definitions/__schema685"
|
|
9095
9232
|
}
|
|
9096
9233
|
},
|
|
9097
9234
|
"required": [
|
|
@@ -9101,57 +9238,57 @@
|
|
|
9101
9238
|
"additionalProperties": false,
|
|
9102
9239
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
9103
9240
|
},
|
|
9104
|
-
"
|
|
9241
|
+
"__schema673": {
|
|
9105
9242
|
"markdownDescription": "The name of the created TUN interface. Default is `\"xray0\"`.\n",
|
|
9106
9243
|
"allOf": [
|
|
9107
9244
|
{
|
|
9108
|
-
"$ref": "#/definitions/
|
|
9245
|
+
"$ref": "#/definitions/__schema674"
|
|
9109
9246
|
}
|
|
9110
9247
|
]
|
|
9111
9248
|
},
|
|
9112
|
-
"
|
|
9249
|
+
"__schema674": {
|
|
9113
9250
|
"default": "xray0",
|
|
9114
9251
|
"type": "string"
|
|
9115
9252
|
},
|
|
9116
|
-
"
|
|
9253
|
+
"__schema675": {
|
|
9117
9254
|
"markdownDescription": "The MTU of the interface. The default is `1500`.\n",
|
|
9118
9255
|
"allOf": [
|
|
9119
9256
|
{
|
|
9120
|
-
"$ref": "#/definitions/
|
|
9257
|
+
"$ref": "#/definitions/__schema676"
|
|
9121
9258
|
}
|
|
9122
9259
|
]
|
|
9123
9260
|
},
|
|
9124
|
-
"
|
|
9261
|
+
"__schema676": {
|
|
9125
9262
|
"default": 1500,
|
|
9126
9263
|
"type": "integer",
|
|
9127
9264
|
"minimum": -9007199254740991,
|
|
9128
9265
|
"maximum": 9007199254740991
|
|
9129
9266
|
},
|
|
9130
|
-
"
|
|
9267
|
+
"__schema677": {
|
|
9131
9268
|
"markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
9132
9269
|
"allOf": [
|
|
9133
9270
|
{
|
|
9134
|
-
"$ref": "#/definitions/
|
|
9271
|
+
"$ref": "#/definitions/__schema678"
|
|
9135
9272
|
}
|
|
9136
9273
|
]
|
|
9137
9274
|
},
|
|
9138
|
-
"
|
|
9275
|
+
"__schema678": {
|
|
9139
9276
|
"default": 0,
|
|
9140
9277
|
"type": "integer",
|
|
9141
9278
|
"minimum": -9007199254740991,
|
|
9142
9279
|
"maximum": 9007199254740991
|
|
9143
9280
|
},
|
|
9144
|
-
"
|
|
9281
|
+
"__schema679": {
|
|
9145
9282
|
"type": "array",
|
|
9146
9283
|
"items": {
|
|
9147
|
-
"$ref": "#/definitions/
|
|
9284
|
+
"$ref": "#/definitions/__schema680"
|
|
9148
9285
|
},
|
|
9149
9286
|
"markdownDescription": "The list of address prefixes assigned to the TUN interface, usually one for IPv4 and one for IPv6, such as `\"10.0.0.1/16\"` and `\"fc00::1/64\"`.\n"
|
|
9150
9287
|
},
|
|
9151
|
-
"
|
|
9288
|
+
"__schema680": {
|
|
9152
9289
|
"type": "string"
|
|
9153
9290
|
},
|
|
9154
|
-
"
|
|
9291
|
+
"__schema681": {
|
|
9155
9292
|
"default": [
|
|
9156
9293
|
"1.1.1.1",
|
|
9157
9294
|
"8.8.8.8"
|
|
@@ -9159,39 +9296,39 @@
|
|
|
9159
9296
|
"markdownDescription": "The list of DNS servers assigned to the TUN interface, such as `\"1.1.1.1\"` and `\"8.8.8.8\"`.\n",
|
|
9160
9297
|
"allOf": [
|
|
9161
9298
|
{
|
|
9162
|
-
"$ref": "#/definitions/
|
|
9299
|
+
"$ref": "#/definitions/__schema682"
|
|
9163
9300
|
}
|
|
9164
9301
|
]
|
|
9165
9302
|
},
|
|
9166
|
-
"
|
|
9303
|
+
"__schema682": {
|
|
9167
9304
|
"type": "array",
|
|
9168
9305
|
"items": {
|
|
9169
9306
|
"type": "string"
|
|
9170
9307
|
}
|
|
9171
9308
|
},
|
|
9172
|
-
"
|
|
9309
|
+
"__schema683": {
|
|
9173
9310
|
"markdownDescription": "The list of destination prefixes that Xray should add to the system routing table automatically so that the traffic is directed into this TUN interface. Each item is a CIDR. For example, `\"0.0.0.0/0\"` means all IPv4 traffic, and `\"::/0\"` means all IPv6 traffic.\n\nCurrently only supported on Windows. On other systems, the routing table must be configured manually.\n",
|
|
9174
9311
|
"allOf": [
|
|
9175
9312
|
{
|
|
9176
|
-
"$ref": "#/definitions/
|
|
9313
|
+
"$ref": "#/definitions/__schema684"
|
|
9177
9314
|
}
|
|
9178
9315
|
]
|
|
9179
9316
|
},
|
|
9180
|
-
"
|
|
9317
|
+
"__schema684": {
|
|
9181
9318
|
"type": "array",
|
|
9182
9319
|
"items": {
|
|
9183
9320
|
"type": "string"
|
|
9184
9321
|
}
|
|
9185
9322
|
},
|
|
9186
|
-
"
|
|
9323
|
+
"__schema685": {
|
|
9187
9324
|
"markdownDescription": "Automatically binds Xray outbounds to a physical network interface, so that traffic generated by Xray itself is not sent back into the TUN interface and looped.\n\nThe default value is `null`, which means not configured. You can specify an interface name explicitly, or use `\"auto\"` to let Xray choose one automatically. If `autoSystemRoutingTable` is configured but this field is omitted, Xray treats it as `\"auto\"`.\n",
|
|
9188
9325
|
"allOf": [
|
|
9189
9326
|
{
|
|
9190
|
-
"$ref": "#/definitions/
|
|
9327
|
+
"$ref": "#/definitions/__schema686"
|
|
9191
9328
|
}
|
|
9192
9329
|
]
|
|
9193
9330
|
},
|
|
9194
|
-
"
|
|
9331
|
+
"__schema686": {
|
|
9195
9332
|
"default": null,
|
|
9196
9333
|
"anyOf": [
|
|
9197
9334
|
{
|
|
@@ -9210,7 +9347,7 @@
|
|
|
9210
9347
|
}
|
|
9211
9348
|
]
|
|
9212
9349
|
},
|
|
9213
|
-
"
|
|
9350
|
+
"__schema687": {
|
|
9214
9351
|
"type": "object",
|
|
9215
9352
|
"properties": {
|
|
9216
9353
|
"tag": {
|
|
@@ -9229,10 +9366,10 @@
|
|
|
9229
9366
|
"$ref": "#/definitions/__schema552"
|
|
9230
9367
|
},
|
|
9231
9368
|
"protocol": {
|
|
9232
|
-
"$ref": "#/definitions/
|
|
9369
|
+
"$ref": "#/definitions/__schema688"
|
|
9233
9370
|
},
|
|
9234
9371
|
"settings": {
|
|
9235
|
-
"$ref": "#/definitions/
|
|
9372
|
+
"$ref": "#/definitions/__schema689"
|
|
9236
9373
|
}
|
|
9237
9374
|
},
|
|
9238
9375
|
"required": [
|
|
@@ -9242,18 +9379,18 @@
|
|
|
9242
9379
|
"additionalProperties": false,
|
|
9243
9380
|
"markdownDescription": "### TIP\n\nThe `hysteria` protocol itself has no authentication; `users` only take effect when used with the `hysteria` transport layer.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/hysteria.html)\n"
|
|
9244
9381
|
},
|
|
9245
|
-
"
|
|
9382
|
+
"__schema688": {
|
|
9246
9383
|
"type": "string",
|
|
9247
9384
|
"const": "hysteria"
|
|
9248
9385
|
},
|
|
9249
|
-
"
|
|
9386
|
+
"__schema689": {
|
|
9250
9387
|
"type": "object",
|
|
9251
9388
|
"properties": {
|
|
9252
9389
|
"version": {
|
|
9253
|
-
"$ref": "#/definitions/
|
|
9390
|
+
"$ref": "#/definitions/__schema690"
|
|
9254
9391
|
},
|
|
9255
9392
|
"users": {
|
|
9256
|
-
"$ref": "#/definitions/
|
|
9393
|
+
"$ref": "#/definitions/__schema691"
|
|
9257
9394
|
}
|
|
9258
9395
|
},
|
|
9259
9396
|
"required": [
|
|
@@ -9262,20 +9399,20 @@
|
|
|
9262
9399
|
"additionalProperties": false,
|
|
9263
9400
|
"markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
|
|
9264
9401
|
},
|
|
9265
|
-
"
|
|
9402
|
+
"__schema690": {
|
|
9266
9403
|
"type": "number",
|
|
9267
9404
|
"const": 2,
|
|
9268
9405
|
"markdownDescription": "Hysteria version, must be 2.\n"
|
|
9269
9406
|
},
|
|
9270
|
-
"
|
|
9407
|
+
"__schema691": {
|
|
9271
9408
|
"markdownDescription": "An array representing a group of users approved by the server.\n",
|
|
9272
9409
|
"allOf": [
|
|
9273
9410
|
{
|
|
9274
|
-
"$ref": "#/definitions/
|
|
9411
|
+
"$ref": "#/definitions/__schema692"
|
|
9275
9412
|
}
|
|
9276
9413
|
]
|
|
9277
9414
|
},
|
|
9278
|
-
"
|
|
9415
|
+
"__schema692": {
|
|
9279
9416
|
"default": [],
|
|
9280
9417
|
"type": "array",
|
|
9281
9418
|
"items": {
|
|
@@ -9295,7 +9432,7 @@
|
|
|
9295
9432
|
"markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
9296
9433
|
"allOf": [
|
|
9297
9434
|
{
|
|
9298
|
-
"$ref": "#/definitions/
|
|
9435
|
+
"$ref": "#/definitions/__schema693"
|
|
9299
9436
|
}
|
|
9300
9437
|
]
|
|
9301
9438
|
}
|
|
@@ -9307,38 +9444,38 @@
|
|
|
9307
9444
|
"additionalProperties": false
|
|
9308
9445
|
}
|
|
9309
9446
|
},
|
|
9310
|
-
"
|
|
9447
|
+
"__schema693": {
|
|
9311
9448
|
"default": 0,
|
|
9312
9449
|
"type": "integer",
|
|
9313
9450
|
"minimum": -9007199254740991,
|
|
9314
9451
|
"maximum": 9007199254740991
|
|
9315
9452
|
},
|
|
9316
|
-
"
|
|
9453
|
+
"__schema694": {
|
|
9317
9454
|
"type": "object",
|
|
9318
9455
|
"properties": {
|
|
9319
9456
|
"sendThrough": {
|
|
9320
|
-
"$ref": "#/definitions/
|
|
9457
|
+
"$ref": "#/definitions/__schema695"
|
|
9321
9458
|
},
|
|
9322
9459
|
"tag": {
|
|
9323
|
-
"$ref": "#/definitions/
|
|
9460
|
+
"$ref": "#/definitions/__schema697"
|
|
9324
9461
|
},
|
|
9325
9462
|
"streamSettings": {
|
|
9326
|
-
"$ref": "#/definitions/
|
|
9463
|
+
"$ref": "#/definitions/__schema699"
|
|
9327
9464
|
},
|
|
9328
9465
|
"targetStrategy": {
|
|
9329
|
-
"$ref": "#/definitions/
|
|
9466
|
+
"$ref": "#/definitions/__schema700"
|
|
9330
9467
|
},
|
|
9331
9468
|
"proxySettings": {
|
|
9332
|
-
"$ref": "#/definitions/
|
|
9469
|
+
"$ref": "#/definitions/__schema702"
|
|
9333
9470
|
},
|
|
9334
9471
|
"mux": {
|
|
9335
|
-
"$ref": "#/definitions/
|
|
9472
|
+
"$ref": "#/definitions/__schema705"
|
|
9336
9473
|
},
|
|
9337
9474
|
"protocol": {
|
|
9338
|
-
"$ref": "#/definitions/
|
|
9475
|
+
"$ref": "#/definitions/__schema711"
|
|
9339
9476
|
},
|
|
9340
9477
|
"settings": {
|
|
9341
|
-
"$ref": "#/definitions/
|
|
9478
|
+
"$ref": "#/definitions/__schema712"
|
|
9342
9479
|
}
|
|
9343
9480
|
},
|
|
9344
9481
|
"required": [
|
|
@@ -9347,15 +9484,15 @@
|
|
|
9347
9484
|
"additionalProperties": false,
|
|
9348
9485
|
"markdownDescription": "Blackhole is an outbound data protocol that blocks all outbound data. When used in conjunction with [Routing Configuration](https://xtls.github.io/en/config/routing.html), it can achieve the effect of blocking access to certain websites.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/blackhole.html)\n"
|
|
9349
9486
|
},
|
|
9350
|
-
"
|
|
9487
|
+
"__schema695": {
|
|
9351
9488
|
"markdownDescription": "The IP address used to send data. This is effective when the host has multiple IP addresses. The default value is `\"0.0.0.0\"`.\n\nYou can enter an IPv6 CIDR block (e.g., `114:514:1919:810::/64`), and Xray will use a random IP address from the address block to initiate external connections. You need to correctly configure the network access method, routing table, and kernel parameters to allow Xray to bind to any IP within the address block.\n\nFor networks using NDP access, it is not recommended to set a subnet smaller than `/120`. Otherwise, it may cause issues such as NDP flooding, leading to the router's neighbor cache becoming full.\n\nSpecial value `origin`: If this value is used, the request will be sent using the IP address of the local machine that received the connection.\n\nSpecial value `srcip`: If this value is used, the request will be sent using the source IP address of the inbound connection.\n\nFor example, if the machine has a full IPv4 range `11.4.5.0/24` and listens on `0.0.0.0` (all IPv4 and IPv6 on the network interface), if a client connects to the local machine via `11.4.5.14`, the outbound request will also be sent via `11.4.5.14`. If the client connects via `11.4.5.10`, the outbound request will also be sent via `11.4.5.10`. This also applies to cases where the machine has a full range/multiple IPv6 addresses.\n\nAs mentioned in the inbound introduction, because of the connectionless nature of UDP, Xray cannot know the original destination IP where the request entered the core (for example, in the same QUIC connection, it might even change), so this feature cannot take effect for UDP.\n",
|
|
9352
9489
|
"allOf": [
|
|
9353
9490
|
{
|
|
9354
|
-
"$ref": "#/definitions/
|
|
9491
|
+
"$ref": "#/definitions/__schema696"
|
|
9355
9492
|
}
|
|
9356
9493
|
]
|
|
9357
9494
|
},
|
|
9358
|
-
"
|
|
9495
|
+
"__schema696": {
|
|
9359
9496
|
"anyOf": [
|
|
9360
9497
|
{
|
|
9361
9498
|
"type": "string"
|
|
@@ -9369,18 +9506,18 @@
|
|
|
9369
9506
|
}
|
|
9370
9507
|
]
|
|
9371
9508
|
},
|
|
9372
|
-
"
|
|
9509
|
+
"__schema697": {
|
|
9373
9510
|
"markdownDescription": "The identifier for this outbound connection, used to locate this connection in other configurations.\n\n### DANGER\n\nWhen not empty, its value must be **unique** among all `tag`s.\n",
|
|
9374
9511
|
"allOf": [
|
|
9375
9512
|
{
|
|
9376
|
-
"$ref": "#/definitions/
|
|
9513
|
+
"$ref": "#/definitions/__schema698"
|
|
9377
9514
|
}
|
|
9378
9515
|
]
|
|
9379
9516
|
},
|
|
9380
|
-
"
|
|
9517
|
+
"__schema698": {
|
|
9381
9518
|
"type": "string"
|
|
9382
9519
|
},
|
|
9383
|
-
"
|
|
9520
|
+
"__schema699": {
|
|
9384
9521
|
"markdownDescription": "Transport configuration for this outbound.\n",
|
|
9385
9522
|
"allOf": [
|
|
9386
9523
|
{
|
|
@@ -9388,15 +9525,15 @@
|
|
|
9388
9525
|
}
|
|
9389
9526
|
]
|
|
9390
9527
|
},
|
|
9391
|
-
"
|
|
9528
|
+
"__schema700": {
|
|
9392
9529
|
"markdownDescription": "If this outbound attempts to send a domain request, this controls whether it is resolved/how it is resolved to an IP before sending.\n\nThe default value is `AsIs`, meaning it is sent to the remote server as is. All parameter meanings are roughly equivalent to `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n\n### TIP\n\nThis controls **proxied requests**. If the address of the outbound proxy server is a domain name, and you need to select a resolution strategy for the domain name itself, you should configure `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n",
|
|
9393
9530
|
"allOf": [
|
|
9394
9531
|
{
|
|
9395
|
-
"$ref": "#/definitions/
|
|
9532
|
+
"$ref": "#/definitions/__schema701"
|
|
9396
9533
|
}
|
|
9397
9534
|
]
|
|
9398
9535
|
},
|
|
9399
|
-
"
|
|
9536
|
+
"__schema701": {
|
|
9400
9537
|
"default": "AsIs",
|
|
9401
9538
|
"type": "string",
|
|
9402
9539
|
"enum": [
|
|
@@ -9413,15 +9550,15 @@
|
|
|
9413
9550
|
"ForceIPv4"
|
|
9414
9551
|
]
|
|
9415
9552
|
},
|
|
9416
|
-
"
|
|
9553
|
+
"__schema702": {
|
|
9417
9554
|
"markdownDescription": "Outbound proxy configuration.\n",
|
|
9418
9555
|
"allOf": [
|
|
9419
9556
|
{
|
|
9420
|
-
"$ref": "#/definitions/
|
|
9557
|
+
"$ref": "#/definitions/__schema703"
|
|
9421
9558
|
}
|
|
9422
9559
|
]
|
|
9423
9560
|
},
|
|
9424
|
-
"
|
|
9561
|
+
"__schema703": {
|
|
9425
9562
|
"type": "object",
|
|
9426
9563
|
"properties": {
|
|
9427
9564
|
"tag": {
|
|
@@ -9433,7 +9570,7 @@
|
|
|
9433
9570
|
"markdownDescription": "`true` converts this setting to `Sockopt.dialerProxy` so the forwarding can use this outbound's `streamSettings`. The default is `false`.\n",
|
|
9434
9571
|
"allOf": [
|
|
9435
9572
|
{
|
|
9436
|
-
"$ref": "#/definitions/
|
|
9573
|
+
"$ref": "#/definitions/__schema704"
|
|
9437
9574
|
}
|
|
9438
9575
|
]
|
|
9439
9576
|
}
|
|
@@ -9443,26 +9580,26 @@
|
|
|
9443
9580
|
],
|
|
9444
9581
|
"additionalProperties": false
|
|
9445
9582
|
},
|
|
9446
|
-
"
|
|
9583
|
+
"__schema704": {
|
|
9447
9584
|
"default": false,
|
|
9448
9585
|
"type": "boolean"
|
|
9449
9586
|
},
|
|
9450
|
-
"
|
|
9587
|
+
"__schema705": {
|
|
9451
9588
|
"markdownDescription": "The Mux function distributes data from multiple TCP connections over a single TCP connection. For implementation details, see [Mux.Cool](https://xtls.github.io/en/development/protocols/muxcool.html). Mux is designed to reduce TCP handshake latency, not to increase connection throughput. Using Mux for watching videos, downloading, or speed testing usually has a negative effect. Mux only needs to be enabled on the client side; the server side adapts automatically. The second use of Mux is to distribute multiple UDP connections, i.e., XUDP.\n\n`MuxObject` corresponds to the `mux` item in `OutboundObject`.\n",
|
|
9452
9589
|
"allOf": [
|
|
9453
9590
|
{
|
|
9454
|
-
"$ref": "#/definitions/
|
|
9591
|
+
"$ref": "#/definitions/__schema706"
|
|
9455
9592
|
}
|
|
9456
9593
|
]
|
|
9457
9594
|
},
|
|
9458
|
-
"
|
|
9595
|
+
"__schema706": {
|
|
9459
9596
|
"type": "object",
|
|
9460
9597
|
"properties": {
|
|
9461
9598
|
"enabled": {
|
|
9462
9599
|
"markdownDescription": "Whether to enable Mux for forwarding requests. Default is `false`.\n",
|
|
9463
9600
|
"allOf": [
|
|
9464
9601
|
{
|
|
9465
|
-
"$ref": "#/definitions/
|
|
9602
|
+
"$ref": "#/definitions/__schema707"
|
|
9466
9603
|
}
|
|
9467
9604
|
]
|
|
9468
9605
|
},
|
|
@@ -9470,7 +9607,7 @@
|
|
|
9470
9607
|
"markdownDescription": "Maximum concurrent connections. Minimum `1`, maximum `128`. If omitted or set to `0`, it equals `8`. Values greater than `128` are treated as 128, because once a connection reaches the maximum reuse count of 128, it will no longer be assigned any new sub-connections.\n\nThis value represents the maximum number of sub-connections carried on a single TCP connection. For example, if `concurrency=8` is set, when the client issues 8 TCP requests, Xray will only issue one actual TCP connection, and all 8 requests from the client are transmitted over this TCP connection.\n\nWhen the maximum sub-connection capacity of all Mux connections is fully occupied, the core will initiate new connections to carry sub-connections. If a large number of sub-connections are concurrent in a short time and subsequently decrease, the internal scheduler of the core will tend to distribute requests to 2 connections alternately and leave other connections idle, waiting for all their sub-connections to end naturally before closing them to save resources. If the total number of sub-connections continues to be lower than `concurrency` for a long time, after one of the connections reaches the maximum reuse count, the core will revert to a single connection state.\n\n### TIP\n\nWhen set to a negative number, such as `-1`, the Mux module is not used to carry TCP traffic.\n",
|
|
9471
9608
|
"allOf": [
|
|
9472
9609
|
{
|
|
9473
|
-
"$ref": "#/definitions/
|
|
9610
|
+
"$ref": "#/definitions/__schema708"
|
|
9474
9611
|
}
|
|
9475
9612
|
]
|
|
9476
9613
|
},
|
|
@@ -9478,7 +9615,7 @@
|
|
|
9478
9615
|
"markdownDescription": "Use a new XUDP aggregation tunnel (i.e., another Mux connection) to proxy UDP traffic. Fill in the maximum number of concurrent sub-UoT. Minimum `1`, maximum `1024`. If omitted or set to `0`, it will follow the same path as TCP traffic, which is the traditional behavior.\n\n### TIP\n\nWhen set to a negative number, such as `-1`, the Mux module is not used to carry UDP traffic. The proxy protocol's original UDP transmission method will be used. For example, `Shadowsocks` will use native UDP, and `VLESS` will use UoT.\n",
|
|
9479
9616
|
"allOf": [
|
|
9480
9617
|
{
|
|
9481
|
-
"$ref": "#/definitions/
|
|
9618
|
+
"$ref": "#/definitions/__schema709"
|
|
9482
9619
|
}
|
|
9483
9620
|
]
|
|
9484
9621
|
},
|
|
@@ -9486,28 +9623,28 @@
|
|
|
9486
9623
|
"markdownDescription": "Controls how Mux handles proxied UDP/443 (QUIC) traffic:\n\n- Default `reject`: Rejects traffic (browsers typically fall back to TCP HTTP2 automatically).\n- `allow`: Allows traffic to go through the Mux connection.\n- `skip`: Does not use the Mux module to carry UDP 443 traffic. The proxy protocol's original UDP transmission method will be used. For example, `Shadowsocks` will use native UDP, and `VLESS` will use UoT.\n",
|
|
9487
9624
|
"allOf": [
|
|
9488
9625
|
{
|
|
9489
|
-
"$ref": "#/definitions/
|
|
9626
|
+
"$ref": "#/definitions/__schema710"
|
|
9490
9627
|
}
|
|
9491
9628
|
]
|
|
9492
9629
|
}
|
|
9493
9630
|
},
|
|
9494
9631
|
"additionalProperties": false
|
|
9495
9632
|
},
|
|
9496
|
-
"
|
|
9633
|
+
"__schema707": {
|
|
9497
9634
|
"default": false,
|
|
9498
9635
|
"type": "boolean"
|
|
9499
9636
|
},
|
|
9500
|
-
"
|
|
9637
|
+
"__schema708": {
|
|
9501
9638
|
"type": "integer",
|
|
9502
9639
|
"minimum": -9007199254740991,
|
|
9503
9640
|
"maximum": 9007199254740991
|
|
9504
9641
|
},
|
|
9505
|
-
"
|
|
9642
|
+
"__schema709": {
|
|
9506
9643
|
"type": "integer",
|
|
9507
9644
|
"minimum": -9007199254740991,
|
|
9508
9645
|
"maximum": 9007199254740991
|
|
9509
9646
|
},
|
|
9510
|
-
"
|
|
9647
|
+
"__schema710": {
|
|
9511
9648
|
"default": "reject",
|
|
9512
9649
|
"type": "string",
|
|
9513
9650
|
"enum": [
|
|
@@ -9516,7 +9653,7 @@
|
|
|
9516
9653
|
"skip"
|
|
9517
9654
|
]
|
|
9518
9655
|
},
|
|
9519
|
-
"
|
|
9656
|
+
"__schema711": {
|
|
9520
9657
|
"anyOf": [
|
|
9521
9658
|
{
|
|
9522
9659
|
"type": "string",
|
|
@@ -9528,43 +9665,43 @@
|
|
|
9528
9665
|
}
|
|
9529
9666
|
]
|
|
9530
9667
|
},
|
|
9531
|
-
"
|
|
9668
|
+
"__schema712": {
|
|
9532
9669
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n",
|
|
9533
9670
|
"allOf": [
|
|
9534
9671
|
{
|
|
9535
|
-
"$ref": "#/definitions/
|
|
9672
|
+
"$ref": "#/definitions/__schema713"
|
|
9536
9673
|
}
|
|
9537
9674
|
]
|
|
9538
9675
|
},
|
|
9539
|
-
"
|
|
9676
|
+
"__schema713": {
|
|
9540
9677
|
"type": "object",
|
|
9541
9678
|
"properties": {
|
|
9542
9679
|
"response": {
|
|
9543
9680
|
"markdownDescription": "Configures the response data of the Blackhole.\n\nAfter receiving data to be forwarded, Blackhole will send the specified response data, then close the connection. The data to be forwarded will be discarded. If this item is not specified, Blackhole will close the connection immediately.\n",
|
|
9544
9681
|
"allOf": [
|
|
9545
9682
|
{
|
|
9546
|
-
"$ref": "#/definitions/
|
|
9683
|
+
"$ref": "#/definitions/__schema714"
|
|
9547
9684
|
}
|
|
9548
9685
|
]
|
|
9549
9686
|
}
|
|
9550
9687
|
},
|
|
9551
9688
|
"additionalProperties": false
|
|
9552
9689
|
},
|
|
9553
|
-
"
|
|
9690
|
+
"__schema714": {
|
|
9554
9691
|
"type": "object",
|
|
9555
9692
|
"properties": {
|
|
9556
9693
|
"type": {
|
|
9557
9694
|
"markdownDescription": "When `type` is `\"none\"` (default value), Blackhole will close the connection immediately.\n\nWhen `type` is `\"http\"`, Blackhole will send back a simple HTTP 403 response packet, then close the connection.\n",
|
|
9558
9695
|
"allOf": [
|
|
9559
9696
|
{
|
|
9560
|
-
"$ref": "#/definitions/
|
|
9697
|
+
"$ref": "#/definitions/__schema715"
|
|
9561
9698
|
}
|
|
9562
9699
|
]
|
|
9563
9700
|
}
|
|
9564
9701
|
},
|
|
9565
9702
|
"additionalProperties": false
|
|
9566
9703
|
},
|
|
9567
|
-
"
|
|
9704
|
+
"__schema715": {
|
|
9568
9705
|
"default": "none",
|
|
9569
9706
|
"type": "string",
|
|
9570
9707
|
"enum": [
|
|
@@ -9572,32 +9709,32 @@
|
|
|
9572
9709
|
"http"
|
|
9573
9710
|
]
|
|
9574
9711
|
},
|
|
9575
|
-
"
|
|
9712
|
+
"__schema716": {
|
|
9576
9713
|
"type": "object",
|
|
9577
9714
|
"properties": {
|
|
9578
9715
|
"sendThrough": {
|
|
9579
|
-
"$ref": "#/definitions/
|
|
9716
|
+
"$ref": "#/definitions/__schema695"
|
|
9580
9717
|
},
|
|
9581
9718
|
"tag": {
|
|
9582
|
-
"$ref": "#/definitions/
|
|
9719
|
+
"$ref": "#/definitions/__schema697"
|
|
9583
9720
|
},
|
|
9584
9721
|
"streamSettings": {
|
|
9585
|
-
"$ref": "#/definitions/
|
|
9722
|
+
"$ref": "#/definitions/__schema699"
|
|
9586
9723
|
},
|
|
9587
9724
|
"targetStrategy": {
|
|
9588
|
-
"$ref": "#/definitions/
|
|
9725
|
+
"$ref": "#/definitions/__schema700"
|
|
9589
9726
|
},
|
|
9590
9727
|
"proxySettings": {
|
|
9591
|
-
"$ref": "#/definitions/
|
|
9728
|
+
"$ref": "#/definitions/__schema702"
|
|
9592
9729
|
},
|
|
9593
9730
|
"mux": {
|
|
9594
|
-
"$ref": "#/definitions/
|
|
9731
|
+
"$ref": "#/definitions/__schema705"
|
|
9595
9732
|
},
|
|
9596
9733
|
"protocol": {
|
|
9597
|
-
"$ref": "#/definitions/
|
|
9734
|
+
"$ref": "#/definitions/__schema717"
|
|
9598
9735
|
},
|
|
9599
9736
|
"settings": {
|
|
9600
|
-
"$ref": "#/definitions/
|
|
9737
|
+
"$ref": "#/definitions/__schema718"
|
|
9601
9738
|
}
|
|
9602
9739
|
},
|
|
9603
9740
|
"required": [
|
|
@@ -9606,7 +9743,7 @@
|
|
|
9606
9743
|
"additionalProperties": false,
|
|
9607
9744
|
"markdownDescription": "Freedom is an outbound protocol used to send (normal) TCP or UDP data to any network.\n\n### WARNING\n\nThis outbound has a default safety policy in server-side and reverse-proxy scenarios, which may block some targets. See `finalRules` below for how to allow them.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/freedom.html)\n"
|
|
9608
9745
|
},
|
|
9609
|
-
"
|
|
9746
|
+
"__schema717": {
|
|
9610
9747
|
"anyOf": [
|
|
9611
9748
|
{
|
|
9612
9749
|
"type": "string",
|
|
@@ -9618,22 +9755,22 @@
|
|
|
9618
9755
|
}
|
|
9619
9756
|
]
|
|
9620
9757
|
},
|
|
9621
|
-
"
|
|
9758
|
+
"__schema718": {
|
|
9622
9759
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n",
|
|
9623
9760
|
"allOf": [
|
|
9624
9761
|
{
|
|
9625
|
-
"$ref": "#/definitions/
|
|
9762
|
+
"$ref": "#/definitions/__schema719"
|
|
9626
9763
|
}
|
|
9627
9764
|
]
|
|
9628
9765
|
},
|
|
9629
|
-
"
|
|
9766
|
+
"__schema719": {
|
|
9630
9767
|
"type": "object",
|
|
9631
9768
|
"properties": {
|
|
9632
9769
|
"domainStrategy": {
|
|
9633
9770
|
"markdownDescription": "Default value `\"AsIs\"`.\n\nThe meanings of all parameters are roughly equivalent to `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n\nOnly using `\"AsIs\"` here allows passing the domain name to the subsequent `sockopt` module. If set to non-`\"AsIs\"` here, causing the domain to be resolved to a specific IP, it will invalidate the subsequent `sockopt.domainStrategy` and its related `happyEyeballs`. (There is no negative impact if these two settings are not adjusted).\n\nWhen sending UDP, Freedom ignores `domainStrategy` in `sockopt` for some reasons and forcibly prefers IPv4 by default.\n",
|
|
9634
9771
|
"allOf": [
|
|
9635
9772
|
{
|
|
9636
|
-
"$ref": "#/definitions/
|
|
9773
|
+
"$ref": "#/definitions/__schema720"
|
|
9637
9774
|
}
|
|
9638
9775
|
]
|
|
9639
9776
|
},
|
|
@@ -9641,7 +9778,7 @@
|
|
|
9641
9778
|
"markdownDescription": "Freedom will forcibly send all data to the specified address (instead of the address specified by the inbound).\n\nThe value is a string, e.g., `\"127.0.0.1:80\"`, `\":1234\"`.\n\nWhen the address is not specified, e.g., `\":443\"`, Freedom will not modify the original destination address. When the port is `0`, e.g., `\"xray.com:0\"`, Freedom will not modify the original port.\n",
|
|
9642
9779
|
"allOf": [
|
|
9643
9780
|
{
|
|
9644
|
-
"$ref": "#/definitions/
|
|
9781
|
+
"$ref": "#/definitions/__schema721"
|
|
9645
9782
|
}
|
|
9646
9783
|
]
|
|
9647
9784
|
},
|
|
@@ -9649,7 +9786,7 @@
|
|
|
9649
9786
|
"markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
|
|
9650
9787
|
"allOf": [
|
|
9651
9788
|
{
|
|
9652
|
-
"$ref": "#/definitions/
|
|
9789
|
+
"$ref": "#/definitions/__schema722"
|
|
9653
9790
|
}
|
|
9654
9791
|
]
|
|
9655
9792
|
},
|
|
@@ -9657,13 +9794,13 @@
|
|
|
9657
9794
|
"type": "object",
|
|
9658
9795
|
"properties": {
|
|
9659
9796
|
"length": {
|
|
9660
|
-
"$ref": "#/definitions/
|
|
9797
|
+
"$ref": "#/definitions/__schema723"
|
|
9661
9798
|
},
|
|
9662
9799
|
"interval": {
|
|
9663
|
-
"$ref": "#/definitions/
|
|
9800
|
+
"$ref": "#/definitions/__schema724"
|
|
9664
9801
|
},
|
|
9665
9802
|
"packets": {
|
|
9666
|
-
"$ref": "#/definitions/
|
|
9803
|
+
"$ref": "#/definitions/__schema725"
|
|
9667
9804
|
}
|
|
9668
9805
|
},
|
|
9669
9806
|
"required": [
|
|
@@ -9678,7 +9815,7 @@
|
|
|
9678
9815
|
"markdownDescription": "UDP noise, used to send some random data as \"noise\" before sending a UDP connection. Presence of this structure implies enablement. It might deceive sniffers, or it might disrupt normal connections. _Use at your own risk._ For this reason, it bypasses port 53 because that breaks DNS.\n\nIt is an array where multiple noise packets to be sent can be defined. A single element in the array is defined as follows:\n\n`\"type\"`: Noise packet type. Currently supports `\"rand\"` (random data), `\"str\"` (user-defined string), `\"base64\"` (base64 encoded custom binary data).\n\n`\"packet\"`: The content of the packet to be sent based on the preceding `type`.\n\n- When `type` is `rand`, this specifies the length of the random data. It can be a fixed value `\"100\"` or a floating range `\"50-150\"`.\n- When `type` is `str`, this specifies the string to be sent.\n- When `type` is `hex`, this specifies binary data in hex format.\n- When `type` is `base64`, this specifies base64 encoded binary data.\n\n`\"delay\"`: Delay in milliseconds. After sending this noise packet, the core will wait for this time before sending the next noise packet or real data. Defaults to no wait. It is an [Int32Range](https://xtls.github.io/en/development/intro/guide.html#int32range) type.\n",
|
|
9679
9816
|
"allOf": [
|
|
9680
9817
|
{
|
|
9681
|
-
"$ref": "#/definitions/
|
|
9818
|
+
"$ref": "#/definitions/__schema726"
|
|
9682
9819
|
}
|
|
9683
9820
|
]
|
|
9684
9821
|
},
|
|
@@ -9686,7 +9823,7 @@
|
|
|
9686
9823
|
"markdownDescription": "PROXY protocol is usually used with `redirect` to redirect traffic to Nginx or other backend services that have the PROXY protocol enabled. If the backend service does not support PROXY protocol, the connection will be disconnected.\n\nThe value of `proxyProtocol` is the PROXY protocol version number. Options are `1` or `2`. If not specified, it defaults to `0` (disabled).\n",
|
|
9687
9824
|
"allOf": [
|
|
9688
9825
|
{
|
|
9689
|
-
"$ref": "#/definitions/
|
|
9826
|
+
"$ref": "#/definitions/__schema727"
|
|
9690
9827
|
}
|
|
9691
9828
|
]
|
|
9692
9829
|
},
|
|
@@ -9694,14 +9831,14 @@
|
|
|
9694
9831
|
"markdownDescription": "Matches Freedom final outbound rules in order, and allows or blocks connection targets.\n\nCompared with blocking in `routing`, `finalRules` applies at Freedom's final outbound stage: matching happens after the final IP is resolved and before dialing; in addition, UDP is also matched packet by packet during send and receive, making it stricter and more thorough. Each rule match takes about 50-150 ns.\n\nNote: whenever Freedom needs to apply `finalRules`, if `domainStrategy` is `AsIs` and the target is a domain, Freedom still resolves the target to an IP through the operating system DNS before matching rules. At that point the target is no longer a domain, so the later `sockopt.domainStrategy` and its `happyEyeballs` no longer take effect.\n\n### WARNING\n\nThere is a default fallback safety policy for server-side and reverse-proxy scenarios:\n\nIf no explicit rule matches, the built-in fallback rule is used: traffic from the VLESS reverse proxy blocks all targets by default; traffic from `VLESS`, `VMess`, `Trojan`, `Shadowsocks`, `Hysteria`, or `WireGuard` inbounds blocks private and reserved IP ranges by default; other traffic is fully allowed by default.\n\nIf the server needs to allow clients to access some internal services, explicitly configure `allow` rules and limit them to the necessary `network`, `ip`, and `port` whenever possible.\n\nIf the server also needs features that rely on passing the domain to `sockopt` (such as `sockopt.domainStrategy` or `happyEyeballs`), it cannot continue relying on this default safety policy. You can configure the first rule as an `allow` rule without any matching conditions to restore the previous behavior; this is also equivalent to disabling this default safety policy, so evaluate the security impact yourself.\n",
|
|
9695
9832
|
"allOf": [
|
|
9696
9833
|
{
|
|
9697
|
-
"$ref": "#/definitions/
|
|
9834
|
+
"$ref": "#/definitions/__schema728"
|
|
9698
9835
|
}
|
|
9699
9836
|
]
|
|
9700
9837
|
}
|
|
9701
9838
|
},
|
|
9702
9839
|
"additionalProperties": false
|
|
9703
9840
|
},
|
|
9704
|
-
"
|
|
9841
|
+
"__schema720": {
|
|
9705
9842
|
"default": "AsIs",
|
|
9706
9843
|
"type": "string",
|
|
9707
9844
|
"enum": [
|
|
@@ -9718,16 +9855,16 @@
|
|
|
9718
9855
|
"ForceIPv4"
|
|
9719
9856
|
]
|
|
9720
9857
|
},
|
|
9721
|
-
"
|
|
9858
|
+
"__schema721": {
|
|
9722
9859
|
"type": "string"
|
|
9723
9860
|
},
|
|
9724
|
-
"
|
|
9861
|
+
"__schema722": {
|
|
9725
9862
|
"default": 0,
|
|
9726
9863
|
"type": "integer",
|
|
9727
9864
|
"minimum": -9007199254740991,
|
|
9728
9865
|
"maximum": 9007199254740991
|
|
9729
9866
|
},
|
|
9730
|
-
"
|
|
9867
|
+
"__schema723": {
|
|
9731
9868
|
"anyOf": [
|
|
9732
9869
|
{
|
|
9733
9870
|
"type": "integer",
|
|
@@ -9739,7 +9876,7 @@
|
|
|
9739
9876
|
}
|
|
9740
9877
|
]
|
|
9741
9878
|
},
|
|
9742
|
-
"
|
|
9879
|
+
"__schema724": {
|
|
9743
9880
|
"anyOf": [
|
|
9744
9881
|
{
|
|
9745
9882
|
"type": "integer",
|
|
@@ -9751,7 +9888,7 @@
|
|
|
9751
9888
|
}
|
|
9752
9889
|
]
|
|
9753
9890
|
},
|
|
9754
|
-
"
|
|
9891
|
+
"__schema725": {
|
|
9755
9892
|
"anyOf": [
|
|
9756
9893
|
{
|
|
9757
9894
|
"type": "string",
|
|
@@ -9762,7 +9899,7 @@
|
|
|
9762
9899
|
}
|
|
9763
9900
|
]
|
|
9764
9901
|
},
|
|
9765
|
-
"
|
|
9902
|
+
"__schema726": {
|
|
9766
9903
|
"type": "array",
|
|
9767
9904
|
"items": {
|
|
9768
9905
|
"type": "object",
|
|
@@ -9798,7 +9935,7 @@
|
|
|
9798
9935
|
"additionalProperties": false
|
|
9799
9936
|
}
|
|
9800
9937
|
},
|
|
9801
|
-
"
|
|
9938
|
+
"__schema727": {
|
|
9802
9939
|
"default": 0,
|
|
9803
9940
|
"anyOf": [
|
|
9804
9941
|
{
|
|
@@ -9819,26 +9956,26 @@
|
|
|
9819
9956
|
}
|
|
9820
9957
|
]
|
|
9821
9958
|
},
|
|
9822
|
-
"
|
|
9959
|
+
"__schema728": {
|
|
9823
9960
|
"default": [],
|
|
9824
9961
|
"type": "array",
|
|
9825
9962
|
"items": {
|
|
9826
9963
|
"type": "object",
|
|
9827
9964
|
"properties": {
|
|
9828
9965
|
"action": {
|
|
9829
|
-
"$ref": "#/definitions/
|
|
9966
|
+
"$ref": "#/definitions/__schema729"
|
|
9830
9967
|
},
|
|
9831
9968
|
"network": {
|
|
9832
|
-
"$ref": "#/definitions/
|
|
9969
|
+
"$ref": "#/definitions/__schema730"
|
|
9833
9970
|
},
|
|
9834
9971
|
"port": {
|
|
9835
|
-
"$ref": "#/definitions/
|
|
9972
|
+
"$ref": "#/definitions/__schema731"
|
|
9836
9973
|
},
|
|
9837
9974
|
"ip": {
|
|
9838
|
-
"$ref": "#/definitions/
|
|
9975
|
+
"$ref": "#/definitions/__schema732"
|
|
9839
9976
|
},
|
|
9840
9977
|
"blockDelay": {
|
|
9841
|
-
"$ref": "#/definitions/
|
|
9978
|
+
"$ref": "#/definitions/__schema734"
|
|
9842
9979
|
}
|
|
9843
9980
|
},
|
|
9844
9981
|
"required": [
|
|
@@ -9850,7 +9987,7 @@
|
|
|
9850
9987
|
"markdownDescription": "All matching conditions in a rule are combined with AND logic. If a condition is omitted, that condition is not restricted.\n"
|
|
9851
9988
|
}
|
|
9852
9989
|
},
|
|
9853
|
-
"
|
|
9990
|
+
"__schema729": {
|
|
9854
9991
|
"type": "string",
|
|
9855
9992
|
"enum": [
|
|
9856
9993
|
"allow",
|
|
@@ -9858,7 +9995,7 @@
|
|
|
9858
9995
|
],
|
|
9859
9996
|
"markdownDescription": "Defines the action to take when the rule matches.\n\n- `allow`: Allows the target.\n- `block`: Blocks the target.\n"
|
|
9860
9997
|
},
|
|
9861
|
-
"
|
|
9998
|
+
"__schema730": {
|
|
9862
9999
|
"type": "string",
|
|
9863
10000
|
"enum": [
|
|
9864
10001
|
"tcp",
|
|
@@ -9867,7 +10004,7 @@
|
|
|
9867
10004
|
],
|
|
9868
10005
|
"markdownDescription": "Matches the network type. The rule takes effect when the connection method matches. It can also be written as a string array, such as `[\"tcp\", \"udp\"]`. If omitted, all networks are matched.\n"
|
|
9869
10006
|
},
|
|
9870
|
-
"
|
|
10007
|
+
"__schema731": {
|
|
9871
10008
|
"markdownDescription": "Target port range. The syntax is the same as [`port` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject). If omitted, all ports are matched.\n",
|
|
9872
10009
|
"allOf": [
|
|
9873
10010
|
{
|
|
@@ -9875,57 +10012,57 @@
|
|
|
9875
10012
|
}
|
|
9876
10013
|
]
|
|
9877
10014
|
},
|
|
9878
|
-
"
|
|
10015
|
+
"__schema732": {
|
|
9879
10016
|
"markdownDescription": "An array where each item represents an IP range. The rule takes effect when an item matches the target IP. The syntax is the same as [`ip` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject). If omitted, all IPs are matched.\n",
|
|
9880
10017
|
"allOf": [
|
|
9881
10018
|
{
|
|
9882
|
-
"$ref": "#/definitions/
|
|
10019
|
+
"$ref": "#/definitions/__schema733"
|
|
9883
10020
|
}
|
|
9884
10021
|
]
|
|
9885
10022
|
},
|
|
9886
|
-
"
|
|
10023
|
+
"__schema733": {
|
|
9887
10024
|
"type": "array",
|
|
9888
10025
|
"items": {
|
|
9889
10026
|
"type": "string"
|
|
9890
10027
|
}
|
|
9891
10028
|
},
|
|
9892
|
-
"
|
|
10029
|
+
"__schema734": {
|
|
9893
10030
|
"markdownDescription": "Sets how long the blackhole state lasts after a blocking rule matches.\n\nWhen a rule's `action` is `block` and the target matches, Freedom puts the connection into a blackhole state and closes it after this duration expires. The unit is seconds. It can be written as a fixed value or a range, for example `30` or `30-90`. If omitted, it defaults to `30-90`, which means a random value within that range.\n",
|
|
9894
10031
|
"allOf": [
|
|
9895
10032
|
{
|
|
9896
|
-
"$ref": "#/definitions/
|
|
10033
|
+
"$ref": "#/definitions/__schema735"
|
|
9897
10034
|
}
|
|
9898
10035
|
]
|
|
9899
10036
|
},
|
|
9900
|
-
"
|
|
10037
|
+
"__schema735": {
|
|
9901
10038
|
"type": "string"
|
|
9902
10039
|
},
|
|
9903
|
-
"
|
|
10040
|
+
"__schema736": {
|
|
9904
10041
|
"type": "object",
|
|
9905
10042
|
"properties": {
|
|
9906
10043
|
"sendThrough": {
|
|
9907
|
-
"$ref": "#/definitions/
|
|
10044
|
+
"$ref": "#/definitions/__schema695"
|
|
9908
10045
|
},
|
|
9909
10046
|
"tag": {
|
|
9910
|
-
"$ref": "#/definitions/
|
|
10047
|
+
"$ref": "#/definitions/__schema697"
|
|
9911
10048
|
},
|
|
9912
10049
|
"streamSettings": {
|
|
9913
|
-
"$ref": "#/definitions/
|
|
10050
|
+
"$ref": "#/definitions/__schema699"
|
|
9914
10051
|
},
|
|
9915
10052
|
"targetStrategy": {
|
|
9916
|
-
"$ref": "#/definitions/
|
|
10053
|
+
"$ref": "#/definitions/__schema700"
|
|
9917
10054
|
},
|
|
9918
10055
|
"proxySettings": {
|
|
9919
|
-
"$ref": "#/definitions/
|
|
10056
|
+
"$ref": "#/definitions/__schema702"
|
|
9920
10057
|
},
|
|
9921
10058
|
"mux": {
|
|
9922
|
-
"$ref": "#/definitions/
|
|
10059
|
+
"$ref": "#/definitions/__schema705"
|
|
9923
10060
|
},
|
|
9924
10061
|
"protocol": {
|
|
9925
|
-
"$ref": "#/definitions/
|
|
10062
|
+
"$ref": "#/definitions/__schema737"
|
|
9926
10063
|
},
|
|
9927
10064
|
"settings": {
|
|
9928
|
-
"$ref": "#/definitions/
|
|
10065
|
+
"$ref": "#/definitions/__schema738"
|
|
9929
10066
|
}
|
|
9930
10067
|
},
|
|
9931
10068
|
"required": [
|
|
@@ -9935,108 +10072,108 @@
|
|
|
9935
10072
|
"additionalProperties": false,
|
|
9936
10073
|
"markdownDescription": "DNS is an outbound protocol used to receive DNS queries sent in by routing, then forward or process them according to rules.\n\nThis outbound only supports traditional plaintext DNS queries over UDP and TCP; non-plaintext DNS protocols such as DoH, DoT, and DoQ are not applicable to this outbound. Common scenarios include TUN, transparent proxy, or `dokodemo-door` receiving DNS traffic and then routing sending that traffic to this outbound.\n\nIt can allow queries to the target DNS server, `hijack` them to the built-in [DNS server](https://xtls.github.io/en/config/dns.html) for further processing, drop them, or return responses with a specified RCODE according to rules. It can also rewrite the target address, port, and transport protocol.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/dns.html)\n"
|
|
9937
10074
|
},
|
|
9938
|
-
"
|
|
10075
|
+
"__schema737": {
|
|
9939
10076
|
"type": "string",
|
|
9940
10077
|
"const": "dns"
|
|
9941
10078
|
},
|
|
9942
|
-
"
|
|
10079
|
+
"__schema738": {
|
|
9943
10080
|
"type": "object",
|
|
9944
10081
|
"properties": {
|
|
9945
10082
|
"rewriteNetwork": {
|
|
9946
|
-
"$ref": "#/definitions/
|
|
10083
|
+
"$ref": "#/definitions/__schema739"
|
|
9947
10084
|
},
|
|
9948
10085
|
"rewriteAddress": {
|
|
9949
|
-
"$ref": "#/definitions/
|
|
10086
|
+
"$ref": "#/definitions/__schema741"
|
|
9950
10087
|
},
|
|
9951
10088
|
"rewritePort": {
|
|
9952
|
-
"$ref": "#/definitions/
|
|
10089
|
+
"$ref": "#/definitions/__schema743"
|
|
9953
10090
|
},
|
|
9954
10091
|
"userLevel": {
|
|
9955
|
-
"$ref": "#/definitions/
|
|
10092
|
+
"$ref": "#/definitions/__schema745"
|
|
9956
10093
|
},
|
|
9957
10094
|
"rules": {
|
|
9958
|
-
"$ref": "#/definitions/
|
|
10095
|
+
"$ref": "#/definitions/__schema747"
|
|
9959
10096
|
}
|
|
9960
10097
|
},
|
|
9961
10098
|
"additionalProperties": false,
|
|
9962
10099
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
9963
10100
|
},
|
|
9964
|
-
"
|
|
10101
|
+
"__schema739": {
|
|
9965
10102
|
"markdownDescription": "Modifies the transport protocol used for DNS traffic. Available values are `\"tcp\"` and `\"udp\"`. If omitted, the original transport method is preserved.\n",
|
|
9966
10103
|
"allOf": [
|
|
9967
10104
|
{
|
|
9968
|
-
"$ref": "#/definitions/
|
|
10105
|
+
"$ref": "#/definitions/__schema740"
|
|
9969
10106
|
}
|
|
9970
10107
|
]
|
|
9971
10108
|
},
|
|
9972
|
-
"
|
|
10109
|
+
"__schema740": {
|
|
9973
10110
|
"type": "string",
|
|
9974
10111
|
"enum": [
|
|
9975
10112
|
"tcp",
|
|
9976
10113
|
"udp"
|
|
9977
10114
|
]
|
|
9978
10115
|
},
|
|
9979
|
-
"
|
|
10116
|
+
"__schema741": {
|
|
9980
10117
|
"markdownDescription": "Modifies the DNS server address. If omitted, the address specified by the source is preserved.\n",
|
|
9981
10118
|
"allOf": [
|
|
9982
10119
|
{
|
|
9983
|
-
"$ref": "#/definitions/
|
|
10120
|
+
"$ref": "#/definitions/__schema742"
|
|
9984
10121
|
}
|
|
9985
10122
|
]
|
|
9986
10123
|
},
|
|
9987
|
-
"
|
|
10124
|
+
"__schema742": {
|
|
9988
10125
|
"type": "string"
|
|
9989
10126
|
},
|
|
9990
|
-
"
|
|
10127
|
+
"__schema743": {
|
|
9991
10128
|
"markdownDescription": "Modifies the DNS server port. If omitted, the port specified by the source is preserved.\n",
|
|
9992
10129
|
"allOf": [
|
|
9993
10130
|
{
|
|
9994
|
-
"$ref": "#/definitions/
|
|
10131
|
+
"$ref": "#/definitions/__schema744"
|
|
9995
10132
|
}
|
|
9996
10133
|
]
|
|
9997
10134
|
},
|
|
9998
|
-
"
|
|
10135
|
+
"__schema744": {
|
|
9999
10136
|
"type": "string"
|
|
10000
10137
|
},
|
|
10001
|
-
"
|
|
10138
|
+
"__schema745": {
|
|
10002
10139
|
"markdownDescription": "User level. Connections will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If omitted, it defaults to `0`.\n",
|
|
10003
10140
|
"allOf": [
|
|
10004
10141
|
{
|
|
10005
|
-
"$ref": "#/definitions/
|
|
10142
|
+
"$ref": "#/definitions/__schema746"
|
|
10006
10143
|
}
|
|
10007
10144
|
]
|
|
10008
10145
|
},
|
|
10009
|
-
"
|
|
10146
|
+
"__schema746": {
|
|
10010
10147
|
"default": 0,
|
|
10011
10148
|
"type": "integer",
|
|
10012
10149
|
"minimum": -9007199254740991,
|
|
10013
10150
|
"maximum": 9007199254740991
|
|
10014
10151
|
},
|
|
10015
|
-
"
|
|
10152
|
+
"__schema747": {
|
|
10016
10153
|
"markdownDescription": "Matches DNS query rules in order, and supports fine-grained control by `qtype` and `domain`.\n\nIf no rule is matched, the built-in fallback rule is used: A and AAAA queries are imported into the built-in DNS module, while other query types return an empty response with RCODE `0`.\n",
|
|
10017
10154
|
"allOf": [
|
|
10018
10155
|
{
|
|
10019
|
-
"$ref": "#/definitions/
|
|
10156
|
+
"$ref": "#/definitions/__schema748"
|
|
10020
10157
|
}
|
|
10021
10158
|
]
|
|
10022
10159
|
},
|
|
10023
|
-
"
|
|
10160
|
+
"__schema748": {
|
|
10024
10161
|
"default": [],
|
|
10025
10162
|
"type": "array",
|
|
10026
10163
|
"items": {
|
|
10027
10164
|
"type": "object",
|
|
10028
10165
|
"properties": {
|
|
10029
10166
|
"action": {
|
|
10030
|
-
"$ref": "#/definitions/
|
|
10167
|
+
"$ref": "#/definitions/__schema749"
|
|
10031
10168
|
},
|
|
10032
10169
|
"qtype": {
|
|
10033
|
-
"$ref": "#/definitions/
|
|
10170
|
+
"$ref": "#/definitions/__schema750"
|
|
10034
10171
|
},
|
|
10035
10172
|
"rCode": {
|
|
10036
|
-
"$ref": "#/definitions/
|
|
10173
|
+
"$ref": "#/definitions/__schema752"
|
|
10037
10174
|
},
|
|
10038
10175
|
"domain": {
|
|
10039
|
-
"$ref": "#/definitions/
|
|
10176
|
+
"$ref": "#/definitions/__schema754"
|
|
10040
10177
|
}
|
|
10041
10178
|
},
|
|
10042
10179
|
"required": [
|
|
@@ -10047,7 +10184,7 @@
|
|
|
10047
10184
|
"markdownDescription": "All matching conditions in a rule are combined with AND logic. If a condition is omitted, that condition is not restricted.\n"
|
|
10048
10185
|
}
|
|
10049
10186
|
},
|
|
10050
|
-
"
|
|
10187
|
+
"__schema749": {
|
|
10051
10188
|
"type": "string",
|
|
10052
10189
|
"enum": [
|
|
10053
10190
|
"direct",
|
|
@@ -10057,15 +10194,15 @@
|
|
|
10057
10194
|
],
|
|
10058
10195
|
"markdownDescription": "Defines the action to take when the rule matches.\n\n- `direct`: Allows the query directly to the target DNS server. If outbound-level `rewriteNetwork`, `rewriteAddress`, or `rewritePort` is also configured, the query is forwarded to the rewritten target.\n- `hijack`: Imports the query into the built-in [DNS server](https://xtls.github.io/en/config/dns.html) for further processing. This can be used for additional routing based on the built-in DNS configuration. Currently, only A and AAAA records are supported.\n- `drop`: Drops the request directly without returning a response.\n- `return`: Returns a DNS response whose response code is specified by `rCode`. Compared with `drop`, this can prevent some applications from waiting too long for a DNS timeout or repeatedly retrying.\n"
|
|
10059
10196
|
},
|
|
10060
|
-
"
|
|
10197
|
+
"__schema750": {
|
|
10061
10198
|
"markdownDescription": "Matches DNS query types. The forms are as follows:\n\n- Integer value: a specific query type, such as `\"qtype\": 1` for an A query, or `\"qtype\": 28` for an AAAA query.\n- String: can be a digits-only string such as `\"qtype\": \"28\"`, or a numeric range such as `\"qtype\": \"5-10\"`, which represents the 6 types from type 5 to type 10. Commas can be used for segmentation, such as `11,13,15-17`, which represents the 5 types: type 11, type 13, and type 15 to type 17.\n\nFor specific type numbers, refer to the [IANA documentation](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml).\n",
|
|
10062
10199
|
"allOf": [
|
|
10063
10200
|
{
|
|
10064
|
-
"$ref": "#/definitions/
|
|
10201
|
+
"$ref": "#/definitions/__schema751"
|
|
10065
10202
|
}
|
|
10066
10203
|
]
|
|
10067
10204
|
},
|
|
10068
|
-
"
|
|
10205
|
+
"__schema751": {
|
|
10069
10206
|
"anyOf": [
|
|
10070
10207
|
{
|
|
10071
10208
|
"type": "number"
|
|
@@ -10075,53 +10212,53 @@
|
|
|
10075
10212
|
}
|
|
10076
10213
|
]
|
|
10077
10214
|
},
|
|
10078
|
-
"
|
|
10215
|
+
"__schema752": {
|
|
10079
10216
|
"markdownDescription": "The DNS RCODE used when returning a response, in the range `0` to `65535`. It only takes effect when `action` is `return`; if omitted, it defaults to `0`.\n",
|
|
10080
10217
|
"allOf": [
|
|
10081
10218
|
{
|
|
10082
|
-
"$ref": "#/definitions/
|
|
10219
|
+
"$ref": "#/definitions/__schema753"
|
|
10083
10220
|
}
|
|
10084
10221
|
]
|
|
10085
10222
|
},
|
|
10086
|
-
"
|
|
10223
|
+
"__schema753": {
|
|
10087
10224
|
"type": "number"
|
|
10088
10225
|
},
|
|
10089
|
-
"
|
|
10226
|
+
"__schema754": {
|
|
10090
10227
|
"type": "array",
|
|
10091
10228
|
"items": {
|
|
10092
|
-
"$ref": "#/definitions/
|
|
10229
|
+
"$ref": "#/definitions/__schema755"
|
|
10093
10230
|
},
|
|
10094
10231
|
"markdownDescription": "Matches a list of domains. The syntax is the same as [`domain` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject).\n"
|
|
10095
10232
|
},
|
|
10096
|
-
"
|
|
10233
|
+
"__schema755": {
|
|
10097
10234
|
"type": "string"
|
|
10098
10235
|
},
|
|
10099
|
-
"
|
|
10236
|
+
"__schema756": {
|
|
10100
10237
|
"type": "object",
|
|
10101
10238
|
"properties": {
|
|
10102
10239
|
"sendThrough": {
|
|
10103
|
-
"$ref": "#/definitions/
|
|
10240
|
+
"$ref": "#/definitions/__schema695"
|
|
10104
10241
|
},
|
|
10105
10242
|
"tag": {
|
|
10106
|
-
"$ref": "#/definitions/
|
|
10243
|
+
"$ref": "#/definitions/__schema697"
|
|
10107
10244
|
},
|
|
10108
10245
|
"streamSettings": {
|
|
10109
|
-
"$ref": "#/definitions/
|
|
10246
|
+
"$ref": "#/definitions/__schema699"
|
|
10110
10247
|
},
|
|
10111
10248
|
"targetStrategy": {
|
|
10112
|
-
"$ref": "#/definitions/
|
|
10249
|
+
"$ref": "#/definitions/__schema700"
|
|
10113
10250
|
},
|
|
10114
10251
|
"proxySettings": {
|
|
10115
|
-
"$ref": "#/definitions/
|
|
10252
|
+
"$ref": "#/definitions/__schema702"
|
|
10116
10253
|
},
|
|
10117
10254
|
"mux": {
|
|
10118
|
-
"$ref": "#/definitions/
|
|
10255
|
+
"$ref": "#/definitions/__schema705"
|
|
10119
10256
|
},
|
|
10120
10257
|
"protocol": {
|
|
10121
|
-
"$ref": "#/definitions/
|
|
10258
|
+
"$ref": "#/definitions/__schema757"
|
|
10122
10259
|
},
|
|
10123
10260
|
"settings": {
|
|
10124
|
-
"$ref": "#/definitions/
|
|
10261
|
+
"$ref": "#/definitions/__schema758"
|
|
10125
10262
|
}
|
|
10126
10263
|
},
|
|
10127
10264
|
"required": [
|
|
@@ -10131,21 +10268,21 @@
|
|
|
10131
10268
|
"additionalProperties": false,
|
|
10132
10269
|
"markdownDescription": "Client implementation of the Hysteria protocol.\n\nThis page is very simple because the Hysteria protocol is actually composed of a simple proxy control protocol and a tuned QUIC transport implementation. In Xray, the proxy protocol and transport configuration are separated. For more details (such as `brutal`), please refer to transport configuration items [hysteriaSettings](https://xtls.github.io/en/config/transports/hysteria.html) and [FinalMask.quicParams](https://xtls.github.io/en/config/transports/finalmask.html#quicparams).\n\n### TIP\n\nThe `hysteria protocol` itself has no authentication. When using with a non `hysteria` transport layer, it will be unable to proxy `udp`, and using it with other transport layers is not recommended.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/hysteria.html)\n"
|
|
10133
10270
|
},
|
|
10134
|
-
"
|
|
10271
|
+
"__schema757": {
|
|
10135
10272
|
"type": "string",
|
|
10136
10273
|
"const": "hysteria"
|
|
10137
10274
|
},
|
|
10138
|
-
"
|
|
10275
|
+
"__schema758": {
|
|
10139
10276
|
"type": "object",
|
|
10140
10277
|
"properties": {
|
|
10141
10278
|
"version": {
|
|
10142
|
-
"$ref": "#/definitions/
|
|
10279
|
+
"$ref": "#/definitions/__schema759"
|
|
10143
10280
|
},
|
|
10144
10281
|
"address": {
|
|
10145
|
-
"$ref": "#/definitions/
|
|
10282
|
+
"$ref": "#/definitions/__schema760"
|
|
10146
10283
|
},
|
|
10147
10284
|
"port": {
|
|
10148
|
-
"$ref": "#/definitions/
|
|
10285
|
+
"$ref": "#/definitions/__schema761"
|
|
10149
10286
|
}
|
|
10150
10287
|
},
|
|
10151
10288
|
"required": [
|
|
@@ -10156,16 +10293,16 @@
|
|
|
10156
10293
|
"additionalProperties": false,
|
|
10157
10294
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10158
10295
|
},
|
|
10159
|
-
"
|
|
10296
|
+
"__schema759": {
|
|
10160
10297
|
"type": "number",
|
|
10161
10298
|
"const": 2,
|
|
10162
10299
|
"markdownDescription": "Hysteria version, must be 2.\n"
|
|
10163
10300
|
},
|
|
10164
|
-
"
|
|
10301
|
+
"__schema760": {
|
|
10165
10302
|
"type": "string",
|
|
10166
10303
|
"markdownDescription": "Hysteria proxy server address, required.\n"
|
|
10167
10304
|
},
|
|
10168
|
-
"
|
|
10305
|
+
"__schema761": {
|
|
10169
10306
|
"markdownDescription": "Hysteria proxy server port, required.\n",
|
|
10170
10307
|
"allOf": [
|
|
10171
10308
|
{
|
|
@@ -10173,32 +10310,32 @@
|
|
|
10173
10310
|
}
|
|
10174
10311
|
]
|
|
10175
10312
|
},
|
|
10176
|
-
"
|
|
10313
|
+
"__schema762": {
|
|
10177
10314
|
"type": "object",
|
|
10178
10315
|
"properties": {
|
|
10179
10316
|
"sendThrough": {
|
|
10180
|
-
"$ref": "#/definitions/
|
|
10317
|
+
"$ref": "#/definitions/__schema695"
|
|
10181
10318
|
},
|
|
10182
10319
|
"tag": {
|
|
10183
|
-
"$ref": "#/definitions/
|
|
10320
|
+
"$ref": "#/definitions/__schema697"
|
|
10184
10321
|
},
|
|
10185
10322
|
"streamSettings": {
|
|
10186
|
-
"$ref": "#/definitions/
|
|
10323
|
+
"$ref": "#/definitions/__schema699"
|
|
10187
10324
|
},
|
|
10188
10325
|
"targetStrategy": {
|
|
10189
|
-
"$ref": "#/definitions/
|
|
10326
|
+
"$ref": "#/definitions/__schema700"
|
|
10190
10327
|
},
|
|
10191
10328
|
"proxySettings": {
|
|
10192
|
-
"$ref": "#/definitions/
|
|
10329
|
+
"$ref": "#/definitions/__schema702"
|
|
10193
10330
|
},
|
|
10194
10331
|
"mux": {
|
|
10195
|
-
"$ref": "#/definitions/
|
|
10332
|
+
"$ref": "#/definitions/__schema705"
|
|
10196
10333
|
},
|
|
10197
10334
|
"protocol": {
|
|
10198
|
-
"$ref": "#/definitions/
|
|
10335
|
+
"$ref": "#/definitions/__schema763"
|
|
10199
10336
|
},
|
|
10200
10337
|
"settings": {
|
|
10201
|
-
"$ref": "#/definitions/
|
|
10338
|
+
"$ref": "#/definitions/__schema764"
|
|
10202
10339
|
}
|
|
10203
10340
|
},
|
|
10204
10341
|
"required": [
|
|
@@ -10208,15 +10345,15 @@
|
|
|
10208
10345
|
"additionalProperties": false,
|
|
10209
10346
|
"markdownDescription": "Loopback is an outbound data protocol. Its function is to re-inject data sent through this outbound back into the routing inbound, allowing the data to be processed by the routing system again without leaving Xray-core.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/loopback.html)\n"
|
|
10210
10347
|
},
|
|
10211
|
-
"
|
|
10348
|
+
"__schema763": {
|
|
10212
10349
|
"type": "string",
|
|
10213
10350
|
"const": "loopback"
|
|
10214
10351
|
},
|
|
10215
|
-
"
|
|
10352
|
+
"__schema764": {
|
|
10216
10353
|
"type": "object",
|
|
10217
10354
|
"properties": {
|
|
10218
10355
|
"inboundTag": {
|
|
10219
|
-
"$ref": "#/definitions/
|
|
10356
|
+
"$ref": "#/definitions/__schema765"
|
|
10220
10357
|
}
|
|
10221
10358
|
},
|
|
10222
10359
|
"required": [
|
|
@@ -10225,36 +10362,36 @@
|
|
|
10225
10362
|
"additionalProperties": false,
|
|
10226
10363
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10227
10364
|
},
|
|
10228
|
-
"
|
|
10365
|
+
"__schema765": {
|
|
10229
10366
|
"type": "string",
|
|
10230
10367
|
"markdownDescription": "The inbound protocol identifier used for re-routing.\n\nThis identifier can be used for `inboundTag` in routing rules, indicating that data from this outbound can be processed again by the corresponding routing rules.\n"
|
|
10231
10368
|
},
|
|
10232
|
-
"
|
|
10369
|
+
"__schema766": {
|
|
10233
10370
|
"type": "object",
|
|
10234
10371
|
"properties": {
|
|
10235
10372
|
"sendThrough": {
|
|
10236
|
-
"$ref": "#/definitions/
|
|
10373
|
+
"$ref": "#/definitions/__schema695"
|
|
10237
10374
|
},
|
|
10238
10375
|
"tag": {
|
|
10239
|
-
"$ref": "#/definitions/
|
|
10376
|
+
"$ref": "#/definitions/__schema697"
|
|
10240
10377
|
},
|
|
10241
10378
|
"streamSettings": {
|
|
10242
|
-
"$ref": "#/definitions/
|
|
10379
|
+
"$ref": "#/definitions/__schema699"
|
|
10243
10380
|
},
|
|
10244
10381
|
"targetStrategy": {
|
|
10245
|
-
"$ref": "#/definitions/
|
|
10382
|
+
"$ref": "#/definitions/__schema700"
|
|
10246
10383
|
},
|
|
10247
10384
|
"proxySettings": {
|
|
10248
|
-
"$ref": "#/definitions/
|
|
10385
|
+
"$ref": "#/definitions/__schema702"
|
|
10249
10386
|
},
|
|
10250
10387
|
"mux": {
|
|
10251
|
-
"$ref": "#/definitions/
|
|
10388
|
+
"$ref": "#/definitions/__schema705"
|
|
10252
10389
|
},
|
|
10253
10390
|
"protocol": {
|
|
10254
|
-
"$ref": "#/definitions/
|
|
10391
|
+
"$ref": "#/definitions/__schema767"
|
|
10255
10392
|
},
|
|
10256
10393
|
"settings": {
|
|
10257
|
-
"$ref": "#/definitions/
|
|
10394
|
+
"$ref": "#/definitions/__schema768"
|
|
10258
10395
|
}
|
|
10259
10396
|
},
|
|
10260
10397
|
"required": [
|
|
@@ -10264,14 +10401,14 @@
|
|
|
10264
10401
|
"additionalProperties": false,
|
|
10265
10402
|
"markdownDescription": "The [Shadowsocks](https://en.wikipedia.org/wiki/Shadowsocks) protocol, compatible with most other version implementations.\n\nCurrent compatibility is as follows:\n\n- Supports TCP and UDP packet forwarding, where UDP can be optionally disabled;\n- Recommended encryption methods:\n - 2022-blake3-aes-128-gcm\n - 2022-blake3-aes-256-gcm\n - 2022-blake3-chacha20-poly1305\n- Other encryption methods:\n - aes-256-gcm\n - aes-128-gcm\n - chacha20-poly1305 (or chacha20-ietf-poly1305)\n - xchacha20-poly1305 (or xchacha20-ietf-poly1305)\n - none (or plain)\n\nThe Shadowsocks 2022 new protocol format improves performance and includes complete replay protection, resolving the following security issues of the old protocol:\n\n- [Severe vulnerabilities in the design of Shadowsocks AEAD encryption, unable to guarantee communication reliability](https://github.com/shadowsocks/shadowsocks-org/issues/183)\n- The false positive rate of the original TCP replay filter increases over time\n- No UDP replay protection\n- TCP behavior that can be used for active probing\n\n### DANGER\n\nUnder the \"none\" encryption method, traffic will be transmitted in plain text. To ensure security, do not use it on public networks.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/shadowsocks.html)\n"
|
|
10266
10403
|
},
|
|
10267
|
-
"
|
|
10404
|
+
"__schema767": {
|
|
10268
10405
|
"type": "string",
|
|
10269
10406
|
"const": "shadowsocks"
|
|
10270
10407
|
},
|
|
10271
|
-
"
|
|
10408
|
+
"__schema768": {
|
|
10272
10409
|
"anyOf": [
|
|
10273
10410
|
{
|
|
10274
|
-
"$ref": "#/definitions/
|
|
10411
|
+
"$ref": "#/definitions/__schema769"
|
|
10275
10412
|
},
|
|
10276
10413
|
{
|
|
10277
10414
|
"type": "object",
|
|
@@ -10279,7 +10416,7 @@
|
|
|
10279
10416
|
"servers": {
|
|
10280
10417
|
"type": "array",
|
|
10281
10418
|
"items": {
|
|
10282
|
-
"$ref": "#/definitions/
|
|
10419
|
+
"$ref": "#/definitions/__schema769"
|
|
10283
10420
|
}
|
|
10284
10421
|
}
|
|
10285
10422
|
},
|
|
@@ -10290,7 +10427,7 @@
|
|
|
10290
10427
|
}
|
|
10291
10428
|
]
|
|
10292
10429
|
},
|
|
10293
|
-
"
|
|
10430
|
+
"__schema769": {
|
|
10294
10431
|
"type": "object",
|
|
10295
10432
|
"properties": {
|
|
10296
10433
|
"address": {
|
|
@@ -10309,7 +10446,7 @@
|
|
|
10309
10446
|
"markdownDescription": "Email address, optional, used to identify the user.\n",
|
|
10310
10447
|
"allOf": [
|
|
10311
10448
|
{
|
|
10312
|
-
"$ref": "#/definitions/
|
|
10449
|
+
"$ref": "#/definitions/__schema770"
|
|
10313
10450
|
}
|
|
10314
10451
|
]
|
|
10315
10452
|
},
|
|
@@ -10318,17 +10455,17 @@
|
|
|
10318
10455
|
"markdownDescription": "Shadowsocks authentication password. Required.\n\n- Shadowsocks 2022\n\nUses a pre-shared key similar to WireGuard as the password.\n\nUse `openssl rand -base64 <length>` to generate a key compatible with shadowsocks-rust. The length depends on the encryption method used.\n\n| Encryption Method | Key Length |\n| ----------------------------- | ---------- |\n| 2022-blake3-aes-128-gcm | 16 |\n| 2022-blake3-aes-256-gcm | 32 |\n| 2022-blake3-chacha20-poly1305 | 32 |\n\nIn the Go implementation, 32-byte keys always work.\n\n- Other encryption methods\n\nAny string. There is no limit on password length, but short passwords are more likely to be cracked. It is recommended to use passwords of 16 characters or longer.\n",
|
|
10319
10456
|
"allOf": [
|
|
10320
10457
|
{
|
|
10321
|
-
"$ref": "#/definitions/
|
|
10458
|
+
"$ref": "#/definitions/__schema771"
|
|
10322
10459
|
}
|
|
10323
10460
|
]
|
|
10324
10461
|
},
|
|
10325
10462
|
"method": {
|
|
10326
10463
|
"anyOf": [
|
|
10327
10464
|
{
|
|
10328
|
-
"$ref": "#/definitions/
|
|
10465
|
+
"$ref": "#/definitions/__schema606"
|
|
10329
10466
|
},
|
|
10330
10467
|
{
|
|
10331
|
-
"$ref": "#/definitions/
|
|
10468
|
+
"$ref": "#/definitions/__schema614"
|
|
10332
10469
|
}
|
|
10333
10470
|
],
|
|
10334
10471
|
"markdownDescription": "Shadowsocks encryption method. Required.\n\nRecommended encryption methods:\n\n- 2022-blake3-aes-128-gcm\n- 2022-blake3-aes-256-gcm\n- 2022-blake3-chacha20-poly1305\n\nOther encryption methods:\n\n- aes-256-gcm\n- aes-128-gcm\n- chacha20-poly1305 (or chacha20-ietf-poly1305)\n- xchacha20-poly1305 (or xchacha20-ietf-poly1305)\n- none (or plain)\n"
|
|
@@ -10337,7 +10474,7 @@
|
|
|
10337
10474
|
"markdownDescription": "Enable `udp over tcp`.\n",
|
|
10338
10475
|
"allOf": [
|
|
10339
10476
|
{
|
|
10340
|
-
"$ref": "#/definitions/
|
|
10477
|
+
"$ref": "#/definitions/__schema772"
|
|
10341
10478
|
}
|
|
10342
10479
|
]
|
|
10343
10480
|
},
|
|
@@ -10345,7 +10482,7 @@
|
|
|
10345
10482
|
"markdownDescription": "Implementation version of `UDP over TCP`.\n\nCurrent optional values: `1`, `2`.\n",
|
|
10346
10483
|
"allOf": [
|
|
10347
10484
|
{
|
|
10348
|
-
"$ref": "#/definitions/
|
|
10485
|
+
"$ref": "#/definitions/__schema773"
|
|
10349
10486
|
}
|
|
10350
10487
|
]
|
|
10351
10488
|
},
|
|
@@ -10353,7 +10490,7 @@
|
|
|
10353
10490
|
"markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
10354
10491
|
"allOf": [
|
|
10355
10492
|
{
|
|
10356
|
-
"$ref": "#/definitions/
|
|
10493
|
+
"$ref": "#/definitions/__schema774"
|
|
10357
10494
|
}
|
|
10358
10495
|
]
|
|
10359
10496
|
}
|
|
@@ -10366,17 +10503,17 @@
|
|
|
10366
10503
|
],
|
|
10367
10504
|
"additionalProperties": false
|
|
10368
10505
|
},
|
|
10369
|
-
"
|
|
10506
|
+
"__schema770": {
|
|
10370
10507
|
"type": "string"
|
|
10371
10508
|
},
|
|
10372
|
-
"
|
|
10509
|
+
"__schema771": {
|
|
10373
10510
|
"type": "string"
|
|
10374
10511
|
},
|
|
10375
|
-
"
|
|
10512
|
+
"__schema772": {
|
|
10376
10513
|
"default": true,
|
|
10377
10514
|
"type": "boolean"
|
|
10378
10515
|
},
|
|
10379
|
-
"
|
|
10516
|
+
"__schema773": {
|
|
10380
10517
|
"default": 2,
|
|
10381
10518
|
"anyOf": [
|
|
10382
10519
|
{
|
|
@@ -10389,38 +10526,38 @@
|
|
|
10389
10526
|
}
|
|
10390
10527
|
]
|
|
10391
10528
|
},
|
|
10392
|
-
"
|
|
10529
|
+
"__schema774": {
|
|
10393
10530
|
"default": 0,
|
|
10394
10531
|
"type": "integer",
|
|
10395
10532
|
"minimum": -9007199254740991,
|
|
10396
10533
|
"maximum": 9007199254740991
|
|
10397
10534
|
},
|
|
10398
|
-
"
|
|
10535
|
+
"__schema775": {
|
|
10399
10536
|
"type": "object",
|
|
10400
10537
|
"properties": {
|
|
10401
10538
|
"sendThrough": {
|
|
10402
|
-
"$ref": "#/definitions/
|
|
10539
|
+
"$ref": "#/definitions/__schema695"
|
|
10403
10540
|
},
|
|
10404
10541
|
"tag": {
|
|
10405
|
-
"$ref": "#/definitions/
|
|
10542
|
+
"$ref": "#/definitions/__schema697"
|
|
10406
10543
|
},
|
|
10407
10544
|
"streamSettings": {
|
|
10408
|
-
"$ref": "#/definitions/
|
|
10545
|
+
"$ref": "#/definitions/__schema699"
|
|
10409
10546
|
},
|
|
10410
10547
|
"targetStrategy": {
|
|
10411
|
-
"$ref": "#/definitions/
|
|
10548
|
+
"$ref": "#/definitions/__schema700"
|
|
10412
10549
|
},
|
|
10413
10550
|
"proxySettings": {
|
|
10414
|
-
"$ref": "#/definitions/
|
|
10551
|
+
"$ref": "#/definitions/__schema702"
|
|
10415
10552
|
},
|
|
10416
10553
|
"mux": {
|
|
10417
|
-
"$ref": "#/definitions/
|
|
10554
|
+
"$ref": "#/definitions/__schema705"
|
|
10418
10555
|
},
|
|
10419
10556
|
"protocol": {
|
|
10420
|
-
"$ref": "#/definitions/
|
|
10557
|
+
"$ref": "#/definitions/__schema776"
|
|
10421
10558
|
},
|
|
10422
10559
|
"settings": {
|
|
10423
|
-
"$ref": "#/definitions/
|
|
10560
|
+
"$ref": "#/definitions/__schema777"
|
|
10424
10561
|
}
|
|
10425
10562
|
},
|
|
10426
10563
|
"required": [
|
|
@@ -10429,14 +10566,14 @@
|
|
|
10429
10566
|
"additionalProperties": false,
|
|
10430
10567
|
"markdownDescription": "Standard Socks protocol implementation, compatible with Socks 5.\n\n### DANGER\n\n**The Socks protocol does not encrypt transmission and is not suitable for transmission over the public internet.**\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/socks.html)\n"
|
|
10431
10568
|
},
|
|
10432
|
-
"
|
|
10569
|
+
"__schema776": {
|
|
10433
10570
|
"type": "string",
|
|
10434
10571
|
"const": "socks"
|
|
10435
10572
|
},
|
|
10436
|
-
"
|
|
10573
|
+
"__schema777": {
|
|
10437
10574
|
"anyOf": [
|
|
10438
10575
|
{
|
|
10439
|
-
"$ref": "#/definitions/
|
|
10576
|
+
"$ref": "#/definitions/__schema778"
|
|
10440
10577
|
},
|
|
10441
10578
|
{
|
|
10442
10579
|
"type": "object",
|
|
@@ -10444,7 +10581,7 @@
|
|
|
10444
10581
|
"servers": {
|
|
10445
10582
|
"type": "array",
|
|
10446
10583
|
"items": {
|
|
10447
|
-
"$ref": "#/definitions/
|
|
10584
|
+
"$ref": "#/definitions/__schema778"
|
|
10448
10585
|
}
|
|
10449
10586
|
}
|
|
10450
10587
|
},
|
|
@@ -10455,26 +10592,26 @@
|
|
|
10455
10592
|
}
|
|
10456
10593
|
]
|
|
10457
10594
|
},
|
|
10458
|
-
"
|
|
10595
|
+
"__schema778": {
|
|
10459
10596
|
"type": "object",
|
|
10460
10597
|
"properties": {
|
|
10461
10598
|
"address": {
|
|
10462
|
-
"$ref": "#/definitions/
|
|
10599
|
+
"$ref": "#/definitions/__schema779"
|
|
10463
10600
|
},
|
|
10464
10601
|
"port": {
|
|
10465
|
-
"$ref": "#/definitions/
|
|
10602
|
+
"$ref": "#/definitions/__schema780"
|
|
10466
10603
|
},
|
|
10467
10604
|
"user": {
|
|
10468
|
-
"$ref": "#/definitions/
|
|
10605
|
+
"$ref": "#/definitions/__schema781"
|
|
10469
10606
|
},
|
|
10470
10607
|
"pass": {
|
|
10471
|
-
"$ref": "#/definitions/
|
|
10608
|
+
"$ref": "#/definitions/__schema783"
|
|
10472
10609
|
},
|
|
10473
10610
|
"level": {
|
|
10474
|
-
"$ref": "#/definitions/
|
|
10611
|
+
"$ref": "#/definitions/__schema785"
|
|
10475
10612
|
},
|
|
10476
10613
|
"email": {
|
|
10477
|
-
"$ref": "#/definitions/
|
|
10614
|
+
"$ref": "#/definitions/__schema787"
|
|
10478
10615
|
}
|
|
10479
10616
|
},
|
|
10480
10617
|
"required": [
|
|
@@ -10484,11 +10621,11 @@
|
|
|
10484
10621
|
"additionalProperties": false,
|
|
10485
10622
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10486
10623
|
},
|
|
10487
|
-
"
|
|
10624
|
+
"__schema779": {
|
|
10488
10625
|
"type": "string",
|
|
10489
10626
|
"markdownDescription": "Server address. Required.\n\n### TIP\n\nOnly connections to Socks 5 servers are supported.\n"
|
|
10490
10627
|
},
|
|
10491
|
-
"
|
|
10628
|
+
"__schema780": {
|
|
10492
10629
|
"markdownDescription": "Server port. Required.\n",
|
|
10493
10630
|
"allOf": [
|
|
10494
10631
|
{
|
|
@@ -10496,79 +10633,79 @@
|
|
|
10496
10633
|
}
|
|
10497
10634
|
]
|
|
10498
10635
|
},
|
|
10499
|
-
"
|
|
10636
|
+
"__schema781": {
|
|
10500
10637
|
"markdownDescription": "Username, string type. Required if the remote server requires authentication; otherwise, do not include this item.\n",
|
|
10501
10638
|
"allOf": [
|
|
10502
10639
|
{
|
|
10503
|
-
"$ref": "#/definitions/
|
|
10640
|
+
"$ref": "#/definitions/__schema782"
|
|
10504
10641
|
}
|
|
10505
10642
|
]
|
|
10506
10643
|
},
|
|
10507
|
-
"
|
|
10644
|
+
"__schema782": {
|
|
10508
10645
|
"type": "string"
|
|
10509
10646
|
},
|
|
10510
|
-
"
|
|
10647
|
+
"__schema783": {
|
|
10511
10648
|
"markdownDescription": "Password, string type. Required if the remote server requires authentication; otherwise, do not include this item.\n",
|
|
10512
10649
|
"allOf": [
|
|
10513
10650
|
{
|
|
10514
|
-
"$ref": "#/definitions/
|
|
10651
|
+
"$ref": "#/definitions/__schema784"
|
|
10515
10652
|
}
|
|
10516
10653
|
]
|
|
10517
10654
|
},
|
|
10518
|
-
"
|
|
10655
|
+
"__schema784": {
|
|
10519
10656
|
"type": "string"
|
|
10520
10657
|
},
|
|
10521
|
-
"
|
|
10658
|
+
"__schema785": {
|
|
10522
10659
|
"markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
10523
10660
|
"allOf": [
|
|
10524
10661
|
{
|
|
10525
|
-
"$ref": "#/definitions/
|
|
10662
|
+
"$ref": "#/definitions/__schema786"
|
|
10526
10663
|
}
|
|
10527
10664
|
]
|
|
10528
10665
|
},
|
|
10529
|
-
"
|
|
10666
|
+
"__schema786": {
|
|
10530
10667
|
"default": 0,
|
|
10531
10668
|
"type": "integer",
|
|
10532
10669
|
"minimum": -9007199254740991,
|
|
10533
10670
|
"maximum": 9007199254740991
|
|
10534
10671
|
},
|
|
10535
|
-
"
|
|
10672
|
+
"__schema787": {
|
|
10536
10673
|
"markdownDescription": "Email address, used to identify the user.\n",
|
|
10537
10674
|
"allOf": [
|
|
10538
10675
|
{
|
|
10539
|
-
"$ref": "#/definitions/
|
|
10676
|
+
"$ref": "#/definitions/__schema788"
|
|
10540
10677
|
}
|
|
10541
10678
|
]
|
|
10542
10679
|
},
|
|
10543
|
-
"
|
|
10680
|
+
"__schema788": {
|
|
10544
10681
|
"type": "string"
|
|
10545
10682
|
},
|
|
10546
|
-
"
|
|
10683
|
+
"__schema789": {
|
|
10547
10684
|
"type": "object",
|
|
10548
10685
|
"properties": {
|
|
10549
10686
|
"sendThrough": {
|
|
10550
|
-
"$ref": "#/definitions/
|
|
10687
|
+
"$ref": "#/definitions/__schema695"
|
|
10551
10688
|
},
|
|
10552
10689
|
"tag": {
|
|
10553
|
-
"$ref": "#/definitions/
|
|
10690
|
+
"$ref": "#/definitions/__schema697"
|
|
10554
10691
|
},
|
|
10555
10692
|
"streamSettings": {
|
|
10556
|
-
"$ref": "#/definitions/
|
|
10693
|
+
"$ref": "#/definitions/__schema699"
|
|
10557
10694
|
},
|
|
10558
10695
|
"targetStrategy": {
|
|
10559
|
-
"$ref": "#/definitions/
|
|
10696
|
+
"$ref": "#/definitions/__schema700"
|
|
10560
10697
|
},
|
|
10561
10698
|
"proxySettings": {
|
|
10562
|
-
"$ref": "#/definitions/
|
|
10699
|
+
"$ref": "#/definitions/__schema702"
|
|
10563
10700
|
},
|
|
10564
10701
|
"mux": {
|
|
10565
|
-
"$ref": "#/definitions/
|
|
10702
|
+
"$ref": "#/definitions/__schema705"
|
|
10566
10703
|
},
|
|
10567
10704
|
"protocol": {
|
|
10568
|
-
"$ref": "#/definitions/
|
|
10705
|
+
"$ref": "#/definitions/__schema790"
|
|
10569
10706
|
},
|
|
10570
10707
|
"settings": {
|
|
10571
|
-
"$ref": "#/definitions/
|
|
10708
|
+
"$ref": "#/definitions/__schema791"
|
|
10572
10709
|
}
|
|
10573
10710
|
},
|
|
10574
10711
|
"required": [
|
|
@@ -10578,22 +10715,22 @@
|
|
|
10578
10715
|
"additionalProperties": false,
|
|
10579
10716
|
"markdownDescription": "[Trojan](https://trojan-gfw.github.io/trojan/protocol) protocol.\n\n### DANGER\n\nTrojan is designed to work over a correctly configured encrypted TLS tunnel.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/trojan.html)\n"
|
|
10580
10717
|
},
|
|
10581
|
-
"
|
|
10718
|
+
"__schema790": {
|
|
10582
10719
|
"type": "string",
|
|
10583
10720
|
"const": "trojan"
|
|
10584
10721
|
},
|
|
10585
|
-
"
|
|
10722
|
+
"__schema791": {
|
|
10586
10723
|
"anyOf": [
|
|
10587
10724
|
{
|
|
10588
|
-
"$ref": "#/definitions/
|
|
10725
|
+
"$ref": "#/definitions/__schema792"
|
|
10589
10726
|
},
|
|
10590
10727
|
{
|
|
10591
|
-
"$ref": "#/definitions/
|
|
10728
|
+
"$ref": "#/definitions/__schema795"
|
|
10592
10729
|
}
|
|
10593
10730
|
],
|
|
10594
10731
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10595
10732
|
},
|
|
10596
|
-
"
|
|
10733
|
+
"__schema792": {
|
|
10597
10734
|
"type": "object",
|
|
10598
10735
|
"properties": {
|
|
10599
10736
|
"address": {
|
|
@@ -10612,7 +10749,7 @@
|
|
|
10612
10749
|
"markdownDescription": "Email address. Optional, used to identify the user.\n",
|
|
10613
10750
|
"allOf": [
|
|
10614
10751
|
{
|
|
10615
|
-
"$ref": "#/definitions/
|
|
10752
|
+
"$ref": "#/definitions/__schema793"
|
|
10616
10753
|
}
|
|
10617
10754
|
]
|
|
10618
10755
|
},
|
|
@@ -10624,7 +10761,7 @@
|
|
|
10624
10761
|
"markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
|
|
10625
10762
|
"allOf": [
|
|
10626
10763
|
{
|
|
10627
|
-
"$ref": "#/definitions/
|
|
10764
|
+
"$ref": "#/definitions/__schema794"
|
|
10628
10765
|
}
|
|
10629
10766
|
]
|
|
10630
10767
|
}
|
|
@@ -10635,22 +10772,22 @@
|
|
|
10635
10772
|
],
|
|
10636
10773
|
"additionalProperties": false
|
|
10637
10774
|
},
|
|
10638
|
-
"
|
|
10775
|
+
"__schema793": {
|
|
10639
10776
|
"type": "string"
|
|
10640
10777
|
},
|
|
10641
|
-
"
|
|
10778
|
+
"__schema794": {
|
|
10642
10779
|
"default": 0,
|
|
10643
10780
|
"type": "integer",
|
|
10644
10781
|
"minimum": -9007199254740991,
|
|
10645
10782
|
"maximum": 9007199254740991
|
|
10646
10783
|
},
|
|
10647
|
-
"
|
|
10784
|
+
"__schema795": {
|
|
10648
10785
|
"type": "object",
|
|
10649
10786
|
"properties": {
|
|
10650
10787
|
"servers": {
|
|
10651
10788
|
"type": "array",
|
|
10652
10789
|
"items": {
|
|
10653
|
-
"$ref": "#/definitions/
|
|
10790
|
+
"$ref": "#/definitions/__schema792"
|
|
10654
10791
|
},
|
|
10655
10792
|
"markdownDescription": "An array of Trojan server configurations.\n"
|
|
10656
10793
|
}
|
|
@@ -10660,32 +10797,32 @@
|
|
|
10660
10797
|
],
|
|
10661
10798
|
"additionalProperties": false
|
|
10662
10799
|
},
|
|
10663
|
-
"
|
|
10800
|
+
"__schema796": {
|
|
10664
10801
|
"type": "object",
|
|
10665
10802
|
"properties": {
|
|
10666
10803
|
"sendThrough": {
|
|
10667
|
-
"$ref": "#/definitions/
|
|
10804
|
+
"$ref": "#/definitions/__schema695"
|
|
10668
10805
|
},
|
|
10669
10806
|
"tag": {
|
|
10670
|
-
"$ref": "#/definitions/
|
|
10807
|
+
"$ref": "#/definitions/__schema697"
|
|
10671
10808
|
},
|
|
10672
10809
|
"streamSettings": {
|
|
10673
|
-
"$ref": "#/definitions/
|
|
10810
|
+
"$ref": "#/definitions/__schema699"
|
|
10674
10811
|
},
|
|
10675
10812
|
"targetStrategy": {
|
|
10676
|
-
"$ref": "#/definitions/
|
|
10813
|
+
"$ref": "#/definitions/__schema700"
|
|
10677
10814
|
},
|
|
10678
10815
|
"proxySettings": {
|
|
10679
|
-
"$ref": "#/definitions/
|
|
10816
|
+
"$ref": "#/definitions/__schema702"
|
|
10680
10817
|
},
|
|
10681
10818
|
"mux": {
|
|
10682
|
-
"$ref": "#/definitions/
|
|
10819
|
+
"$ref": "#/definitions/__schema705"
|
|
10683
10820
|
},
|
|
10684
10821
|
"protocol": {
|
|
10685
|
-
"$ref": "#/definitions/
|
|
10822
|
+
"$ref": "#/definitions/__schema797"
|
|
10686
10823
|
},
|
|
10687
10824
|
"settings": {
|
|
10688
|
-
"$ref": "#/definitions/
|
|
10825
|
+
"$ref": "#/definitions/__schema798"
|
|
10689
10826
|
}
|
|
10690
10827
|
},
|
|
10691
10828
|
"required": [
|
|
@@ -10695,33 +10832,33 @@
|
|
|
10695
10832
|
"additionalProperties": false,
|
|
10696
10833
|
"markdownDescription": "VLESS is a stateless lightweight transport protocol. It consists of inbound and outbound parts and can serve as a bridge between the Xray client and server.\n\nUnlike [VMess](https://xtls.github.io/en/config/outbounds/vmess.html), VLESS does not depend on system time. The authentication method is also UUID.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/vless.html)\n"
|
|
10697
10834
|
},
|
|
10698
|
-
"
|
|
10835
|
+
"__schema797": {
|
|
10699
10836
|
"type": "string",
|
|
10700
10837
|
"const": "vless"
|
|
10701
10838
|
},
|
|
10702
|
-
"
|
|
10839
|
+
"__schema798": {
|
|
10703
10840
|
"type": "object",
|
|
10704
10841
|
"properties": {
|
|
10705
10842
|
"address": {
|
|
10706
|
-
"$ref": "#/definitions/
|
|
10843
|
+
"$ref": "#/definitions/__schema799"
|
|
10707
10844
|
},
|
|
10708
10845
|
"port": {
|
|
10709
|
-
"$ref": "#/definitions/
|
|
10846
|
+
"$ref": "#/definitions/__schema800"
|
|
10710
10847
|
},
|
|
10711
10848
|
"id": {
|
|
10712
|
-
"$ref": "#/definitions/
|
|
10849
|
+
"$ref": "#/definitions/__schema801"
|
|
10713
10850
|
},
|
|
10714
10851
|
"encryption": {
|
|
10715
|
-
"$ref": "#/definitions/
|
|
10852
|
+
"$ref": "#/definitions/__schema802"
|
|
10716
10853
|
},
|
|
10717
10854
|
"flow": {
|
|
10718
|
-
"$ref": "#/definitions/
|
|
10855
|
+
"$ref": "#/definitions/__schema804"
|
|
10719
10856
|
},
|
|
10720
10857
|
"level": {
|
|
10721
|
-
"$ref": "#/definitions/
|
|
10858
|
+
"$ref": "#/definitions/__schema806"
|
|
10722
10859
|
},
|
|
10723
10860
|
"reverse": {
|
|
10724
|
-
"$ref": "#/definitions/
|
|
10861
|
+
"$ref": "#/definitions/__schema808"
|
|
10725
10862
|
}
|
|
10726
10863
|
},
|
|
10727
10864
|
"required": [
|
|
@@ -10733,11 +10870,11 @@
|
|
|
10733
10870
|
"additionalProperties": false,
|
|
10734
10871
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10735
10872
|
},
|
|
10736
|
-
"
|
|
10873
|
+
"__schema799": {
|
|
10737
10874
|
"type": "string",
|
|
10738
10875
|
"markdownDescription": "Server address, points to the server. Supports domain names, IPv4, and IPv6.\n"
|
|
10739
10876
|
},
|
|
10740
|
-
"
|
|
10877
|
+
"__schema800": {
|
|
10741
10878
|
"markdownDescription": "Server port, usually the same as the port the server is listening on.\n",
|
|
10742
10879
|
"allOf": [
|
|
10743
10880
|
{
|
|
@@ -10745,31 +10882,31 @@
|
|
|
10745
10882
|
}
|
|
10746
10883
|
]
|
|
10747
10884
|
},
|
|
10748
|
-
"
|
|
10885
|
+
"__schema801": {
|
|
10749
10886
|
"type": "string",
|
|
10750
10887
|
"markdownDescription": "User ID for VLESS. It can be any string less than 30 bytes, or a valid UUID. A custom string and its mapped UUID are equivalent.\n\nThe mapping standard is described in [VLESS UUID Mapping Standard: Mapping Custom Strings to UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nYou can use the command `xray uuid -i \"custom string\"` to generate the UUID mapped from a custom string, or use the command `xray uuid` to generate a random UUID.\n"
|
|
10751
10888
|
},
|
|
10752
|
-
"
|
|
10889
|
+
"__schema802": {
|
|
10753
10890
|
"default": "none",
|
|
10754
10891
|
"markdownDescription": "[VLESS Encryption](https://github.com/XTLS/Xray-core/pull/5067) settings. Cannot be left empty; to disable, explicitly set to `\"none\"`.\n\nIt is recommended for most users to use the `xray vlessenc` command to automatically generate this field to avoid configuration mistakes. The detailed configuration below is recommended only for advanced users.\n\nIts format is a detailed configuration string of fields connected by `.`. For example: `mlkem768x25519plus.native.0rtt.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`. This document will refer to the separate parts separated by dots as \"blocks\".\n\n- **The 1st block** is the handshake method. Currently, there is only `mlkem768x25519plus`. Requires consistency between server and client.\n- **The 2nd block** is the encryption method. Options are `native`/`xorpub`/`random`, corresponding to: raw format packet / raw format + obfuscated public key part / fully random numbers (similar to VMESS/Shadowsocks). Requires consistency between server and client.\n- **The 3rd block** is session resumption. Choosing `0rtt` will follow the server settings to attempt to use previously generated tickets to skip the handshake for fast connection (can be manually disabled by the server). Choosing `1rtt` will force a 1-RTT handshake process. The meaning here differs from the server setting; see VLESS Inbound `decryption` settings for details.\n\nFollowing blocks are **padding**. After the connection is established, the client sends some garbage data to obfuscate length characteristics. It does not need to be the same as the server (the corresponding part in the inbound is the padding sent from the server to the client). It is a variable-length part with the format `padding.delay.padding` + `(.delay.padding)` x n (multiple padding blocks can be inserted, requiring a delay block between two padding blocks).\n\n- `padding` format is `probability-min-max`. E.g., `100-111-1111` means 100% probability to send a padding of length 111~1111.\n- `delay` format is also `probability-min-max`. E.g., `75-0-111` means 75% probability to wait 0~111 milliseconds.\n\nThe first padding block has special requirements: probability must be 100% and minimum length greater than 0. If no padding exists, the core automatically uses `100-111-1111.75-0-111.50-0-3333` as the padding setting.\n\n**The last block** will be recognized by the core as the parameter used to authenticate the server. It can be generated by `./xray x25519` (using the Password part) or `./xray mlkem768` (using the Client part). It must correspond to the server. `mlkem768` belongs to post-quantum algorithms, preventing (future) client parameter leaks from allowing quantum computers to crack the private key and impersonate the server. This parameter is only used for verification; the handshake process is post-quantum secure regardless, and existing encrypted data cannot be decrypted by future quantum computers.\n",
|
|
10755
10892
|
"allOf": [
|
|
10756
10893
|
{
|
|
10757
|
-
"$ref": "#/definitions/
|
|
10894
|
+
"$ref": "#/definitions/__schema803"
|
|
10758
10895
|
}
|
|
10759
10896
|
]
|
|
10760
10897
|
},
|
|
10761
|
-
"
|
|
10898
|
+
"__schema803": {
|
|
10762
10899
|
"type": "string"
|
|
10763
10900
|
},
|
|
10764
|
-
"
|
|
10901
|
+
"__schema804": {
|
|
10765
10902
|
"markdownDescription": "Flow control mode, used to select the XTLS algorithm.\n\nCurrently, the following flow control modes are available in the outbound protocol:\n\n- **No `flow` or empty string**: Use standard TLS proxy.\n- **`xtls-rprx-vision`**: Use XTLS, including inner handshake random padding. Will intercept UDP traffic targeting port 443 (QUIC) to force browsers to use standard HTTPS, increasing traffic that can be Spliced.\n- **`xtls-rprx-vision-udp443`**: Same as `xtls-rprx-vision`, but does not intercept UDP 443. Used when a program forces the use of QUIC and would fail to work if intercepted.\n\nXTLS is available only in the following combinations:\n\n- **TCP+TLS/REALITY**: In this case, if transmitting TLS 1.3, the core will attempt to Splice encrypted data at the bottom layer. If successful, it saves all core IO overhead.\n- **VLESS Encryption**: No underlying transport restrictions. If the underlying transport is not TCP, it only attempts to penetrate Encryption, saving Encryption overhead. If it is TCP, it will still attempt to perform Splice.\n\n### TIP\n\nSplice is a function provided by the Linux Kernel. The system kernel forwards TCP directly, no longer passing through Xray's memory, greatly reducing data copying and CPU context switching.\n\nWhen using Vision mode, Splice is automatically enabled if the following conditions are met:\n\n- Linux environment.\n- Inbound protocol is a pure TCP connection like `Dokodemo door`, `Socks`, `HTTP`, or other inbound protocols using XTLS.\n- Outbound protocol is VLESS + XTLS.\n\nWhen using Splice, the network speed display will lag and will only be counted after the connection is disconnected because the core cannot know the traffic situation while the kernel takes over the connection.\n",
|
|
10766
10903
|
"allOf": [
|
|
10767
10904
|
{
|
|
10768
|
-
"$ref": "#/definitions/
|
|
10905
|
+
"$ref": "#/definitions/__schema805"
|
|
10769
10906
|
}
|
|
10770
10907
|
]
|
|
10771
10908
|
},
|
|
10772
|
-
"
|
|
10909
|
+
"__schema805": {
|
|
10773
10910
|
"type": "string",
|
|
10774
10911
|
"enum": [
|
|
10775
10912
|
"",
|
|
@@ -10777,29 +10914,29 @@
|
|
|
10777
10914
|
"xtls-rprx-vision-udp443"
|
|
10778
10915
|
]
|
|
10779
10916
|
},
|
|
10780
|
-
"
|
|
10917
|
+
"__schema806": {
|
|
10781
10918
|
"markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
|
|
10782
10919
|
"allOf": [
|
|
10783
10920
|
{
|
|
10784
|
-
"$ref": "#/definitions/
|
|
10921
|
+
"$ref": "#/definitions/__schema807"
|
|
10785
10922
|
}
|
|
10786
10923
|
]
|
|
10787
10924
|
},
|
|
10788
|
-
"
|
|
10925
|
+
"__schema807": {
|
|
10789
10926
|
"default": 0,
|
|
10790
10927
|
"type": "integer",
|
|
10791
10928
|
"minimum": -9007199254740991,
|
|
10792
10929
|
"maximum": 9007199254740991
|
|
10793
10930
|
},
|
|
10794
|
-
"
|
|
10931
|
+
"__schema808": {
|
|
10795
10932
|
"markdownDescription": "VLESS minimalist reverse proxy configuration. It preserves the real source IP information from the public-facing side.\n\nThe existence of this item indicates that this outbound can be used as a VLESS reverse proxy outbound, and it will automatically establish a connection to the server to register the reverse proxy tunnel.\n\n`tag` is the inbound proxy tag for this reverse proxy. When the server dispatches a reverse proxy request, it enters the routing system from the inbound using this tag, and the routing system routes it to the outbound you need.\n\nThe UUID used must be one that is also configured with `reverse` on the server side (see VLESS Inbound for details).\n\n`sniffing` see [SniffingObject](https://xtls.github.io/en/config/inbound.html#sniffingobject), performs sniffing on requests entering through this reverse proxy.\n\n### TIP\n\nFull tutorial: [VLESS Reverse Proxy Examples](https://xtls.github.io/en/document/level-2/vless_reverse.html)\n",
|
|
10796
10933
|
"allOf": [
|
|
10797
10934
|
{
|
|
10798
|
-
"$ref": "#/definitions/
|
|
10935
|
+
"$ref": "#/definitions/__schema809"
|
|
10799
10936
|
}
|
|
10800
10937
|
]
|
|
10801
10938
|
},
|
|
10802
|
-
"
|
|
10939
|
+
"__schema809": {
|
|
10803
10940
|
"type": "object",
|
|
10804
10941
|
"properties": {
|
|
10805
10942
|
"tag": {
|
|
@@ -10819,32 +10956,32 @@
|
|
|
10819
10956
|
],
|
|
10820
10957
|
"additionalProperties": false
|
|
10821
10958
|
},
|
|
10822
|
-
"
|
|
10959
|
+
"__schema810": {
|
|
10823
10960
|
"type": "object",
|
|
10824
10961
|
"properties": {
|
|
10825
10962
|
"sendThrough": {
|
|
10826
|
-
"$ref": "#/definitions/
|
|
10963
|
+
"$ref": "#/definitions/__schema695"
|
|
10827
10964
|
},
|
|
10828
10965
|
"tag": {
|
|
10829
|
-
"$ref": "#/definitions/
|
|
10966
|
+
"$ref": "#/definitions/__schema697"
|
|
10830
10967
|
},
|
|
10831
10968
|
"streamSettings": {
|
|
10832
|
-
"$ref": "#/definitions/
|
|
10969
|
+
"$ref": "#/definitions/__schema699"
|
|
10833
10970
|
},
|
|
10834
10971
|
"targetStrategy": {
|
|
10835
|
-
"$ref": "#/definitions/
|
|
10972
|
+
"$ref": "#/definitions/__schema700"
|
|
10836
10973
|
},
|
|
10837
10974
|
"proxySettings": {
|
|
10838
|
-
"$ref": "#/definitions/
|
|
10975
|
+
"$ref": "#/definitions/__schema702"
|
|
10839
10976
|
},
|
|
10840
10977
|
"mux": {
|
|
10841
|
-
"$ref": "#/definitions/
|
|
10978
|
+
"$ref": "#/definitions/__schema705"
|
|
10842
10979
|
},
|
|
10843
10980
|
"protocol": {
|
|
10844
|
-
"$ref": "#/definitions/
|
|
10981
|
+
"$ref": "#/definitions/__schema811"
|
|
10845
10982
|
},
|
|
10846
10983
|
"settings": {
|
|
10847
|
-
"$ref": "#/definitions/
|
|
10984
|
+
"$ref": "#/definitions/__schema812"
|
|
10848
10985
|
}
|
|
10849
10986
|
},
|
|
10850
10987
|
"required": [
|
|
@@ -10854,30 +10991,30 @@
|
|
|
10854
10991
|
"additionalProperties": false,
|
|
10855
10992
|
"markdownDescription": "[VMess](https://xtls.github.io/en/development/protocols/vmess.html) is an encrypted transport protocol, usually serving as a bridge between the Xray client and server.\n\n### DANGER\n\nVMess depends on system time. Please ensure that the UTC time of the system running Xray is within 120 seconds of the actual time, independent of the time zone. On Linux systems, you can install the `ntp` service to automatically synchronize the system time.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/vmess.html)\n"
|
|
10856
10993
|
},
|
|
10857
|
-
"
|
|
10994
|
+
"__schema811": {
|
|
10858
10995
|
"type": "string",
|
|
10859
10996
|
"const": "vmess"
|
|
10860
10997
|
},
|
|
10861
|
-
"
|
|
10998
|
+
"__schema812": {
|
|
10862
10999
|
"type": "object",
|
|
10863
11000
|
"properties": {
|
|
10864
11001
|
"address": {
|
|
10865
|
-
"$ref": "#/definitions/
|
|
11002
|
+
"$ref": "#/definitions/__schema813"
|
|
10866
11003
|
},
|
|
10867
11004
|
"port": {
|
|
10868
|
-
"$ref": "#/definitions/
|
|
11005
|
+
"$ref": "#/definitions/__schema814"
|
|
10869
11006
|
},
|
|
10870
11007
|
"id": {
|
|
10871
|
-
"$ref": "#/definitions/
|
|
11008
|
+
"$ref": "#/definitions/__schema815"
|
|
10872
11009
|
},
|
|
10873
11010
|
"security": {
|
|
10874
|
-
"$ref": "#/definitions/
|
|
11011
|
+
"$ref": "#/definitions/__schema816"
|
|
10875
11012
|
},
|
|
10876
11013
|
"level": {
|
|
10877
|
-
"$ref": "#/definitions/
|
|
11014
|
+
"$ref": "#/definitions/__schema818"
|
|
10878
11015
|
},
|
|
10879
11016
|
"experiments": {
|
|
10880
|
-
"$ref": "#/definitions/
|
|
11017
|
+
"$ref": "#/definitions/__schema820"
|
|
10881
11018
|
}
|
|
10882
11019
|
},
|
|
10883
11020
|
"required": [
|
|
@@ -10888,11 +11025,11 @@
|
|
|
10888
11025
|
"additionalProperties": false,
|
|
10889
11026
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
10890
11027
|
},
|
|
10891
|
-
"
|
|
11028
|
+
"__schema813": {
|
|
10892
11029
|
"type": "string",
|
|
10893
11030
|
"markdownDescription": "Server address, supports IP address or domain name.\n"
|
|
10894
11031
|
},
|
|
10895
|
-
"
|
|
11032
|
+
"__schema814": {
|
|
10896
11033
|
"markdownDescription": "The port number the server is listening on. Required.\n",
|
|
10897
11034
|
"allOf": [
|
|
10898
11035
|
{
|
|
@@ -10900,19 +11037,19 @@
|
|
|
10900
11037
|
}
|
|
10901
11038
|
]
|
|
10902
11039
|
},
|
|
10903
|
-
"
|
|
11040
|
+
"__schema815": {
|
|
10904
11041
|
"type": "string",
|
|
10905
11042
|
"markdownDescription": "VMess User ID. It can be any string less than 30 bytes or a valid UUID.\n\nA custom string and its mapped UUID are equivalent. This means you can identify the same user in the configuration file like this:\n\n- Write `\"id\": \"我爱🍉老师1314\"`,\n- Or write `\"id\": \"5783a3e7-e373-51cd-8642-c83782b807c5\"` (This UUID is the UUID mapping of `我爱🍉老师1314`)\n\nThe mapping standard is described in [VLESS UUID Mapping Standard: Mapping Custom Strings to a UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nYou can use the command `xray uuid -i \"custom string\"` to generate the UUID mapped from the custom string. You can also use the command `xray uuid` to generate a random UUID.\n"
|
|
10906
11043
|
},
|
|
10907
|
-
"
|
|
11044
|
+
"__schema816": {
|
|
10908
11045
|
"markdownDescription": "Encryption method. The client will use the configured encryption method to send data, and the server will automatically identify it without configuration.\n\n- `\"aes-128-gcm\"`: Use AES-128-GCM algorithm.\n- `\"chacha20-poly1305\"`: Use Chacha20-Poly1305 algorithm.\n- `\"auto\"`: Default value. Automatically selected (uses aes-128-gcm encryption when the running framework is AMD64, ARM64, or s390x; uses Chacha20-Poly1305 encryption in other cases).\n- `\"none\"`: No encryption, maintains the VMess message structure.\n- `\"zero\"`: No encryption, direct stream copy (similar to VLESS).\n\nIt is not recommended to use `\"none\"` or `\"zero\"` pseudo-encryption methods without enabling TLS encryption and enforcing certificate verification. Regardless of the encryption method used, the VMess packet header is protected by encryption and authentication.\n\nNote: `\"auto\"` only determines the AES hardware acceleration support status of the _client_. If the _server_ does not support AES hardware acceleration, you still need to manually set it to `chacha20-poly1305`. This is very important because Chacha20-Poly1305 takes about 48% more time than AES-128-GCM on platforms supporting AES acceleration, but on platforms _without_ AES acceleration, AES-128-GCM takes over 2000% more time than Chacha20-Poly1305.\n",
|
|
10909
11046
|
"allOf": [
|
|
10910
11047
|
{
|
|
10911
|
-
"$ref": "#/definitions/
|
|
11048
|
+
"$ref": "#/definitions/__schema817"
|
|
10912
11049
|
}
|
|
10913
11050
|
]
|
|
10914
11051
|
},
|
|
10915
|
-
"
|
|
11052
|
+
"__schema817": {
|
|
10916
11053
|
"type": "string",
|
|
10917
11054
|
"enum": [
|
|
10918
11055
|
"aes-128-gcm",
|
|
@@ -10922,29 +11059,29 @@
|
|
|
10922
11059
|
"zero"
|
|
10923
11060
|
]
|
|
10924
11061
|
},
|
|
10925
|
-
"
|
|
11062
|
+
"__schema818": {
|
|
10926
11063
|
"markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
|
|
10927
11064
|
"allOf": [
|
|
10928
11065
|
{
|
|
10929
|
-
"$ref": "#/definitions/
|
|
11066
|
+
"$ref": "#/definitions/__schema819"
|
|
10930
11067
|
}
|
|
10931
11068
|
]
|
|
10932
11069
|
},
|
|
10933
|
-
"
|
|
11070
|
+
"__schema819": {
|
|
10934
11071
|
"default": 0,
|
|
10935
11072
|
"type": "integer",
|
|
10936
11073
|
"minimum": -9007199254740991,
|
|
10937
11074
|
"maximum": 9007199254740991
|
|
10938
11075
|
},
|
|
10939
|
-
"
|
|
11076
|
+
"__schema820": {
|
|
10940
11077
|
"markdownDescription": "Enabled VMess protocol experimental features. (Features here are unstable and may be removed at any time). Multiple enabled experiments can be separated by the `|` character, such as `\"AuthenticatedLength|NoTerminationSignal\"`.\n\n- `\"AuthenticatedLength\"`: Enable authenticated packet length experiment. This experiment requires both the client and server to enable it simultaneously and run the same version of the program.\n- `\"NoTerminationSignal\"`: Enable not sending the disconnection signal. This feature is now enabled by default.\n",
|
|
10941
11078
|
"allOf": [
|
|
10942
11079
|
{
|
|
10943
|
-
"$ref": "#/definitions/
|
|
11080
|
+
"$ref": "#/definitions/__schema821"
|
|
10944
11081
|
}
|
|
10945
11082
|
]
|
|
10946
11083
|
},
|
|
10947
|
-
"
|
|
11084
|
+
"__schema821": {
|
|
10948
11085
|
"type": "string",
|
|
10949
11086
|
"enum": [
|
|
10950
11087
|
"AuthenticatedLength",
|
|
@@ -10952,32 +11089,32 @@
|
|
|
10952
11089
|
"AuthenticatedLength|NoTerminationSignal"
|
|
10953
11090
|
]
|
|
10954
11091
|
},
|
|
10955
|
-
"
|
|
11092
|
+
"__schema822": {
|
|
10956
11093
|
"type": "object",
|
|
10957
11094
|
"properties": {
|
|
10958
11095
|
"sendThrough": {
|
|
10959
|
-
"$ref": "#/definitions/
|
|
11096
|
+
"$ref": "#/definitions/__schema695"
|
|
10960
11097
|
},
|
|
10961
11098
|
"tag": {
|
|
10962
|
-
"$ref": "#/definitions/
|
|
11099
|
+
"$ref": "#/definitions/__schema697"
|
|
10963
11100
|
},
|
|
10964
11101
|
"streamSettings": {
|
|
10965
|
-
"$ref": "#/definitions/
|
|
11102
|
+
"$ref": "#/definitions/__schema699"
|
|
10966
11103
|
},
|
|
10967
11104
|
"targetStrategy": {
|
|
10968
|
-
"$ref": "#/definitions/
|
|
11105
|
+
"$ref": "#/definitions/__schema700"
|
|
10969
11106
|
},
|
|
10970
11107
|
"proxySettings": {
|
|
10971
|
-
"$ref": "#/definitions/
|
|
11108
|
+
"$ref": "#/definitions/__schema702"
|
|
10972
11109
|
},
|
|
10973
11110
|
"mux": {
|
|
10974
|
-
"$ref": "#/definitions/
|
|
11111
|
+
"$ref": "#/definitions/__schema705"
|
|
10975
11112
|
},
|
|
10976
11113
|
"protocol": {
|
|
10977
|
-
"$ref": "#/definitions/
|
|
11114
|
+
"$ref": "#/definitions/__schema823"
|
|
10978
11115
|
},
|
|
10979
11116
|
"settings": {
|
|
10980
|
-
"$ref": "#/definitions/
|
|
11117
|
+
"$ref": "#/definitions/__schema824"
|
|
10981
11118
|
}
|
|
10982
11119
|
},
|
|
10983
11120
|
"required": [
|
|
@@ -10987,36 +11124,36 @@
|
|
|
10987
11124
|
"additionalProperties": false,
|
|
10988
11125
|
"markdownDescription": "Standard Wireguard protocol implementation.\n\n### DANGER\n\n**The Wireguard protocol is not designed specifically for bypassing firewalls. If used at the outermost layer to cross the Great Firewall, distinctive characteristics may lead to the server being blocked.**\n\n### TIP\n\nCurrently, configuring `streamSettings` is not supported in the Wireguard protocol outbound.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/wireguard.html)\n"
|
|
10989
11126
|
},
|
|
10990
|
-
"
|
|
11127
|
+
"__schema823": {
|
|
10991
11128
|
"type": "string",
|
|
10992
11129
|
"const": "wireguard"
|
|
10993
11130
|
},
|
|
10994
|
-
"
|
|
11131
|
+
"__schema824": {
|
|
10995
11132
|
"type": "object",
|
|
10996
11133
|
"properties": {
|
|
10997
11134
|
"secretKey": {
|
|
10998
|
-
"$ref": "#/definitions/
|
|
11135
|
+
"$ref": "#/definitions/__schema825"
|
|
10999
11136
|
},
|
|
11000
11137
|
"address": {
|
|
11001
|
-
"$ref": "#/definitions/
|
|
11138
|
+
"$ref": "#/definitions/__schema826"
|
|
11002
11139
|
},
|
|
11003
11140
|
"peers": {
|
|
11004
|
-
"$ref": "#/definitions/
|
|
11141
|
+
"$ref": "#/definitions/__schema828"
|
|
11005
11142
|
},
|
|
11006
11143
|
"noKernelTun": {
|
|
11007
|
-
"$ref": "#/definitions/
|
|
11144
|
+
"$ref": "#/definitions/__schema833"
|
|
11008
11145
|
},
|
|
11009
11146
|
"mtu": {
|
|
11010
|
-
"$ref": "#/definitions/
|
|
11147
|
+
"$ref": "#/definitions/__schema835"
|
|
11011
11148
|
},
|
|
11012
11149
|
"reserved": {
|
|
11013
|
-
"$ref": "#/definitions/
|
|
11150
|
+
"$ref": "#/definitions/__schema837"
|
|
11014
11151
|
},
|
|
11015
11152
|
"workers": {
|
|
11016
|
-
"$ref": "#/definitions/
|
|
11153
|
+
"$ref": "#/definitions/__schema839"
|
|
11017
11154
|
},
|
|
11018
11155
|
"domainStrategy": {
|
|
11019
|
-
"$ref": "#/definitions/
|
|
11156
|
+
"$ref": "#/definitions/__schema841"
|
|
11020
11157
|
}
|
|
11021
11158
|
},
|
|
11022
11159
|
"required": [
|
|
@@ -11028,30 +11165,30 @@
|
|
|
11028
11165
|
"additionalProperties": false,
|
|
11029
11166
|
"markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
|
|
11030
11167
|
},
|
|
11031
|
-
"
|
|
11168
|
+
"__schema825": {
|
|
11032
11169
|
"type": "string",
|
|
11033
11170
|
"markdownDescription": "User private key. Required.\n"
|
|
11034
11171
|
},
|
|
11035
|
-
"
|
|
11172
|
+
"__schema826": {
|
|
11036
11173
|
"minItems": 1,
|
|
11037
11174
|
"type": "array",
|
|
11038
11175
|
"items": {
|
|
11039
|
-
"$ref": "#/definitions/
|
|
11176
|
+
"$ref": "#/definitions/__schema827"
|
|
11040
11177
|
},
|
|
11041
11178
|
"markdownDescription": "Wireguard will start a virtual network interface (tun) locally. Use one or more IP addresses; IPv6 is supported.\n"
|
|
11042
11179
|
},
|
|
11043
|
-
"
|
|
11180
|
+
"__schema827": {
|
|
11044
11181
|
"type": "string"
|
|
11045
11182
|
},
|
|
11046
|
-
"
|
|
11183
|
+
"__schema828": {
|
|
11047
11184
|
"minItems": 1,
|
|
11048
11185
|
"type": "array",
|
|
11049
11186
|
"items": {
|
|
11050
|
-
"$ref": "#/definitions/
|
|
11187
|
+
"$ref": "#/definitions/__schema829"
|
|
11051
11188
|
},
|
|
11052
11189
|
"markdownDescription": "List of Wireguard servers, where each item is a server configuration.\n"
|
|
11053
11190
|
},
|
|
11054
|
-
"
|
|
11191
|
+
"__schema829": {
|
|
11055
11192
|
"type": "object",
|
|
11056
11193
|
"properties": {
|
|
11057
11194
|
"endpoint": {
|
|
@@ -11066,7 +11203,7 @@
|
|
|
11066
11203
|
"markdownDescription": "Additional symmetric encryption key.\n",
|
|
11067
11204
|
"allOf": [
|
|
11068
11205
|
{
|
|
11069
|
-
"$ref": "#/definitions/
|
|
11206
|
+
"$ref": "#/definitions/__schema830"
|
|
11070
11207
|
}
|
|
11071
11208
|
]
|
|
11072
11209
|
},
|
|
@@ -11074,7 +11211,7 @@
|
|
|
11074
11211
|
"markdownDescription": "Heartbeat interval in seconds. Default is 0, meaning no heartbeat.\n",
|
|
11075
11212
|
"allOf": [
|
|
11076
11213
|
{
|
|
11077
|
-
"$ref": "#/definitions/
|
|
11214
|
+
"$ref": "#/definitions/__schema831"
|
|
11078
11215
|
}
|
|
11079
11216
|
]
|
|
11080
11217
|
},
|
|
@@ -11082,7 +11219,7 @@
|
|
|
11082
11219
|
"markdownDescription": "Wireguard only allows traffic from specific source IPs.\n",
|
|
11083
11220
|
"allOf": [
|
|
11084
11221
|
{
|
|
11085
|
-
"$ref": "#/definitions/
|
|
11222
|
+
"$ref": "#/definitions/__schema832"
|
|
11086
11223
|
}
|
|
11087
11224
|
]
|
|
11088
11225
|
}
|
|
@@ -11093,16 +11230,16 @@
|
|
|
11093
11230
|
],
|
|
11094
11231
|
"additionalProperties": false
|
|
11095
11232
|
},
|
|
11096
|
-
"
|
|
11233
|
+
"__schema830": {
|
|
11097
11234
|
"type": "string"
|
|
11098
11235
|
},
|
|
11099
|
-
"
|
|
11236
|
+
"__schema831": {
|
|
11100
11237
|
"default": 0,
|
|
11101
11238
|
"type": "integer",
|
|
11102
11239
|
"minimum": -9007199254740991,
|
|
11103
11240
|
"maximum": 9007199254740991
|
|
11104
11241
|
},
|
|
11105
|
-
"
|
|
11242
|
+
"__schema832": {
|
|
11106
11243
|
"default": [
|
|
11107
11244
|
"0.0.0.0/0",
|
|
11108
11245
|
"::/0"
|
|
@@ -11112,41 +11249,41 @@
|
|
|
11112
11249
|
"type": "string"
|
|
11113
11250
|
}
|
|
11114
11251
|
},
|
|
11115
|
-
"
|
|
11252
|
+
"__schema833": {
|
|
11116
11253
|
"markdownDescription": "By default, the core detects if it is running on Linux and if the current user has `CAP_NET_ADMIN` permissions to decide whether to enable the system virtual network interface; otherwise, it uses gVisor. Using the system virtual interface offers relatively higher performance. Note that this is only for processing IP packets and has nothing to do with the wireguard kernel module.\n\nThis detection may not always be accurate. For example, some LXC virtualization environments may not have TUN permissions at all, causing the outbound to fail. Therefore, you can set this option to manually disable it.\n\nWhen using the system virtual interface, it occupies IPv6 routing table number `10230`. Each additional Wireguard outbound will use subsequent routing tables sequentially; for example, the second one will use routing table `10231`, and so on.\n\nNote that if a second Xray instance is started on the same machine, it will not assign the next routing table number but will continue trying to use routing table `10230`. Since it is already occupied by the first Xray instance, it will fail to connect. If absolutely needed, you must set this option to disable the system virtual interface.\n",
|
|
11117
11254
|
"allOf": [
|
|
11118
11255
|
{
|
|
11119
|
-
"$ref": "#/definitions/
|
|
11256
|
+
"$ref": "#/definitions/__schema834"
|
|
11120
11257
|
}
|
|
11121
11258
|
]
|
|
11122
11259
|
},
|
|
11123
|
-
"
|
|
11260
|
+
"__schema834": {
|
|
11124
11261
|
"default": false,
|
|
11125
11262
|
"type": "boolean"
|
|
11126
11263
|
},
|
|
11127
|
-
"
|
|
11264
|
+
"__schema835": {
|
|
11128
11265
|
"default": 1420,
|
|
11129
11266
|
"markdownDescription": "MTU size of the underlying Wireguard tun.\n\nThe structure of a Wireguard packet is as follows:\n\n- 20-byte IPv4 header or 40 byte IPv6 header\n- 8-byte UDP header\n- 4-byte type\n- 4-byte key index\n- 8-byte nonce\n- N-byte encrypted data\n- 16-byte authentication tag\n\n`N-byte encrypted data` is the MTU value we need. Depending on whether the endpoint is IPv4 or IPv6, the specific value can be 1440 (IPv4) or 1420 (IPv6). If in a special environment, subtract further (e.g., home broadband PPPoE requires an extra -8).\n",
|
|
11130
11267
|
"allOf": [
|
|
11131
11268
|
{
|
|
11132
|
-
"$ref": "#/definitions/
|
|
11269
|
+
"$ref": "#/definitions/__schema836"
|
|
11133
11270
|
}
|
|
11134
11271
|
]
|
|
11135
11272
|
},
|
|
11136
|
-
"
|
|
11273
|
+
"__schema836": {
|
|
11137
11274
|
"type": "integer",
|
|
11138
11275
|
"minimum": -9007199254740991,
|
|
11139
11276
|
"maximum": 9007199254740991
|
|
11140
11277
|
},
|
|
11141
|
-
"
|
|
11278
|
+
"__schema837": {
|
|
11142
11279
|
"markdownDescription": "Wireguard reserved bytes, fill as needed.\n",
|
|
11143
11280
|
"allOf": [
|
|
11144
11281
|
{
|
|
11145
|
-
"$ref": "#/definitions/
|
|
11282
|
+
"$ref": "#/definitions/__schema838"
|
|
11146
11283
|
}
|
|
11147
11284
|
]
|
|
11148
11285
|
},
|
|
11149
|
-
"
|
|
11286
|
+
"__schema838": {
|
|
11150
11287
|
"default": [],
|
|
11151
11288
|
"type": "array",
|
|
11152
11289
|
"items": {
|
|
@@ -11155,28 +11292,28 @@
|
|
|
11155
11292
|
"maximum": 9007199254740991
|
|
11156
11293
|
}
|
|
11157
11294
|
},
|
|
11158
|
-
"
|
|
11295
|
+
"__schema839": {
|
|
11159
11296
|
"markdownDescription": "Number of threads used by Wireguard. Defaults to the number of system cores.\n",
|
|
11160
11297
|
"allOf": [
|
|
11161
11298
|
{
|
|
11162
|
-
"$ref": "#/definitions/
|
|
11299
|
+
"$ref": "#/definitions/__schema840"
|
|
11163
11300
|
}
|
|
11164
11301
|
]
|
|
11165
11302
|
},
|
|
11166
|
-
"
|
|
11303
|
+
"__schema840": {
|
|
11167
11304
|
"type": "integer",
|
|
11168
11305
|
"minimum": -9007199254740991,
|
|
11169
11306
|
"maximum": 9007199254740991
|
|
11170
11307
|
},
|
|
11171
|
-
"
|
|
11308
|
+
"__schema841": {
|
|
11172
11309
|
"markdownDescription": "Controls the domain resolution strategy when the Wireguard server address is a domain name or the target address of the proxied traffic is a domain name.\n\nUnlike most proxy protocols, Wireguard does not allow passing domain names as targets. Therefore, if the incoming target is a domain, it needs to be resolved to an IP address before transmission. This is handled by Xray's built-in DNS. The meaning of this field is the same as `domainStrategy` in `Freedom` outbound. The default value is `ForceIP`.\n\nThe `domainStrategy` of `Freedom` outbound includes options like `UseIP`, which are not provided here because Wireguard must obtain a usable IP and cannot perform the behavior of falling back to a domain name after `UseIP` resolution fails.\n\nNote: When applied to proxied traffic, this option is also constrained by the `address` option. For example, if you set `ForceIPv6v4` but no IPv6 address is set in `address`, even if the target domain has AAAA records, they will not be resolved/used.\n",
|
|
11173
11310
|
"allOf": [
|
|
11174
11311
|
{
|
|
11175
|
-
"$ref": "#/definitions/
|
|
11312
|
+
"$ref": "#/definitions/__schema842"
|
|
11176
11313
|
}
|
|
11177
11314
|
]
|
|
11178
11315
|
},
|
|
11179
|
-
"
|
|
11316
|
+
"__schema842": {
|
|
11180
11317
|
"default": "ForceIP",
|
|
11181
11318
|
"type": "string",
|
|
11182
11319
|
"enum": [
|