0
mirror of https://github.com/XTLS/Xray-core.git synced 2025-06-12 11:29:36 +03:00
Commit Graph

126 Commits

Author SHA1 Message Date
267d93f7bd Improve ReshapeMultiBuffer (#1636)
* Improve ReshapeMultiBuffer

* Improve again

* Always resize
2023-02-24 11:42:02 -05:00
4d2e2b24d3 THE NEXT FUTURE becomes THE REALITY NOW
Thank @yuhan6665 for testing
2023-02-15 16:07:12 +00:00
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
74416570d4 Format VLESS inbound.go and outbound.go 2023-01-31 18:02:12 +00:00
b70912799b Generate *.pb.go files with protoc v3.21.12
https://github.com/protocolbuffers/protobuf/releases/tag/v21.12
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
go run ./infra/vprotogen
2023-01-30 04:35:30 +00:00
15bb23e4ec XTLS Vision rejects Mux except for XUDP (#1567)
* Xtls vision reject vless-tcp-tls+Mux

* Address review comment
2023-01-28 05:39:36 +00:00
fb212905bd XTLS Vision checks outer TLS version (#1554) 2023-01-27 03:43:58 +00:00
MP
77d2f9edd7 Revise the Code per XTLS#1515 (#1536)
* Use buf.FromBytes(make([]byte, 0, buf.Size)) to create `first`

Fixes https://github.com/XTLS/Xray-core/issues/1515

* Update server.go

* Update inbound.go

Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
2023-01-16 22:18:58 -05:00
8c0d3c0257 XTLS Vision supports acceptProxyProtocol (test needed)
Fixes https://github.com/XTLS/Xray-core/issues/1339
2023-01-07 11:01:53 +00:00
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
c4fbdf1b78 Run core/format.go 2022-12-25 19:47:53 -05:00
c9b6fc0104 Add custom header support for HTTP proxy 2022-12-18 21:48:23 -05:00
a55cf1d0bf fix: email inconsistent 2022-12-15 08:35:07 -05:00
f35ded79ad Vision only reject TCP command for VLESS-TCP-TLS
UDP and MUX command currently has no flow value.
Also the character is the same with or without XTLS
2022-12-12 21:20:01 -05:00
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
2e30093ffd Enforce specific none flow for xtls vision
In the past, when user open xtls vision on the server side, plain vless+tls can connect.
Pure tls is known to have certain tls in tls characters.
Now  server need to specify "xtls-rprx-vision,none" for it be able usable on the same port.
2022-12-04 23:15:36 -05:00
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
143229b148 update: Implement the proxy.UserManager of ss2022 2022-12-03 21:19:31 -05:00
d87758d46f Parse big server hello properly 2022-11-27 18:28:38 -05:00
e5e9e58d66 Fix direct flow on Windows 2022-11-27 18:28:38 -05:00
e18b52a5df Implement WireGuard protocol as outbound (client) (#1344)
* implement WireGuard protocol for Outbound

* upload license

* fix build for openbsd & dragonfly os

* updated wireguard-go

* fix up

* switch to another wireguard fork

* fix

* switch to upstream

* open connection through internet.Dialer (#1)

* use internet.Dialer

* maybe better code

* fix

* real fix

Co-authored-by: nanoda0523 <nanoda0523@users.noreply.github.com>

* fix bugs & add ability to recover during connection reset on UDP over TCP parent protocols

* improve performance

improve performance

* dns lookup endpoint && remove unused code

* interface address fallback

* better code && add config test case

Co-authored-by: nanoda0523 <nanoda0523@users.noreply.github.com>
2022-11-21 20:05:54 -05:00
494a10971b Fix xtls vision issue with big server hello 2022-11-20 18:54:07 -05:00
8006430c15 Add logic to filter TLS_AES_128_CCM_8_SHA256 2022-11-13 12:18:23 -05:00
04278a8940 Refactor some variable names 2022-11-13 12:18:23 -05:00
48f7cc2132 Reshape multi buffer to fix the padding when buffer is full 2022-11-13 12:18:23 -05:00
8ef609ff46 Enable UTLS fingerprint for XTLS Vision 2022-11-06 21:50:19 -05:00
fffd908db2 Fix direct and splice flow 2022-11-06 21:50:19 -05:00
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
8117b66949 Generate all protos 2022-10-10 13:17:32 -04:00
c21595a937 Fix an issue with ss2022 generics 2022-09-16 21:54:37 -04:00
debd2e3ba8 Remove compatibility code
The minimum support go version is already 1.18
2022-09-16 20:39:07 -04:00
84537e98c4 Update xtls and go to 1.19 2022-09-15 22:06:59 -04:00
71a9a6dd55 Update dependencies
- Sync with sing upstream
2022-08-27 22:57:14 -04:00
7d52ded2a3 Update dependencies 2022-07-16 09:33:03 +08:00
52930a16b2 Fix check ss bad udp request #1122 2022-06-28 07:50:18 +08:00
d4f18b1342 Fix DoS attack vulnerability in VMess Option Processing 2022-06-19 19:13:37 -04:00
ba4ce4c24f Add shadowsocks 2022 relay service 2022-06-19 22:17:23 +08:00
bd0cf955c7 Update shadowsocks-2022 multi-server usage 2022-06-07 11:17:08 +08:00
c3505632fd Add udp over tcp support for shadowsocks-2022 2022-06-01 11:49:02 +08:00
f1d753f069 Fix build in legacy golang version 2022-05-31 15:55:38 +08:00
91ce752405 Fix close pipe 2022-05-31 11:44:32 +08:00
79f3057687 Migrate shadowsocks-2022 to protocol library 2022-05-26 07:35:17 +08:00
1edce576ca Fix missing user in shadowsocks-2022 inbound 2022-05-25 08:49:52 +08:00
cf7e675c45 Add shadowsocks 2022 multi-user inbound 2022-05-24 07:37:14 +08:00
087f0d1240 Add shadowsocks-2022 inbound/outbound (#1061) 2022-05-22 23:55:48 -04:00
f046feb9ca Reformat code 2022-05-18 15:29:01 +08:00
41ce6ccf9f Make reverse proxy compatible with v2fly (#924)
* Make reverse proxy compatible with v2fly

* Fix gitignore

* Regenerate proto files

- fix v2ray name in loopback

* Fix fly.org in unit tests
2022-02-04 21:59:50 -05:00
578d903a9e Quic related improvements (#915)
* DialSystem for Quic

DialSystem() is needed in case of Android client,
where the raw conn is protected for vpn service

* Fix client dialer log

Log such as:
tunneling request to tcp:www.google.com:80 via tcp:x.x.x.x:443
the second "tcp" is misleading when using mKcp or quic transport

Remove the second "tcp" and add the correct logging for transport dialer:
- transport/internet/tcp: dialing TCP to tcp:x.x.x.x:443
- transport/internet/quic: dialing quic to udp:x.x.x.x:443

* Quic new stream allocation mode

Currently this is how Quic works: client muxing all tcp and udp traffic through a single session, when there are more than 32 running streams in the session,
the next stream request will fail and open with a new session (port). Imagine lineup the session from left to right:
 |
 |  |
 |  |  |

As the streams finishes, we still open stream from the left, original session. So the base session will always be there and new sessions on the right come and go.
However, either due to QOS or bugs in Quic implementation, the traffic "wear out" the base session. It will become slower and in the end not receiving any data from server side.
I couldn't figure out a solution for this problem at the moment, as a workaround:
       |  |
    |  |  |
 |  |  |

I came up with this new stream allocation mode, that it will never open new streams in the old sessions, but only from current or new session from right.
The keeplive config is turned off from server and client side. This way old sessions will natually close and new sessions keep generating.
Note the frequency of new session is still controlled by the server side. Server can assign a large max stream limit. In this case the new allocation mode will be similar to the current mode.
2022-01-28 18:11:30 -05:00
e96e5994d0 Update Vmess Warning Errors 2022-01-19 09:30:28 -05:00
9ea1bf7c1d Fix shadowsocks xchacha cipher nonce size 2021-12-19 21:18:35 -05:00