yuhan6665
4064f8dd80
XTLS Vision: Refactor code to use DispatchLink() in VLESS inbound ( #5076 )
...
Build and Release / build (amd64, freebsd, ) (push) Has been cancelled
Build and Release / build (amd64, linux, ) (push) Has been cancelled
Build and Release / build (amd64, openbsd, ) (push) Has been cancelled
Build and Release / build (amd64, windows, ) (push) Has been cancelled
Build and Release / build (arm, 5, linux) (push) Has been cancelled
Build and Release / build (arm, 6, linux) (push) Has been cancelled
Build and Release / build (arm, 7, freebsd) (push) Has been cancelled
Build and Release / build (arm, 7, linux) (push) Has been cancelled
Build and Release / build (arm, 7, openbsd) (push) Has been cancelled
Build and Release / build (arm, 7, windows) (push) Has been cancelled
Build and Release / build (arm64, android) (push) Has been cancelled
Build and Release / build (arm64, darwin) (push) Has been cancelled
Build and Release / build (arm64, freebsd) (push) Has been cancelled
Build and Release / build (arm64, linux) (push) Has been cancelled
Build and Release / build (arm64, openbsd) (push) Has been cancelled
Build and Release / build (arm64, windows) (push) Has been cancelled
Build and Release / build (loong64, linux) (push) Has been cancelled
Build and Release / build (mips, linux) (push) Has been cancelled
Build and Release / build (mips64, linux) (push) Has been cancelled
Build and Release / build (mips64le, linux) (push) Has been cancelled
Build and Release / build (mipsle, linux) (push) Has been cancelled
Build and Release / build (ppc64, linux) (push) Has been cancelled
Build and Release / build (ppc64le, linux) (push) Has been cancelled
Build and Release / build (riscv64, linux) (push) Has been cancelled
Build and Release / build (s390x, linux) (push) Has been cancelled
Test / check-assets (push) Has been cancelled
Test / test (macos-latest) (push) Has been cancelled
Test / test (ubuntu-latest) (push) Has been cancelled
Test / test (windows-latest) (push) Has been cancelled
Scheduled assets update / geodat (push) Has been cancelled
* Xtls: code refactor
- Move more logic to VisionReader/Writer
- Remove XtlsWrite()
- XtlsRead now only handle splice at the outbound
- This helps VLESS inbound to have simple buf.copy() so that we can remove pipe next
* Add bufferFlushNext; Use DispatchLink() in VLESS inbound
* Use TimeoutWrapperReader; clean up timer/buffer
2025-09-01 15:15:32 +00:00
RPRX
e8b02cd664
VLESS Encryption: Add customizable 1-RTT padding parameters; Decrease memory using; Chores
...
Build and Release / build (amd64, darwin, ) (push) Has been cancelled
Build and Release / build (amd64, freebsd, ) (push) Has been cancelled
Build and Release / build (amd64, linux, ) (push) Has been cancelled
Build and Release / build (amd64, openbsd, ) (push) Has been cancelled
Build and Release / build (amd64, windows, ) (push) Has been cancelled
Build and Release / build (arm, 5, linux) (push) Has been cancelled
Build and Release / build (arm, 6, linux) (push) Has been cancelled
Build and Release / build (arm, 7, freebsd) (push) Has been cancelled
Build and Release / build (arm, 7, linux) (push) Has been cancelled
Build and Release / build (arm, 7, openbsd) (push) Has been cancelled
Build and Release / build (arm, 7, windows) (push) Has been cancelled
Build and Release / build (arm64, android) (push) Has been cancelled
Build and Release / build (arm64, darwin) (push) Has been cancelled
Build and Release / build (arm64, freebsd) (push) Has been cancelled
Build and Release / build (arm64, linux) (push) Has been cancelled
Build and Release / build (arm64, openbsd) (push) Has been cancelled
Build and Release / build (arm64, windows) (push) Has been cancelled
Build and Release / build (loong64, linux) (push) Has been cancelled
Build and Release / build (mips, linux) (push) Has been cancelled
Build and Release / build (mips64, linux) (push) Has been cancelled
Build and Release / build (mips64le, linux) (push) Has been cancelled
Build and Release / build (mipsle, linux) (push) Has been cancelled
Build and Release / build (ppc64, linux) (push) Has been cancelled
Build and Release / build (ppc64le, linux) (push) Has been cancelled
Build and Release / build (riscv64, linux) (push) Has been cancelled
Build and Release / build (s390x, linux) (push) Has been cancelled
Test / check-assets (push) Has been cancelled
Test / test (macos-latest) (push) Has been cancelled
Test / test (ubuntu-latest) (push) Has been cancelled
Test / test (windows-latest) (push) Has been cancelled
Completes https://github.com/XTLS/Xray-core/pull/5067
---------
Co-authored-by: wwqgtxx <wwqgtxx@gmail.com >
2025-08-31 04:09:28 +00:00
RPRX
7951a5c4bf
VLESS protocol: Add lightweight, Post-Quantum ML-KEM-768-based PFS 1-RTT / anti-replay 0-RTT AEAD Encryption ( #5067 )
...
https://opensea.io/collection/vless
2025-08-28 10:40:48 +00:00
RPRX
5464862ee6
XTLS Vision inbound: Use user-sent VLESS UUID for NewTrafficState()
...
Build and Release / build (arm64, linux) (push) Has been cancelled
Build and Release / build (arm64, openbsd) (push) Has been cancelled
Build and Release / build (arm64, windows) (push) Has been cancelled
Build and Release / build (loong64, linux) (push) Has been cancelled
Build and Release / build (mips, linux) (push) Has been cancelled
Build and Release / build (mips64, linux) (push) Has been cancelled
Build and Release / build (mips64le, linux) (push) Has been cancelled
Build and Release / build (mipsle, linux) (push) Has been cancelled
Build and Release / build (ppc64, linux) (push) Has been cancelled
Build and Release / build (ppc64le, linux) (push) Has been cancelled
Build and Release / build (riscv64, linux) (push) Has been cancelled
Build and Release / build (s390x, linux) (push) Has been cancelled
Build and Release / build (amd64, linux, ) (push) Has been cancelled
Build and Release / build (amd64, openbsd, ) (push) Has been cancelled
Build and Release / build (amd64, windows, ) (push) Has been cancelled
Build and Release / build (arm, 5, linux) (push) Has been cancelled
Build and Release / build (arm, 6, linux) (push) Has been cancelled
Build and Release / check-assets (push) Has been cancelled
Build and Release / build (386, freebsd, ) (push) Has been cancelled
Build and Release / build (386, linux, ) (push) Has been cancelled
Build and Release / build (386, openbsd, ) (push) Has been cancelled
Build and Release / build (386, windows, ) (push) Has been cancelled
Build and Release / build (amd64, android, android-amd64) (push) Has been cancelled
Build and Release / build (amd64, darwin, ) (push) Has been cancelled
Build and Release / build (amd64, freebsd, ) (push) Has been cancelled
Test / check-assets (push) Has been cancelled
Test / test (macos-latest) (push) Has been cancelled
Test / test (ubuntu-latest) (push) Has been cancelled
Test / test (windows-latest) (push) Has been cancelled
Scheduled assets update / geodat (push) Has been cancelled
Fixes https://github.com/XTLS/Xray-core/pull/5009#issuecomment-3194523018
2025-08-17 18:13:56 +00:00
RPRX
105b306d07
VLESS practice: Use user-sent VLESS UUID's last byte as vlessRoute for routing rules
...
https://github.com/XTLS/Xray-core/pull/5009#issuecomment-3194262087
2025-08-17 13:55:18 +00:00
yuhan6665
eef74b2c7d
XTLS: More separate uplink/downlink flags for splice copy ( #4407 )
...
- In 03131c72db new flags were added for uplink/downlink, but that was not suffcient
- Now that the traffic state contains all possible info
- Each inbound and outbound is responsible to set their own CanSpliceCopy flag. Note that this also open up more splice usage. E.g. socks in -> freedom out
- Fixes https://github.com/XTLS/Xray-core/issues/4033
2025-02-18 08:37:52 +00:00
yuhan6665
03131c72db
XTLS Vision: Use separate uplink/downlink flag for direct copy ( #4329 )
...
Fixes https://github.com/XTLS/Xray-core/issues/4033
2025-01-27 20:44:33 +00:00
Kobe Arthur Scofield
7086d286be
Remove legacy code ( #3838 )
...
* Add feature migration notice
* Remove legacy code of transport processing
* Clear legacy proto field
* Fix missing
* Unify protocolname
* Test remove
* Supressor
* Weird code
* Remove errorgen related comments
2024-09-23 11:28:19 -04:00
Torikki
c259e4e4a6
Allow to inject custom validator in VLESS controller ( #3453 )
...
* Make Validator an interface
* Move validator creation away from VLESS inbound controller
2024-09-13 10:51:26 -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
yuhan6665
121eb7b4fc
Splice update timer to 8 hours for inbound timer
2024-05-19 23:56:42 -04:00
yuhan6665
3168d27b0b
Splice update timer to 8 hours
2024-05-18 11:57:11 -04:00
yuhan6665
1d450cfbd2
Fix nil in inbound handler
2024-05-14 21:42:40 -04:00
yuhan6665
017f53b5fc
Add session context outbounds as slice ( #3356 )
...
* Add session context outbounds as slice
slice is needed for dialer proxy where two outbounds work on top of each other
There are two sets of target addr for example
It also enable Xtls to correctly do splice copy by checking both outbounds are ready to do direct copy
* Fill outbound tag info
* Splice now checks capalibility from all outbounds
* Fix unit tests
2024-05-13 21:52:24 -04:00
yuhan6665
a15334b395
Go back to first fix (revet d21e9b0abd)
...
Xtls is magic, don't play with it ;)
A knowledged guess is the timing to switch to splice is very sensitive. Now both Xtls and Freedom outound do the switching when pipe just finished one buffer
2024-02-17 11:16:37 -05:00
RPRX
ad3d347cfc
XTLS Vision: Apply padding to single XUDP by default at client side
...
Requires Xray-core v1.8.1+ at server side: 242f3b0e0b
2024-02-02 20:32:46 +00:00
yuhan6665
d21e9b0abd
Try a better fix for rare ssl error with freedom splice
...
It seems the root cause is if the flag set at the inbound pipe reader, it is a race condition and freedom outbound can possibly do splice at the same time with inbound xtls writer.
Now we set the flag at the earliest and always do splice at the next buffer cycle.
2024-01-26 04:42:45 -05:00
yuhan6665
d6d225c698
Refactor Vision reader writer
...
- Vision now use traffic states to capture two-way info about a connection
- XTLS is de-couple with Vision, it only read traffic states to switch to direct copy mode
- fix a edge case error when Vision unpadding read 5 command bytes
2023-09-13 08:01:34 -04:00
yuhan6665
efd32b0fb2
Enable splice for freedom outbound (downlink only)
...
- Add outbound name
- Add outbound conn in ctx
- Refactor splice: it can be turn on from all inbounds and outbounds
- Refactor splice: Add splice copy to vless inbound
- Fix http error test
- Add freedom splice toggle via env var
- Populate outbound obj in context
- Use CanSpliceCopy to mark a connection
- Turn off splice by default
2023-09-07 14:17:39 -04:00
Eken Chan
6d8fe7315f
XRV should work without rawConn
2023-06-22 10:21:27 -04:00
RPRX
242f3b0e0b
XTLS protocol: Apply Vision's padding to XUDP Mux & Minor fixes
...
It's recommended to enable XUDP Mux when using XTLS Vision
Thank @yuhan6665 for testing
2023-04-16 21:15:36 +00:00
世界
55efac7236
Reformat code
2023-03-17 13:17:08 +08:00
yuhan6665
9e5bc07bf2
Legends never die ( #1725 )
2023-03-04 10:39:26 +00:00
yuhan6665
25ea69fc3a
Fix Vision inserting multiple uuid headers
...
This happen for stream inbound like http
2023-03-03 09:45:10 -05:00
yuhan6665
a4790133d2
Fix padding extends out of bound again
2023-03-02 21:42:48 -05:00
yuhan6665
7b54255cc1
Fix padding extends out of bound
2023-03-01 08:43:00 -05:00
yuhan6665
2d898480be
Vision padding upgrade ( #1646 )
...
* Vision server allow multiple blocks of padding
* Fix Vision client to support multiple possible padding blocks
* Vision padding upgrade
- Now we have two types of padding: long (pad to 900-1400) and traditional (0-256)
- Long padding is applied to tls handshakes and first (empty) packet
- Traditional padding is applied to all beginning (7) packets of the connection (counted two-way)
- Since receiver changed its way to unpad buffer in fd6973b3c6 , we can freely extend padding packet length easily in the future
- Simplify code
* Adjust receiver withinPaddingBuffers
Now default withinPaddingBuffers = true to give it a chance to do unpadding
* Fix magic numbers for Vision
Thanks @H1JK
Thanks @RPRX for guidance
2023-02-27 22:14:37 -05:00
Hellojack
267d93f7bd
Improve ReshapeMultiBuffer ( #1636 )
...
* Improve ReshapeMultiBuffer
* Improve again
* Always resize
2023-02-24 11:42:02 -05:00
yuhan6665
c3faa8b7ac
Insert padding with empty content to camouflage VLESS header ( #1610 )
...
This only affects the Vision client for protocols expecting server to send data first.
The change is compatible with existing version of Vision server.
2023-02-06 06:45:09 +00:00
RPRX
6f61021f7a
XTLS Vision processes struct TLS Conn's input and rawInput
...
Fixes https://github.com/XTLS/Xray-core/issues/1444
2023-01-06 05:37:16 +00:00
yuhan6665
c4fbdf1b78
Run core/format.go
2022-12-25 19:47:53 -05:00
yuhan6665
bc4de6a026
Fix VLESS client doesn't handle traffic if not send data first
...
Certain ssh, mySQL and reverse proxy need server data first in a connection
2022-12-11 09:44:40 -05:00
yuhan6665
1d7c40d728
Enable Xtls Vision (Direct not Splice) for any inbound connection
...
Before this change, Vision client need a pure inbound like socks or http.
After this change, it will support any inbound.
This is useful in traffic forwarder use case inside China.
2022-12-04 23:15:36 -05:00
yuhan6665
d87758d46f
Parse big server hello properly
2022-11-27 18:28:38 -05:00
yuhan6665
494a10971b
Fix xtls vision issue with big server hello
2022-11-20 18:54:07 -05:00
yuhan6665
8006430c15
Add logic to filter TLS_AES_128_CCM_8_SHA256
2022-11-13 12:18:23 -05:00
yuhan6665
04278a8940
Refactor some variable names
2022-11-13 12:18:23 -05:00
yuhan6665
48f7cc2132
Reshape multi buffer to fix the padding when buffer is full
2022-11-13 12:18:23 -05:00
yuhan6665
8ef609ff46
Enable UTLS fingerprint for XTLS Vision
2022-11-06 21:50:19 -05:00
yuhan6665
5e695327b1
Add XTLS RPRX's Vision ( #1235 )
...
* Add XTLS RPRX's Vision
* Add helpful warning when security is wrong
* Add XTLS padding (draft)
* Fix number of packet to filter
* Xtls padding version 1.0 and unpadding logic
2022-10-29 00:51:59 -04:00
yuhan6665
84537e98c4
Update xtls and go to 1.19
2022-09-15 22:06:59 -04:00
yuhan6665
e93da4bd02
Fix some tests and format code ( #830 )
...
* Increase some tls test timeout
* Fix TestUserValidator
* Change all tests to VMessAEAD
Old VMess MD5 tests will be rejected and fail in 2022
* Chore: auto format code
2021-12-14 19:28:47 -05:00
yuhan6665
e286cdcaa8
Style: format code by gofumpt ( #761 )
2021-10-20 00:57:14 +08:00
Arthur Morgan
24b637cd5e
Fix: CounterConnection with ReadV/WriteV ( #720 )
...
Co-authored-by: JimhHan <50871214+JimhHan@users.noreply.github.com >
2021-09-20 20:11:21 +08:00
RPRX
6a5618bc54
Outbound Splice supports Inbound XTLS
2020-12-16 10:35:28 +00:00
RPRX
f8faf3c8b8
Removal: confonly
2020-12-11 13:05:29 +08:00
RPRX
b3f3c5be81
Use runtime.Gosched() instead
2020-12-07 16:08:35 +00:00
RPRX
0d772cd800
Adjust Splice panic strategy
2020-12-04 11:51:12 +00:00
RPRX
16544c18ab
v1.1.0
2020-12-04 09:36:16 +08:00
RPRX
c7f7c08ead
v1.0.0
2020-11-25 19:01:53 +08:00