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

83 Commits

Author SHA1 Message Date
b3ab94ef5b Refine domain socket permission 2022-02-18 22:01:29 -05: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
63da3a5481 grpc: add initial_windows_size option 2021-12-19 21:14:14 -05:00
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
4fc284a8e9 Try to fix UDP error 2021-12-01 12:02:27 -05:00
roc
dd6769954c hotRelodaInterval --> hotReloadInterval 2021-10-26 21:45:31 -04:00
5c366db847 Add observatory / latestPing balancing strategy
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-22 17:16:20 +08:00
13bc0432bc WebSocket Early Data Protocol Harmonization with V2Ray/V2Fly (#548)
* protocol harmonization with V2Ray/V2Fly by supporting both V2Ray server and XRay server

* protocol harmonization with V2Ray/V2Fly by supporting both V2Ray server and XRay server comment
2021-10-22 12:38:40 +08:00
acb81ebe3d Verify peer cert function for better man in the middle prevention (#746)
* verify peer cert function for better man in the middle prevention

* publish cert chain hash generation algorithm

* added calculation of certificate hash as separate command and tlsping, use base64 to represent fingerprint to align with jsonPb

* apply coding style

* added test case for pinned certificates

* refactored cert pin

* pinned cert test

* added json loading of the PinnedPeerCertificateChainSha256

* removed tool to prepare for v5

* Add server cert pinning for Xtls

Change command "xray tls certChainHash" to xray style

Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-22 12:38:40 +08:00
c4fc277758 add comment for gRPC TLS silent failure behavior (#779)
When gRPC transport have been configured to use TLS, it may silently ignore TLS failure. This may make it harder to diagnose TLS setting issues when gRPC transport is used. This comment is added to help other developers be aware of this caveat.

Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-22 12:38:40 +08:00
50e576081e Add DispatchLink 2021-10-22 12:38:40 +08:00
625cf7361a Export PacketConnWrapper 2021-10-22 11:57:38 +08:00
e286cdcaa8 Style: format code by gofumpt (#761) 2021-10-20 00:57:14 +08:00
a229a7f85e Revert "cancel failed grpc connection (#707)" (#768)
This reverts commit 0f79126379.
2021-10-16 21:07:45 +08:00
5e606169f1 gRPC: Parse X-Real-IP header, fix #766 (#769) 2021-10-14 12:10:19 +08:00
575c7a9687 adjust 2021-10-13 00:49:31 +08:00
e6711d1b48 Add header and method support to http2 transport (#755)
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-12 15:58:12 +00:00
4bb61701b5 Add tcpKeepAliveInterval in transport sockopt (#754)
Co-authored-by: Ahmad Karimi <ak12hastam@gmail.com>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-12 15:39:08 +00:00
ef4c63812b Fix: nullcheck on alternative systemDialer (#752)
* fix: null-check on alternative systemDialer
* delete deprecated option DualStack

Co-authored-by: rurirei <72071920+rurirei@users.noreply.github.com>
2021-10-12 15:32:45 +00:00
3554886ce1 vformat supports multi-core processing (#757)
* Feat: vformat supports multi-core processing (#996)

Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-10-12 15:29:22 +00:00
7033f7cf5f Fix: protobuf file (#724) 2021-09-20 22:41:09 +08:00
ffc2f7c4e2 Style: format code 2021-09-20 21:00:55 +08:00
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
b0b2aaa70c Fixed refresh error when multiple certificates exist (#663)
* Fix when there are multiple certs, after refresh from file all will be the same as the last.
2021-09-18 03:48:22 +08:00
42d158bd85 vprotogen refine (#717)
* Update all proto files with existing vprotogen
* Chore: remove protoc-gen-gofast
* Feat: vprotogen adds version detector to block generation code from old protobuf version
* Feat: vprotogen refine logic

Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-09-18 01:16:14 +08:00
0f79126379 cancel failed grpc connection (#707)
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-09-15 01:40:38 +08:00
e6019a89c9 adjust for go1.17 2021-09-08 01:30:20 +08:00
c950edede2 Merge pull request #618 from XTLS/fix/service-name
gRPC: Use `PathEscape` encoded service name
2021-09-08 00:53:55 +08:00
64892fb2c3 Merge pull request #609 from XTLS/fix/dialer
Move `DomainStrategy` & `DialerProxy` to `DialSystem`
2021-09-08 00:53:37 +08:00
d9d239750b Merge pull request #633 from XTLS/feature/h2-health-check
Add health check for h2 & gRPC
2021-09-08 00:52:10 +08:00
7a9e72b133 Merge pull request #589 from bhoppi/main
Fix: new cert issuing is incorrectly delayed
2021-09-08 00:50:32 +08:00
31c7141fef gRPC: add keepalive option PermitWithoutStream 2021-07-05 21:25:21 +08:00
57b9006d26 gRPC: add keepalive option for server 2021-07-05 21:25:03 +08:00
d9d04a230f Add h2 & gRPC health check 2021-07-03 16:01:59 +08:00
3dc9fba20d gRPC: Use PathEscape encoded service name 2021-06-27 16:46:26 +08:00
86a8fb5d84 Move DomainStrategy & DialerProxy to DialSystem
Fix https://github.com/XTLS/Xray-core/issues/608
2021-06-18 19:28:02 +08:00
2220411644 fix new cert issuing is incorrectly delayed 2021-06-05 23:32:05 +08:00
3b8618b379 Fix linkname 2021-05-10 07:11:27 +08:00
e8a8465220 Fix reject unknown sni with single cert 2021-05-10 00:28:40 +08:00
1f92b948c0 Fix errNoCertificates 2021-05-10 00:11:45 +08:00
53b99efe78 Add: reject unknown SNI
Co-Authored-By: 玖柒Max <60207794+jiuqi9997@users.noreply.github.com>
2021-05-09 23:47:21 +08:00
bf94fb53ca Fix QUIC disconnecting issue (#475)
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-04-06 16:37:28 +00:00
1d13a8da49 fix grpc dial ipv6 address (#476) 2021-04-05 09:00:46 +08:00
4bf8b6d89c Fix uTLS fingerprints support
Thank @HirbodBehnam https://github.com/XTLS/Xray-core/issues/461
2021-04-01 09:15:18 +00:00
7f2fad73d4 Chore: Upgrade dependencies (#432)
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-03-31 06:18:34 +00:00
3ed14c2fcd Fix: gRPC & HTTP/2 dialer (#445) 2021-03-30 16:43:31 +00:00
b63049f404 Fix: TFO AsIs bug (#452) 2021-03-30 16:42:02 +00:00
a9e11075d1 Add uTLS fingerprints support (#451) 2021-03-29 10:08:29 +00:00
e564d9ef7e Fix: TCP & WS override AcceptProxyProtocol (#425) 2021-03-28 16:16:07 +00:00