RPRX
f32921df30
Refine randomized
...
But we should avoid using it unless we have to, see
https://github.com/refraction-networking/utls/pull/157#issuecomment-1417156797
2 years ago
RPRX
f176ec54ee
v1.7.3
2 years ago
pocketW
bf35e9dcd6
fix: handle error raised by dispatcher
2 years ago
RPRX
dc72cf2c78
Refine fingerprints
...
Fixes https://github.com/XTLS/Xray-core/issues/1577
2 years ago
RPRX
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
2 years ago
mra9776
f571aa72df
uTLS PinnedPeerCertificateChainSha256 ( #1556 )
...
* Add tests for utls PinnedPeerCertificateChain
* Fix utls not checking PinnedPeerCertificate
Co-authored-by: ahmadi <ahmadi@meshkan.com>
2 years ago
yuhan6665
3fb67f065a
Add fingerprint xray_random ( #1540 )
...
* Add fingerprint xray_random
xray_random means to pick a random uTLS fingerprint at the core startup
This way, the fingerprint is stable for a user for some days. While there is no identifiable signature for the whole xray community
* Fingerprint "random" refine
Exclude old fingerprint from RNG
2 years ago
aeeq
620eb63c1b
Add sockopt interface setting for binding outbound to a particular device like "eth0" ( #1494 )
...
* Update sockopt_linux.go
add Interface Name
* Update config.pb.go
add Interface Name
* Update transport_internet.go
add Interface Name
* Update config.pb.go
* update config.proto add interface
* Update config.pb.go
2 years ago
yuhan6665
32ce7cd730
Add new uTLS fingerprints
...
- correct safari
- new format is the variable name in https://github.com/refraction-networking/utls/blob/master/u_common.go#L163
- notable ones "HelloChrome_106_Shuffle", "Hello360_Auto", "HelloQQ_Auto"
2 years ago
yuhan6665
c4fbdf1b78
Run core/format.go
2 years ago
aabbccgg
0565589b8b
Changed quic MaxIdleTimeout from 30s to 5min & HandshakeIdleTimeout to 8s
2 years ago
Cubarco
8e75e9d763
Fix sockopt.TcpKeepAliveInterval
...
The Keep-Alive configs may be overridden with golang default settings when `tcpKeepAliveInterval` is set without `tcpKeepAliveIdle`.
2 years ago
Hirbod Behnam
da0b13cca0
Added uTLS to gRPC ( #1264 )
...
* Added uTLS to gRPC
* Use base 16 of ciphers as StandardName
2 years ago
Hirbod Behnam
1f93cbbc5d
Added utls to websocket ( #1256 )
...
* Added utls to websocket
* Slightly better code
One less allocation
2 years ago
Hirbod Behnam
93c7ebe382
Added utls to http2 transport
2 years ago
yuhan6665
8117b66949
Generate all protos
2 years ago
xqzr
8cf23f1947
add `tcpcongestion` ( #1234 )
...
* add `tcpcongestion`
* Update sockopt_linux.go
* Update config.pb.go
* Update transport_internet.go
* Update config.pb.go
* Update transport_internet.go
* Update config.proto
2 years ago
Mocking
4140bcd11a
Enhancement of "redirect" function, adding support for MacOS
...
Added the function of "MacOS" FreeBSD firewall traffic forwarding and resolving destination address
example:
"inbounds": [
{
"listen": "127.0.0.1",
"port": 1122,
"protocol": "dokodemo-door",
"tag": "dokodemo",
"settings": {
"network": "tcp",
"followRedirect": true,
"userLevel": 0
},
"streamSettings": {
"sockopt": {
"tproxy": "Redirect"
}
}
}
]
还原#1189 提交
2 years ago
S-Mocking
59602db02d
Add "tproxy" option ( #1189 )
...
* Add "tproxy" option
Added the function of "MacOS" FreeBSD firewall traffic forwarding and resolving destination address
example:
"inbounds": [
{
"listen": "127.0.0.1",
"port": 1122,
"protocol": "dokodemo-door",
"tag": "dokodemo",
"settings": {
"network": "tcp",
"followRedirect": true,
"userLevel": 0
},
"streamSettings": {
"sockopt": {
"tproxy": "pf"
}
}
}
]
* Add "tproxy" option
Added the function of "MacOS" FreeBSD firewall traffic forwarding and resolving destination address
example:
"inbounds": [
{
"listen": "127.0.0.1",
"port": 1122,
"protocol": "dokodemo-door",
"tag": "dokodemo",
"settings": {
"network": "tcp",
"followRedirect": true,
"userLevel": 0
},
"streamSettings": {
"sockopt": {
"tproxy": "pf"
}
}
}
]
* Add "tproxy" option
Added the function of "MacOS" FreeBSD firewall traffic forwarding and resolving destination address
example:
"inbounds": [
{
"listen": "127.0.0.1",
"port": 1122,
"protocol": "dokodemo-door",
"tag": "dokodemo",
"settings": {
"network": "tcp",
"followRedirect": true,
"userLevel": 0
},
"streamSettings": {
"sockopt": {
"tproxy": "pf"
}
}
}
]
Co-authored-by: Mocking <fanhaiwang0817@gmail.com>
2 years ago
ksco.he
76638d793c
fix(udp): check addr nil (close 1807)
2 years ago
yuhan6665
340234166b
Add TCPKeepAliveIdle in Sockopt option ( #1166 )
...
* Add TCP keep alive idle setting
* Add TCP keep alive idle setting: auto generated
* Add TCP keep alive support in Linux
* Add TCP keep alive support in MacOS, FreeBSD
* Add TCP keep alive support in Windows
* fix bug introduced in adding tcp keep alive adjustment
* embed macOS const to avoid platform inconsistency
* embed macOS const to avoid platform inconsistency(again)
* add TCP Keep Alive support in config
* use sys/unix instead of syscall
Suggestion from:
https://github.com/v2fly/v2ray-core/pull/1395#issuecomment-974761647
* use sys/unix instead of syscall
Suggestion from:
https://github.com/v2fly/v2ray-core/pull/1395#issuecomment-974761647
* Separate TcpKeepAliveIdle and TcpKeepAliveInterval check logic
* Disable tcp keepAlive when TcpKeepAliveIdle < 0 and TcpKeepAliveInterval <= 0
Co-authored-by: xqzr <34030394+xqzr@users.noreply.github.com>
Co-authored-by: ValdikSS <iam@valdikss.org.ru>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: xqzr <34030394+xqzr@users.noreply.github.com>
2 years ago
yuhan6665
00230a74d5
Fix new Quic lib: KeepAlivePeriod ( #1139 )
...
* Bump github.com/lucas-clemente/quic-go from 0.27.2 to 0.28.0
Bumps [github.com/lucas-clemente/quic-go](https://github.com/lucas-clemente/quic-go ) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/lucas-clemente/quic-go/releases )
- [Changelog](https://github.com/lucas-clemente/quic-go/blob/master/Changelog.md )
- [Commits](https://github.com/lucas-clemente/quic-go/compare/v0.27.2...v0.28.0 )
---
updated-dependencies:
- dependency-name: github.com/lucas-clemente/quic-go
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix new Quic lib: KeepAlivePeriod
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
世界
6f93ef7736
Remove useless error log
3 years ago
世界
f046feb9ca
Reformat code
3 years ago
yuhan6665
b413066012
Fakedns fix xUDP destination override ( #1011 )
...
* Fix UDP destination override
* Fix code style
* Fix fakedns object init
Do type convertion at runtime in case if user don't use fakedns in config.
Since dispatcher now depend on fakedns object, move the injection order of
fakedns to top (As a temporary solution)
* Amend logic for handing fakedns client
A map is used by server side when client turn on fakedns
Client will send domain address in the buffer.UDP.Address, server record all possible target IP addrs.
When target replies, server will restore the domain and send back to client.
Co-authored-by: hmol233 <82594500+hmol233@users.noreply.github.com>
3 years ago
yuhan6665
c9df755426
Add quic qlog to debug logs
3 years ago
yuhan6665
393d211d1e
Rename quic session to connection
...
Co-authored-by: 秋のかえで <autmaple@protonmail.com>
3 years ago
hmol233
b3ab94ef5b
Refine domain socket permission
3 years ago
yuhan6665
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
3 years ago
yuhan6665
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.
3 years ago
hmol233
63da3a5481
grpc: add initial_windows_size option
3 years ago
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
3 years ago
yaotthaha-vscode
4fc284a8e9
Try to fix UDP error
3 years ago
roc
dd6769954c
hotRelodaInterval --> hotReloadInterval
3 years ago
世界
5c366db847
Add observatory / latestPing balancing strategy
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
3 years ago
Xiaokang Wang
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
3 years ago
yuhan6665
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>
3 years ago
yuhan6665
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>
3 years ago
世界
50e576081e
Add DispatchLink
3 years ago
世界
625cf7361a
Export PacketConnWrapper
3 years ago
yuhan6665
e286cdcaa8
Style: format code by gofumpt ( #761 )
3 years ago
yuhan6665
a229a7f85e
Revert "cancel failed grpc connection ( #707 )" ( #768 )
...
This reverts commit 0f79126379
.
3 years ago
lucifer
5e606169f1
gRPC: Parse X-Real-IP header, fix #766 ( #769 )
3 years ago
Arthur Morgan
575c7a9687
adjust
3 years ago
yuhan6665
e6711d1b48
Add header and method support to http2 transport ( #755 )
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
3 years ago
yuhan6665
4bb61701b5
Add tcpKeepAliveInterval in transport sockopt ( #754 )
...
Co-authored-by: Ahmad Karimi <ak12hastam@gmail.com>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
3 years ago
yuhan6665
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>
3 years ago
yuhan6665
3554886ce1
vformat supports multi-core processing ( #757 )
...
* Feat: vformat supports multi-core processing (#996 )
Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
3 years ago
hmol233
7033f7cf5f
Fix: protobuf file ( #724 )
3 years ago
Arthur Morgan
ffc2f7c4e2
Style: format code
3 years ago
Arthur Morgan
24b637cd5e
Fix: CounterConnection with ReadV/WriteV ( #720 )
...
Co-authored-by: JimhHan <50871214+JimhHan@users.noreply.github.com>
3 years ago
WeidiDeng
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.
3 years ago
yuhan6665
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>
3 years ago
yuhan6665
0f79126379
cancel failed grpc connection ( #707 )
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
3 years ago
Arthur Morgan
e6019a89c9
adjust for go1.17
3 years ago
Arthur Morgan
c950edede2
Merge pull request #618 from XTLS/fix/service-name
...
gRPC: Use `PathEscape` encoded service name
3 years ago
Arthur Morgan
64892fb2c3
Merge pull request #609 from XTLS/fix/dialer
...
Move `DomainStrategy` & `DialerProxy` to `DialSystem`
3 years ago
Arthur Morgan
d9d239750b
Merge pull request #633 from XTLS/feature/h2-health-check
...
Add health check for h2 & gRPC
3 years ago
Arthur Morgan
7a9e72b133
Merge pull request #589 from bhoppi/main
...
Fix: new cert issuing is incorrectly delayed
3 years ago
hmol233
31c7141fef
gRPC: add keepalive option `PermitWithoutStream`
3 years ago
hmol233
57b9006d26
gRPC: add keepalive option for server
3 years ago
hmol233
d9d04a230f
Add h2 & gRPC health check
3 years ago
hmol233
3dc9fba20d
gRPC: Use `PathEscape` encoded service name
3 years ago
hmol233
86a8fb5d84
Move `DomainStrategy` & `DialerProxy` to `DialSystem`
...
Fix https://github.com/XTLS/Xray-core/issues/608
3 years ago
Bhoppi Chaw
2220411644
fix new cert issuing is incorrectly delayed
4 years ago
hmol233
3b8618b379
Fix linkname
4 years ago
hmol233
e8a8465220
Fix reject unknown sni with single cert
4 years ago
hmol233
1f92b948c0
Fix errNoCertificates
4 years ago
hmol233
53b99efe78
Add: reject unknown SNI
...
Co-Authored-By: 玖柒Max <60207794+jiuqi9997@users.noreply.github.com>
4 years ago
Bhoppi Chaw
bf94fb53ca
Fix QUIC disconnecting issue ( #475 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
4 years ago
lucifer
1d13a8da49
fix grpc dial ipv6 address ( #476 )
4 years ago
RPRX
4bf8b6d89c
Fix uTLS fingerprints support
...
Thank @HirbodBehnam https://github.com/XTLS/Xray-core/issues/461
4 years ago
秋のかえで
7f2fad73d4
Chore: Upgrade dependencies ( #432 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
4 years ago
Jim Han
3ed14c2fcd
Fix: gRPC & HTTP/2 dialer ( #445 )
4 years ago
risetechlab
b63049f404
Fix: TFO AsIs bug ( #452 )
4 years ago
RPRX
a9e11075d1
Add uTLS fingerprints support ( #451 )
4 years ago
Jim Han
e564d9ef7e
Fix: TCP & WS override AcceptProxyProtocol ( #425 )
4 years ago
RPRX
e0910ab4d9
Update dialer.html
4 years ago
RPRX
d46af8b5d4
Add WSS Browser Dialer support ( #421 )
4 years ago
Jim Han
0470381fe2
Fix: gRPC multi accepting empty bytes ( #411 )
4 years ago
maskedeken
36961ed882
Add remote addr to gRPC transport layer conn ( #382 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
4 years ago
RPRX
a0a32ee00d
Add gRPC Transport support ( #356 )
...
Co-authored-by: JimhHan <50871214+JimhHan@users.noreply.github.com>
4 years ago
RPRX
60b06877bf
Add WebSocket 0-RTT support ( #375 )
4 years ago
RPRX
819717d278
Fix https://github.com/XTLS/Xray-core/issues/366
4 years ago
Jim Han
d7cd71b741
Resolve conflicting changes in DNS #309 #341 ( #346 )
...
Co-authored-by: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
4 years ago
Jim Han
db32ce6fd9
Enhance DNS and Dialer ( #341 )
4 years ago
risetechlab
ad1807dd99
Enhance TCP Fast Open ( #310 )
4 years ago
Jim Han
7fb1f65354
Fix https://github.com/XTLS/Xray-core/issues/289 ( #300 )
4 years ago
RPRX
8b9c0ae593
Enable (X)TLS hot reloading by default ( #281 )
...
Super BiuBiu
4 years ago
秋のかえで
347d9735da
Remove (x)tls.WithNextProto("h2") in tcp/hub.go ( #260 )
4 years ago
eMeab
81d993158f
Support hot reloading of certificate and key files ( #225 )
4 years ago
eMeab
c13b8ec9bb
Fix OCSP Stapling ( #172 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
4 years ago
Arthur Morgan
ba41513967
Changes from v2fly-core ( #173 )
4 years ago
RPRX
7df135a5c4
Disable session resumption by default
...
https://github.com/v2fly/v2ray-core/issues/557#issuecomment-751962569
4 years ago
RPRX
13ad3fddf6
Refactor: *net.UDPAddr -> *net.Destination
...
https://t.me/projectXray/111998
4 years ago
RPRX
6bcac6cb10
Move common/net/connection.go into cnc folder
4 years ago
RPRX
a78db47571
Adjust OCSP Stapling
4 years ago
eMeab
3d7e86efba
Add OCSP Stapling for TLS & XTLS ( #92 )
4 years ago
Arthur Morgan
6f25191822
Changes from v2ray-core ( #93 )
4 years ago
RPRX
8f8f7dd66f
Refactor: Shadowsocks & Trojan UDP FullCone NAT
...
https://t.me/projectXray/95704
4 years ago