Commit graph

189 commits

Author SHA1 Message Date
mmmray a3b306aaa4
SplitHTTP: Replace responseOkPadding with xPaddingBytes (#3643) 2024-08-10 21:47:42 +00:00
nobody ac628a9427
API: Improve MarshalToJson() in common/reflect/marshal.go (#3655)
* Serialize enum to string in MarshalToJson().

* MarshalToJson() respect json tags.

* Add insertTypeInfo parameter to MarshalToJson().

* Omit empty string in MarshalToJson().

* Serialize PortList to string in MarshalToJson().

---------

Co-authored-by: nobody <nobody@nowhere.mars>
2024-08-08 10:35:46 -04:00
mmmray 4b7947cca9
SplitHTTP server: add ok padding (#3614) 2024-08-02 03:16:19 +02:00
mmmray 30af792777
SplitHTTP: Rename three options & Reduce server defaults (#3611)
* maxUploadSize -> scMaxEachPostBytes, default is 1MB on both sides (was 2MB on the server)
* minUploadIntervalMs -> scMinPostsIntervalMs, default is 30ms on the client (no server support for now)
* maxConcurrentUploads -> scMaxConcurrentPosts, default is 100 on both sides (was 200 on the server)
2024-07-29 10:10:29 +00:00
lelemka0 4531a7e228
CertificateObject: Enable auto-reload for cacert & Add buildChain & Fixes (#3607) 2024-07-29 06:58:58 +00:00
RPRX 60553a6c26
SplitHTTP server: Add noSSEHeader
https://github.com/XTLS/Xray-core/pull/3603#issuecomment-2254968219
2024-07-29 06:32:04 +00:00
mmmray 59f6685774
SplitHTTP: More range options, change defaults, enforce maxUploadSize, fix querystring behavior (#3603)
* maxUploadSize and maxConcurrentUploads can now be ranges on the client
* maxUploadSize is now enforced on the server
* the default of maxUploadSize is 2MB on the server, and 1MB on the client
* the default of maxConcurrentUploads is 200 on the server, and 100 on the client
* ranges on the server are treated as a single number. if server is configured as `"1-2"`, server will enforce `2`
* querystrings in `path` are now handled correctly
2024-07-29 04:35:17 +00:00
mmmray 8a4217fdf5
SplitHTTP client: Add minUploadInterval (#3592) 2024-07-27 12:52:36 +00:00
风扇滑翔翼 308f0c64c3
Add custom Sockopt support (#3517)
* Add custom sockopt

* Add custom level

* Change field

* Sth left
2024-07-09 12:19:31 -04:00
yuhan6665 079d0bd8a9
Refactor log (#3446)
* Refactor log

* Add new log methods

* Fix logger test

* Change all logging code

* Clean up pathObj

* Rebase to latest main

* Remove invoking method name after the dot
2024-06-29 14:32:57 -04:00
mmmray c10bd28731
Add SplitHTTP Transport (#3412) 2024-06-18 05:36:36 +00:00
风扇滑翔翼 3654c0d710 HTTPUpgrade send headers with specified capitalization (#3430)
* Fix HTTPUpgrade header capitalization

* Chore

* Remove excess host headers

Chore : change httpupgrade header "upgrade" to "Upgrade" #3435
2024-06-07 12:53:27 +00:00
yuhan6665 075051a693 Add wireguard test 2024-06-01 19:34:31 -04:00
RPRX ca07a705dc
Generate *.pb.go files with protoc v5.27.0
Download https://github.com/protocolbuffers/protobuf/releases/tag/v27.0
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.1
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
(Xray-core/) go run ./infra/vprotogen
2024-05-26 03:20:53 +00:00
yuhan6665 84eeb56ae4 Select alive only node when fallbackTag is given
- Apply to random and roundrobin strategy
- Require observatory config

Co-authored-by: Mark Ma <38940419+mkmark@users.noreply.github.com>
2024-05-05 10:11:29 -04:00
nobody 447a49d16a
Add configuration item api->listen. (#3317)
* add api.listen configuration item

* add unit tests

* typo

---------

Co-authored-by: nobody <nobody@nowhere.mars>
2024-05-01 21:23:55 -04:00
writegr dd16dcec03 chore: fix some typos in comments
Signed-off-by: writegr <wellweek@outlook.com>
2024-04-18 12:24:56 +08:00
Allo fbc56b88da chore: remove the usage of some deprecated tls properties 2024-04-13 17:56:35 -04:00
RPRX 685e66e96b
Fix TestXrayConfig in xray_test.go 2024-03-30 08:10:16 +00:00
yuhan6665 7e3a8d3a04 Add separate host config for websocket 2024-03-30 07:43:05 +00:00
yuhan6665 e2302b421c Update proto file for websocket and httpupgrade (breaking) 2024-03-30 07:42:41 +00:00
Hossin Asaadi 53e5814d19
API - Add | Remove Routing Rules (#3189)
* add RuleTag to routing rules

* add router pb commands

* add and remove routing rules api

* cleanup

* fix

* improve error msg

* add append flag
apply balancer config
2024-03-29 11:17:36 -04:00
风扇滑翔翼 8a439bf3f2 Fix host in headers field does not work XTLS#3191 2024-03-29 00:08:54 -04:00
lelemka0 e2439c0483 fix: config burstObservatory override 2024-03-25 05:50:08 -10:00
风扇滑翔翼 9a619f9e7c Add support for HTTPupgrade custom headers 2024-03-23 07:53:36 -10:00
风扇滑翔翼 70a5fe9a25 Allow to send through random IPv6 2024-03-23 07:23:19 -10:00
チセ fe3a0cf954 Chore: Clean up legacy field usage 2024-03-20 12:13:21 -04:00
RPRX 18b823b4a6
HTTPUpgrade 0-RTT (#3152)
* Add ed to enable HTTPUpgrade 0-RTT

https://github.com/XTLS/Xray-core/issues/3128#issuecomment-2002563369

* WebSocket hub.go MaxHeaderBytes: 4096 -> 8192
2024-03-17 20:43:19 +00:00
Eken Chan 173b03448f transport: add httpupgrade 2024-03-03 10:45:36 -05:00
RPRX 7184a8165f
Add Authority to gRPC Transport (#3076)
Why couldn't you have Host, for the last three years?
2024-02-29 14:22:14 +00:00
yuhan6665 fa5d7a255b
Least load balancer (#2999)
* v5: Health Check & LeastLoad Strategy (rebased from 2c5a71490368500a982018a74a6d519c7e121816)

Some changes will be necessary to integrate it into V2Ray

* Update proto

* parse duration conf with time.Parse()

* moving health ping to observatory as a standalone component

* moving health ping to observatory as a standalone component: auto generated file

* add initialization for health ping

* incorporate changes in router implementation

* support principle target output

* add v4 json support for BurstObservatory & fix balancer reference

* update API command

* remove cancelled API

* return zero length value when observer is not found

* remove duplicated targeted dispatch

* adjust test with updated structure

* bug fix for observer

* fix strategy selector

* fix strategy least load

* Fix ticker usage

ticker.Close does not close ticker.C

* feat: Replace default Health Ping URL to HTTPS (#1991)

* fix selectLeastLoad() returns wrong number of nodes (#2083)

* Test: fix leastload strategy unit test

* fix(router): panic caused by concurrent map read and write (#2678)

* Clean up code

---------

Co-authored-by: Jebbs <qjebbs@gmail.com>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: 世界 <i@sekai.icu>
Co-authored-by: Bernd Eichelberger <46166740+4-FLOSS-Free-Libre-Open-Source-Software@users.noreply.github.com>
Co-authored-by: 秋のかえで <autmaple@protonmail.com>
Co-authored-by: Rinka <kujourinka@gmail.com>
2024-02-17 22:51:37 -05:00
Iain Lau 3a99520370 Add PROXY Protocol support for freedom outbound 2024-02-05 10:08:51 -05:00
Qi Lin 0ea2a50264 Add option realitySettings.masterKeyLog 2024-01-11 10:57:04 -05:00
nobody 44bb83033f
Add sub-command "-dump" to "run". (#2854)
* Add MarshalToJson().

* Add cmd arg -dump for printing out merged multiple json configs.

---------

Co-authored-by: nobody <nobody@nowhere.mars>
2023-12-29 11:16:48 -05:00
Allo 006cf491e5 fix(conf): add Windows support for Unix Domain Socket in the fallback settings 2023-12-29 11:07:41 -05:00
Allo b0bf0d7fd5 fix(conf): add Windows support for Unix Domain Socket 2023-12-24 15:48:25 -05:00
Hossin Asaadi 01c14a5994
add Round-Robin Strategy to balancer (#2844)
* add Round-Robin Strategy

* clean up
2023-12-24 15:29:10 -05:00
风扇滑翔翼 9becf02316 allow empty route type
default field
2023-12-24 15:00:23 -05:00
yuhan6665 6f092bd212
Add "masterKeyLog" in TLS config (#2758)
* Add "enableMasterKeyLog" in TLS config

Turn on the debug option for Wireshark to decrypt traffic

* Change to "masterKeyLog" to configure a path
2023-11-27 10:08:34 -05:00
hax0r31337 0ac7da2fc8
WireGuard Inbound (User-space WireGuard server) (#2477)
* feat: wireguard inbound

* feat(command): generate wireguard compatible keypair

* feat(wireguard): connection idle timeout

* fix(wireguard): close endpoint after connection closed

* fix(wireguard): resolve conflicts

* feat(wireguard): set cubic as default cc algorithm in gVisor TUN

* chore(wireguard): resolve conflict

* chore(wireguard): remove redurant code

* chore(wireguard): remove redurant code

* feat: rework server for gvisor tun

* feat: keep user-space tun as an option

* fix: exclude android from native tun build

* feat: auto kernel tun

* fix: build

* fix: regulate function name & fix test
2023-11-17 22:27:17 -05:00
yuhan6665 7523f7f440
统一 domainStrategy 行为. (#2720)
* 统一 `domainStrategy` 行为.

* Update proto

---------

Co-authored-by: rui0572 <125641819+rui0572@users.noreply.github.com>
2023-11-12 16:37:02 -05:00
yuhan6665 d9fd3f8eb1
Freedom xdomain strategy (#2719)
* 统一 `domainStrategy` 行为.

* aliases NG.

* 化简.

* 调整.

* Let it crash.

* Update proto

---------

Co-authored-by: rui0572 <125641819+rui0572@users.noreply.github.com>
2023-11-12 16:27:39 -05:00
yuhan6665 a109389efb
Wireguard resolve strategy (#2717)
* 增加 wireguard 出站选项 `resolveStrategy`.

* They become a part of you.

* 移除不必要的选项别名.

* aliases NG.

* 微调.

---------

Co-authored-by: rui0572 <125641819+rui0572@users.noreply.github.com>
2023-11-12 15:52:09 -05:00
Ikko Eltociear Ashimine 1d89ae2847 Fix typo in xray.go
overide -> override
2023-11-06 17:54:40 -05:00
yuhan6665 4f05e0ac2b Unify environment var readers 2023-10-29 15:16:57 -04:00
Hossin Asaadi 67c66faaed
Override outbounds in multi config files (#2659)
* fix override outbounds in multi config

* log outbounds override status

* fix prepend bug

* improve outbounds-prepend test

* fix prepend outbound

* fix outbounds-prepend test
2023-10-23 21:34:58 -04:00
hossinasaadi 71fee07175 fix inbounds-replaceall test 2023-10-22 22:45:38 -04:00
hossinasaadi 42d586df09 log inbound override status 2023-10-22 22:45:38 -04:00
hossinasaadi 4f8b73bb1f fix override Inbounds in multi config 2023-10-22 22:45:38 -04:00
cty123 4f6042c69f feat(dns): Support DNS queryStrategy config per NameServer. 2023-09-22 10:34:36 -04:00