yuhan6665
d83ccaeea9
Clean up legacy compile directive
2024-02-06 21:17:21 -05:00
nobody
d20a835016
Fix concurrent map writes error in ohm.Select(). ( #2943 )
...
* Add unit test for ohm.tagsCache.
* Fix concurrent map writes in ohm.Select().
---------
Co-authored-by: nobody <nobody@nowhere.mars>
2024-01-16 10:52:01 -05:00
nobody
7f7f57d3b6
Add tags cache to app.proxyman.ohm.Select() ( #2927 )
...
* Add tags cache to ohm.Select().
* Refactor round-robin.
* Fix a bug.
---------
Co-authored-by: nobody <nobody@nowhere.mars>
2024-01-12 10:36:48 -05:00
Hossin Asaadi
81f9f567ff
sort Outbound selector output ( #2914 )
...
* clean code
* sort oubound selector output
* clean up
* fix duplicate outbound
2024-01-10 11:26:27 -05:00
hossinasaadi
9a2ab9b6a3
fix roundRobin
2024-01-07 14:27:37 -05:00
dop-bot
60f7a03e1b
fix(dns): avoid early return when dns query refused ( #2878 )
...
* avoid early return when dns query refused
* address reviews
2024-01-01 23:03:36 -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
yuhan6665
d60281d0a5
Add DestIpAddress() in Dialer interface
...
Android client prepares an IP before proxy connection is established. It is useful when connecting to wireguard (or quic) outbound with domain address. E.g. engage.cloudflareclient.com:2408
2023-12-18 18:36:56 -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
cty123
4f6042c69f
feat(dns): Support DNS queryStrategy config per NameServer.
2023-09-22 10:34:36 -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
dyhkwong
7264750e28
fix typo in default.go
2023-09-07 12:28:55 -04:00
dyhkwong
b8bd243df5
Fix buffer.UDP destination override ( #2356 )
2023-08-29 07:12:36 +00:00
cty
b24a4028f1
fix(app/router): fixed a bug in geoip matching with refactoring ( #2489 )
...
* Refactor the IP address matching with netipx library
* Add a regression test for previous bug
Fixes https://github.com/XTLS/Xray-core/issues/1933
---------
Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2023-08-26 15:11:37 +00:00
hax0r31337
f67167bb3b
refactor(deps): replace github.com/golang/protobuf with google.golang.org/protobuf
2023-08-10 10:43:27 -04:00
cty123
7aeca33729
fix: revert previous change on IsValid() function; add validation in getUoTConnection();
2023-07-19 15:53:01 -04:00
yuhan6665
a6c5c57930
Support regex matching with attr ( #2258 )
...
* Support regex matching with attr
* Add test case
* Optimizing regex parsing at core start
* simpliy
2023-06-27 08:04:09 +00:00
RPRX
ee21763928
Run "go fmt ./..."
2023-06-18 09:46:57 -04:00
RPRX
62e881b01a
5*60 -> 2*60
2023-06-18 15:33:30 +00:00
yuhan6665
bf4b1fab3c
Simplify http attrabute matching
...
In the past, we use Starlark script, it is over engineered and barely used.
By switching to simple key value string contains logic we can reduce core size about 0.7MB
2023-06-12 10:25:45 -04:00
yuhan6665
d11d72be6c
Update proto file and fix protoc version parsing
...
The new protoc cli return version v23.1,
so we parse the file version v4.23.1 without "4."
2023-06-11 13:36:06 -04:00
yuhan6665
a4e80f01e4
Add tls serverName to DoQ
2023-06-04 08:45:38 -04:00
dependabot[bot]
86b4b81f1d
Bump github.com/quic-go/quic-go from 0.34.0 to 0.35.1
...
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go ) from 0.34.0 to 0.35.1.
- [Release notes](https://github.com/quic-go/quic-go/releases )
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md )
- [Commits](https://github.com/quic-go/quic-go/compare/v0.34.0...v0.35.1 )
---
updated-dependencies:
- dependency-name: github.com/quic-go/quic-go
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-01 18:23:56 -04:00
Zeyu Chen
bfd5da2f00
fix: dns empty response
2023-05-01 10:19:50 -04:00
世界
18e5b0963f
Update dependencies
2023-04-23 19:32:07 +08:00
RPRX
06c9e50c52
Add "xudpProxyUDP443" to Mux config & XUDP rejects UDP/443 traffic by default (client side, excluding reverse proxy)
2023-04-14 22:51:18 +00:00
RPRX
24a2be43ef
Replace "only" with "xudpConcurrency" in Mux config
2023-04-10 10:36:07 +08:00
RPRX
29d7865d78
Refine "only" in Mux config
2023-04-10 10:15:16 +08:00
RPRX
be23d5d3b7
XUDP protocol: Add Global ID & UoT Migration
...
The first UoT protocol that supports UoT Migration
Thank @yuhan6665 for testing
2023-04-06 10:21:35 +00:00
世界
f57ec13880
Update UoT protocol
2023-03-17 13:17:08 +08:00
RPRX
f176ec54ee
v1.7.3
2023-02-02 05:50:21 +00:00
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
2023-01-30 04:35:30 +00:00
yuhan6665
c4fbdf1b78
Run core/format.go
2022-12-25 19:47:53 -05:00
yuhan6665
8117b66949
Generate all protos
2022-10-10 13:17:32 -04:00
yuhan6665
debd2e3ba8
Remove compatibility code
...
The minimum support go version is already 1.18
2022-09-16 20:39:07 -04:00
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 提交
2022-08-22 10:33:58 -04:00
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>
2022-08-20 09:02:18 -04:00
yuhan6665
5e323958b6
Unify dns log
2022-07-24 23:54:58 -04:00
世界
c3505632fd
Add udp over tcp support for shadowsocks-2022
2022-06-01 11:49:02 +08:00
世界
6f93ef7736
Remove useless error log
2022-06-01 11:11:53 +08:00
世界
398375d76f
Reformat code (quic sniffers)
2022-05-24 06:57:16 +08:00
yuhan6665
3f64f3206c
Quic sniffer ( #1074 )
...
* Add quic sniffer
* Fix quic sniffer
* Add uTP sniffer
* rename buf pool membership status to unmanaged
* rename buf type adaptor into FromBytes
Co-authored-by: 世界 <i@sekai.icu>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2022-05-22 23:48:10 -04:00
世界
f046feb9ca
Reformat code
2022-05-18 15:29:01 +08:00
pocketW
dcba88e511
fix fakedns is nil
2022-04-30 11:21:23 -04:00
pocketW
244db57398
fix proto file name conflict by adding package name
2022-04-28 22:45:04 -04:00
pocketW
3bfd6853f4
Fix memory leak caused by requiring component.
2022-04-28 10:46:56 -04:00
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>
2022-04-23 19:24:46 -04:00
yuhan6665
4fb4dacae7
Reapply optimized log
2022-04-15 18:42:17 -04:00
yuhan6665
393d211d1e
Rename quic session to connection
...
Co-authored-by: 秋のかえで <autmaple@protonmail.com>
2022-04-09 00:48:02 -04:00
yichya
755268b7d4
fix: expvar error when observatory is not enabled & various typos
2022-04-01 11:05:38 -04:00
yichya
35eb165f63
feat: metrics including pprof, expvars
2022-03-29 00:01:14 -04:00
yuhan6665
c1a54ae58e
Fix a concurrency issue in fakedns
...
In rare cases different domains asking for dns will return the same IP. Add a mutex.
2022-03-12 10:54:59 -05:00
yuhan6665
496b2c02c5
Fix context api and document ( #727 )
...
* Fix Dial function crash instance when there is no instance context in the ctx
* check ctx to fix. (#841 )
* Feat: core.ToContext(ctx, v) for ctx initialization (#852 )
* remove exported API: toContext
* Remove unnecessary API
* rework document for API
* fix: make sure the ctx is propagated to connections by detached connection
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: rurirei <72071920+rurirei@users.noreply.github.com>
2022-02-19 22:45:41 -05:00
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
2022-02-04 21:59:50 -05:00
Machtergreifung
9ad26fa049
chore fixed ( #897 )
...
* chore fixed
2022-01-12 21:51:47 -05:00
Machtergreifung
800b3bd3fe
chore fixed ( #895 )
...
* chore fixed
2022-01-10 23:39:58 -05: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
7c240e8630
Fix null pointer exception for observatory
...
Core setup router object first, when InjectContext() is called, observatory object is still null,
so observatory need to be injected after InjectContext()
2021-11-20 00:48:02 -05:00
lucifer9
d6ae4e9ba2
Make it easier to configure multiple listening ports
2021-11-17 23:13:15 -05:00
Zhu Sheng Li
28b17b529d
Add concurrency option for outbound observation
...
Add `enableConcurrency` option, false by default.
If it's set as `true`, start probing outbounds concurrently in every
circle of observation. Wait `probeInterval` between observation circles.
2021-10-26 13:09:03 +08:00
yuhan6665
abb8ba8b0e
Observatory related fixes ( #788 )
...
* fix:observatory not supported by multi-json
* Fix: observatory starts with empty config & fails to close (#957 )
* Update strategy_leastping.go (#1019 )
* add custom probe URL support for observatory
* add custom probe interval for observer
* apply coding style
* Fix: observatory log & JSON config(#1211 )
Co-authored-by: ihotte <ihotte@yeah.net>
* Change default probe url from api.v2fly.org to www.google.com
* Cherry-pick missing code from branch 'dev-advloadblancer-2'
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
Co-authored-by: fanyiguan <52657276+fanyiguang@users.noreply.github.com>
Co-authored-by: ihotte <3087168217@qq.com>
Co-authored-by: ihotte <ihotte@yeah.net>
2021-10-26 13:00:31 +08:00
世界
5c366db847
Add observatory / latestPing balancing strategy
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-22 17:16:20 +08:00
Loyalsoldier
3fe61ed4a2
Feat: add reverse match for GeoIP
...
(cherry picked from commit 3a50affa0a7316a9ad249f1b2b2996cb88948551)
2021-10-22 13:06:57 +08:00
yuhan6665
0f0a424e8c
Fix: use sorted cidr list ( #1156 ) ( #773 )
...
Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-10-22 12:38:40 +08:00
Ovear
3c7189a3e7
Fix: Remove udp connection twice
2021-10-22 12:38:40 +08:00
世界
27224868ab
Override destination if replaced in hosts
2021-10-22 12:38:40 +08:00
世界
50e576081e
Add DispatchLink
2021-10-22 12:38:40 +08:00
世界
a3023e43ef
Add routeOnly sniffing option
2021-10-22 11:57:23 +08:00
yuhan6665
76a3f24169
fix concurrent access crash for handler creator ( #772 )
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
2021-10-20 19:30:34 +08:00
yuhan6665
6b6974c804
Fakedns improvements ( #731 )
...
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: sixg0000d <sixg0000d@gmail.com>
Co-authored-by: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-10-20 13:15:49 +08:00
yuhan6665
e286cdcaa8
Style: format code by gofumpt ( #761 )
2021-10-20 00:57:14 +08:00
Arthur Morgan
500c6de359
adjust
2021-10-20 00:52:49 +08:00
世界
cd4631ce99
Merge dns ( #722 )
...
* DNS: add clientip for specific nameserver
* Refactoring: DNS App
* DNS: add DNS over QUIC support
* Feat: add disableCache option for DNS
* Feat: add queryStrategy option for DNS
* Feat: add disableFallback & skipFallback option for DNS
* Feat: DNS hosts support multiple addresses
* Feat: DNS transport over TCP
* DNS: fix typo & refine code
* DNS: refine code
* Add disableFallbackIfMatch dns option
* Feat: routing and freedom outbound ignore Fake DNS
Turn off fake DNS for request sent from Routing and Freedom outbound.
Fake DNS now only apply to DNS outbound.
This is important for Android, where VPN service take over all system DNS
traffic and pass it to core. "UseIp" option can be used in Freedom outbound
to avoid getting fake IP and fail connection.
* Fix test
* Fix dns return
* Fix local dns return empty
* Apply timeout to dns outbound
* Update app/dns/config.go
Co-authored-by: Loyalsoldier <10487845+loyalsoldier@users.noreply.github.com>
Co-authored-by: Ye Zhihao <vigilans@foxmail.com>
Co-authored-by: maskedeken <52683904+maskedeken@users.noreply.github.com>
Co-authored-by: V2Fly Team <51714622+vcptr@users.noreply.github.com>
Co-authored-by: CalmLong <37164399+calmlong@users.noreply.github.com>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: 秋のかえで <autmaple@protonmail.com>
Co-authored-by: 朱聖黎 <digglife@gmail.com>
Co-authored-by: rurirei <72071920+rurirei@users.noreply.github.com>
Co-authored-by: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Co-authored-by: Arthur Morgan <4637240+badO1a5A90@users.noreply.github.com>
2021-10-16 21:02:51 +08:00
Arthur Morgan
575c7a9687
adjust
2021-10-13 00:49:31 +08:00
Arthur Morgan
bad397bf22
fix typo
2021-10-13 00:49:05 +08:00
yuhan6665
e50f2af418
Fix flaky TestServiceSubscribeRoutingStats ( #750 )
2021-10-12 15:29:56 +00:00
KallyDev
4abf98c1be
Move from deprecated ioutil to os and io packages ( #744 )
2021-09-29 02:49:34 +08:00
hmol233
7033f7cf5f
Fix: protobuf file ( #724 )
2021-09-20 22:41:09 +08:00
Arthur Morgan
ffc2f7c4e2
Style: format code
2021-09-20 21:00:55 +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
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>
2021-09-18 01:16:14 +08:00
hmol233
86a8fb5d84
Move DomainStrategy
& DialerProxy
to DialSystem
...
Fix https://github.com/XTLS/Xray-core/issues/608
2021-06-18 19:28:02 +08:00
秋のかえで
7b7084f825
Refactor: A faster DomainMatcher implementation ( #348 )
...
Co-authored-by: DarthVader <61409963+darsvador@users.noreply.github.com>
2021-04-18 13:21:17 +08:00
JimhHan
de54d4b08f
Fix: sniffer call IP() on a DomainAddress
2021-03-17 23:29:06 +08:00
JimhHan
32713bcc0e
Fix: Context without proper session
...
close https://github.com/XTLS/Xray-core/issues/383
2021-03-17 23:27:42 +08:00
Jim Han
3fe85449a9
Use 198.18.0.0/16 as default Fake IP Pool ( #377 )
2021-03-14 15:58:27 +00:00
Jim Han
e0526c27b3
Removal: confonly ( #368 )
2021-03-14 15:05:08 +00:00
RPRX
439c91d509
Update fakedns_test.go
2021-03-10 14:55:51 +00:00
Jim Han
d7cd71b741
Resolve conflicting changes in DNS #309 #341 ( #346 )
...
Co-authored-by: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
2021-03-07 07:12:50 +00:00
yuhan6665
f50eff5ebb
Add Fake DNS support ( #309 )
...
Co-authored-by: Xiaokang Wang <xiaokangwang@outlook.com>
Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
Co-authored-by: kslr <kslrwang@gmail.com>
2021-03-07 04:39:50 +00:00
Jim Han
db32ce6fd9
Enhance DNS and Dialer ( #341 )
2021-03-06 16:29:17 +00:00
kokeri
ca633fc8c5
Chore: Add GitHub Actions ( #251 )
...
Co-authored-by: xinb <netwhilt@outlook.com>
Co-authored-by: 秋のかえで <autmaple@protonmail.com>
Co-authored-by: Jim Han <50871214+JimhHan@users.noreply.github.com>
2021-03-02 22:46:50 +08:00
Xray9
c345d4818e
Fix available mux picker in reverse portal ( #274 )
2021-03-01 07:26:53 +00:00
Jim Han
9aa49be703
Restrict tag to be unique ( #258 )
2021-02-18 09:53:10 +00:00
Jim Han
4cd343f2d5
Fix tests ( #201 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-01-30 13:01:20 +00:00
Arthur Morgan
5aa053a65f
Convert domain names to lowercase before matching ( #195 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-01-21 23:37:55 +00:00
秋のかえで
0b4858d016
Feature: Exclude some domains in sniffing destOverride ( #151 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-01-21 20:50:09 +00:00
Jim Han
7f5e34c857
Regenerate .pb.go files ( #187 )
...
Co-authored-by: RPRX <63339210+rprx@users.noreply.github.com>
2021-01-21 18:58:19 +00:00
eMeab
638e8384b6
Optimized log ( #167 )
2021-01-14 14:45:23 +00:00
Arthur Morgan
11a851f957
Fix non-local DoH requests & Apply routing ( #147 )
2021-01-13 07:53:08 +00:00