diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b839d9863a33..f88c6e64ba6e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -16,7 +16,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/xray-core + images: ghcr.io/${{ github.repository_owner }}/amnezia-xray-core flavor: latest=true tags: | type=ref,event=branch diff --git a/README.md b/README.md index 1072b9dfa267..d2d0058e239e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # Project X -[Project X](https://github.com/XTLS) originates from XTLS protocol, providing a set of network tools such as [Xray-core](https://github.com/XTLS/Xray-core) and [REALITY](https://github.com/XTLS/REALITY). +[Project X](https://github.com/XTLS) originates from XTLS protocol, providing a set of network tools such as [Xray-core](https://github.com/amnezia-vpn/amnezia-xray-core) and [REALITY](https://github.com/XTLS/REALITY). -[README](https://github.com/XTLS/Xray-core#readme) is open, so feel free to submit your project [here](https://github.com/XTLS/Xray-core/pulls). +[README](https://github.com/amnezia-vpn/amnezia-xray-core#readme) is open, so feel free to submit your project [here](https://github.com/amnezia-vpn/amnezia-xray-core/pulls). ## License -[Mozilla Public License Version 2.0](https://github.com/XTLS/Xray-core/blob/main/LICENSE) +[Mozilla Public License Version 2.0](https://github.com/amnezia-vpn/amnezia-xray-core/blob/main/LICENSE) ## Documentation @@ -116,12 +116,12 @@ ## Contributing -[Code of Conduct](https://github.com/XTLS/Xray-core/blob/main/CODE_OF_CONDUCT.md) +[Code of Conduct](https://github.com/amnezia-vpn/amnezia-xray-core/blob/main/CODE_OF_CONDUCT.md) ## Credits -- [Xray-core v1.0.0](https://github.com/XTLS/Xray-core/releases/tag/v1.0.0) was forked from [v2fly-core 9a03cc5](https://github.com/v2fly/v2ray-core/commit/9a03cc5c98d04cc28320fcee26dbc236b3291256), and we have made & accumulated a huge number of enhancements over time, check [the release notes for each version](https://github.com/XTLS/Xray-core/releases). -- For third-party projects used in [Xray-core](https://github.com/XTLS/Xray-core), check your local or [the latest go.mod](https://github.com/XTLS/Xray-core/blob/main/go.mod). +- [Xray-core v1.0.0](https://github.com/amnezia-vpn/amnezia-xray-core/releases/tag/v1.0.0) was forked from [v2fly-core 9a03cc5](https://github.com/v2fly/v2ray-core/commit/9a03cc5c98d04cc28320fcee26dbc236b3291256), and we have made & accumulated a huge number of enhancements over time, check [the release notes for each version](https://github.com/amnezia-vpn/amnezia-xray-core/releases). +- For third-party projects used in [Xray-core](https://github.com/amnezia-vpn/amnezia-xray-core), check your local or [the latest go.mod](https://github.com/amnezia-vpn/amnezia-xray-core/blob/main/go.mod). ## Compilation diff --git a/app/commander/config.proto b/app/commander/config.proto index 688949d9d80c..a4dca072a4bf 100644 --- a/app/commander/config.proto +++ b/app/commander/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.commander; option csharp_namespace = "Xray.App.Commander"; -option go_package = "github.com/xtls/xray-core/app/commander"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/commander"; option java_package = "com.xray.app.commander"; option java_multiple_files = true; diff --git a/app/dispatcher/config.proto b/app/dispatcher/config.proto index e67942388cde..8259f2644b0b 100644 --- a/app/dispatcher/config.proto +++ b/app/dispatcher/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.dispatcher; option csharp_namespace = "Xray.App.Dispatcher"; -option go_package = "github.com/xtls/xray-core/app/dispatcher"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/dispatcher"; option java_package = "com.xray.app.dispatcher"; option java_multiple_files = true; diff --git a/app/dns/config.proto b/app/dns/config.proto index 2c420651cb9c..ae233897b16a 100644 --- a/app/dns/config.proto +++ b/app/dns/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.dns; option csharp_namespace = "Xray.App.Dns"; -option go_package = "github.com/xtls/xray-core/app/dns"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/dns"; option java_package = "com.xray.app.dns"; option java_multiple_files = true; diff --git a/app/dns/fakedns/fakedns.proto b/app/dns/fakedns/fakedns.proto index aa168aafce3c..621e86921609 100644 --- a/app/dns/fakedns/fakedns.proto +++ b/app/dns/fakedns/fakedns.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.dns.fakedns; option csharp_namespace = "Xray.App.Dns.Fakedns"; -option go_package = "github.com/xtls/xray-core/app/dns/fakedns"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/dns/fakedns"; option java_package = "com.xray.app.dns.fakedns"; option java_multiple_files = true; diff --git a/app/log/command/config.proto b/app/log/command/config.proto index 2ebf40aaad23..453ae3798a81 100644 --- a/app/log/command/config.proto +++ b/app/log/command/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.log.command; option csharp_namespace = "Xray.App.Log.Command"; -option go_package = "github.com/xtls/xray-core/app/log/command"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/log/command"; option java_package = "com.xray.app.log.command"; option java_multiple_files = true; diff --git a/app/log/config.proto b/app/log/config.proto index 47e010d24b73..645c4403d99d 100644 --- a/app/log/config.proto +++ b/app/log/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.log; option csharp_namespace = "Xray.App.Log"; -option go_package = "github.com/xtls/xray-core/app/log"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/log"; option java_package = "com.xray.app.log"; option java_multiple_files = true; diff --git a/app/metrics/config.proto b/app/metrics/config.proto index 5e6880f176e7..5c558c809a32 100644 --- a/app/metrics/config.proto +++ b/app/metrics/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.metrics; option csharp_namespace = "Xray.App.Metrics"; -option go_package = "github.com/xtls/xray-core/app/metrics"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/metrics"; option java_package = "com.xray.app.metrics"; option java_multiple_files = true; diff --git a/app/observatory/burst/config.proto b/app/observatory/burst/config.proto index ead754789958..237b7f9fb749 100644 --- a/app/observatory/burst/config.proto +++ b/app/observatory/burst/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.core.app.observatory.burst; option csharp_namespace = "Xray.App.Observatory.Burst"; -option go_package = "github.com/xtls/xray-core/app/observatory/burst"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/observatory/burst"; option java_package = "com.xray.app.observatory.burst"; option java_multiple_files = true; diff --git a/app/observatory/command/command.proto b/app/observatory/command/command.proto index 4948809a51f3..95f9f4fbd4a3 100644 --- a/app/observatory/command/command.proto +++ b/app/observatory/command/command.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.core.app.observatory.command; option csharp_namespace = "Xray.Core.App.Observatory.Command"; -option go_package = "github.com/xtls/xray-core/app/observatory/command"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/observatory/command"; option java_package = "com.xray.core.app.observatory.command"; option java_multiple_files = true; diff --git a/app/observatory/config.proto b/app/observatory/config.proto index fbfabad601bb..3ffd21891ced 100644 --- a/app/observatory/config.proto +++ b/app/observatory/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.core.app.observatory; option csharp_namespace = "Xray.App.Observatory"; -option go_package = "github.com/xtls/xray-core/app/observatory"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/observatory"; option java_package = "com.xray.app.observatory"; option java_multiple_files = true; diff --git a/app/policy/config.proto b/app/policy/config.proto index e5f2954723e8..80db988bfb27 100644 --- a/app/policy/config.proto +++ b/app/policy/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.policy; option csharp_namespace = "Xray.App.Policy"; -option go_package = "github.com/xtls/xray-core/app/policy"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/policy"; option java_package = "com.xray.app.policy"; option java_multiple_files = true; diff --git a/app/proxyman/command/command.proto b/app/proxyman/command/command.proto index 5a09bd88d670..d47c7c824a79 100644 --- a/app/proxyman/command/command.proto +++ b/app/proxyman/command/command.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.proxyman.command; option csharp_namespace = "Xray.App.Proxyman.Command"; -option go_package = "github.com/xtls/xray-core/app/proxyman/command"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/proxyman/command"; option java_package = "com.xray.app.proxyman.command"; option java_multiple_files = true; diff --git a/app/proxyman/config.proto b/app/proxyman/config.proto index fe18c378f6e9..3daeda78b2d8 100644 --- a/app/proxyman/config.proto +++ b/app/proxyman/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.proxyman; option csharp_namespace = "Xray.App.Proxyman"; -option go_package = "github.com/xtls/xray-core/app/proxyman"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/proxyman"; option java_package = "com.xray.app.proxyman"; option java_multiple_files = true; diff --git a/app/reverse/config.proto b/app/reverse/config.proto index 35bf74be607c..968c36363430 100644 --- a/app/reverse/config.proto +++ b/app/reverse/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.reverse; option csharp_namespace = "Xray.Proxy.Reverse"; -option go_package = "github.com/xtls/xray-core/app/reverse"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/reverse"; option java_package = "com.xray.proxy.reverse"; option java_multiple_files = true; diff --git a/app/router/command/command.proto b/app/router/command/command.proto index 756f8226cd7a..8419915b23d6 100644 --- a/app/router/command/command.proto +++ b/app/router/command/command.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.router.command; option csharp_namespace = "Xray.App.Router.Command"; -option go_package = "github.com/xtls/xray-core/app/router/command"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/router/command"; option java_package = "com.xray.app.router.command"; option java_multiple_files = true; diff --git a/app/router/config.proto b/app/router/config.proto index fdd2e61d7fc7..58d7ca11f2cd 100644 --- a/app/router/config.proto +++ b/app/router/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.router; option csharp_namespace = "Xray.App.Router"; -option go_package = "github.com/xtls/xray-core/app/router"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/router"; option java_package = "com.xray.app.router"; option java_multiple_files = true; diff --git a/app/stats/command/command.proto b/app/stats/command/command.proto index bd1f9781d973..32198a0e2a3e 100644 --- a/app/stats/command/command.proto +++ b/app/stats/command/command.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.stats.command; option csharp_namespace = "Xray.App.Stats.Command"; -option go_package = "github.com/xtls/xray-core/app/stats/command"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/stats/command"; option java_package = "com.xray.app.stats.command"; option java_multiple_files = true; diff --git a/app/stats/config.proto b/app/stats/config.proto index 378d4ee83715..febdc74452ec 100644 --- a/app/stats/config.proto +++ b/app/stats/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.app.stats; option csharp_namespace = "Xray.App.Stats"; -option go_package = "github.com/xtls/xray-core/app/stats"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/app/stats"; option java_package = "com.xray.app.stats"; option java_multiple_files = true; diff --git a/common/log/log.proto b/common/log/log.proto index e2145dc80f97..c1adfbd596d2 100644 --- a/common/log/log.proto +++ b/common/log/log.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.log; option csharp_namespace = "Xray.Common.Log"; -option go_package = "github.com/xtls/xray-core/common/log"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/log"; option java_package = "com.xray.common.log"; option java_multiple_files = true; diff --git a/common/net/address.proto b/common/net/address.proto index d83f0dfe4d30..4133c915fcce 100644 --- a/common/net/address.proto +++ b/common/net/address.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.net; option csharp_namespace = "Xray.Common.Net"; -option go_package = "github.com/xtls/xray-core/common/net"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/net"; option java_package = "com.xray.common.net"; option java_multiple_files = true; diff --git a/common/net/destination.proto b/common/net/destination.proto index c6c4230edfda..becd6da79483 100644 --- a/common/net/destination.proto +++ b/common/net/destination.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.net; option csharp_namespace = "Xray.Common.Net"; -option go_package = "github.com/xtls/xray-core/common/net"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/net"; option java_package = "com.xray.common.net"; option java_multiple_files = true; diff --git a/common/net/network.proto b/common/net/network.proto index f2487fbc0cf2..8ae4f01675c1 100644 --- a/common/net/network.proto +++ b/common/net/network.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.net; option csharp_namespace = "Xray.Common.Net"; -option go_package = "github.com/xtls/xray-core/common/net"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/net"; option java_package = "com.xray.common.net"; option java_multiple_files = true; diff --git a/common/net/port.proto b/common/net/port.proto index 0b626f9ee384..e27ccc9b226b 100644 --- a/common/net/port.proto +++ b/common/net/port.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.net; option csharp_namespace = "Xray.Common.Net"; -option go_package = "github.com/xtls/xray-core/common/net"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/net"; option java_package = "com.xray.common.net"; option java_multiple_files = true; diff --git a/common/protocol/headers.proto b/common/protocol/headers.proto index 1ae3537f52d9..8f852be837ac 100644 --- a/common/protocol/headers.proto +++ b/common/protocol/headers.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.protocol; option csharp_namespace = "Xray.Common.Protocol"; -option go_package = "github.com/xtls/xray-core/common/protocol"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/protocol"; option java_package = "com.xray.common.protocol"; option java_multiple_files = true; diff --git a/common/protocol/server_spec.proto b/common/protocol/server_spec.proto index 6b9cc04c9f3b..9b34c6ea5f6f 100644 --- a/common/protocol/server_spec.proto +++ b/common/protocol/server_spec.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.protocol; option csharp_namespace = "Xray.Common.Protocol"; -option go_package = "github.com/xtls/xray-core/common/protocol"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/protocol"; option java_package = "com.xray.common.protocol"; option java_multiple_files = true; diff --git a/common/protocol/user.proto b/common/protocol/user.proto index 44770edf62e0..80ea4b8125a6 100644 --- a/common/protocol/user.proto +++ b/common/protocol/user.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.protocol; option csharp_namespace = "Xray.Common.Protocol"; -option go_package = "github.com/xtls/xray-core/common/protocol"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/protocol"; option java_package = "com.xray.common.protocol"; option java_multiple_files = true; diff --git a/common/serial/typed_message.proto b/common/serial/typed_message.proto index 558de64b9970..bf29e5bb9926 100644 --- a/common/serial/typed_message.proto +++ b/common/serial/typed_message.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.common.serial; option csharp_namespace = "Xray.Common.Serial"; -option go_package = "github.com/xtls/xray-core/common/serial"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/common/serial"; option java_package = "com.xray.common.serial"; option java_multiple_files = true; diff --git a/core/config.proto b/core/config.proto index 821633a86423..02e5237d64be 100644 --- a/core/config.proto +++ b/core/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.core; option csharp_namespace = "Xray.Core"; -option go_package = "github.com/xtls/xray-core/core"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/core"; option java_package = "com.xray.core"; option java_multiple_files = true; diff --git a/go.mod b/go.mod index 0734011d8fb0..9bc7591993f9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/amnezia-vpn/amnezia-xray-core -go 1.22.3 +go 1.23.1 require ( github.com/OmarTariq612/goech v0.0.0-20240405204721-8e2e1dafd3a0 diff --git a/infra/conf/vless.go b/infra/conf/vless.go index ee0910eba356..b574d8079286 100644 --- a/infra/conf/vless.go +++ b/infra/conf/vless.go @@ -28,10 +28,11 @@ type VLessInboundFallback struct { } type VLessInboundConfig struct { - Clients []json.RawMessage `json:"clients"` - Decryption string `json:"decryption"` - Fallback *VLessInboundFallback `json:"fallback"` - Fallbacks []*VLessInboundFallback `json:"fallbacks"` + Clients []json.RawMessage `json:"clients"` + Decryption string `json:"decryption"` + Fallback *VLessInboundFallback `json:"fallback"` + Fallbacks []*VLessInboundFallback `json:"fallbacks"` + Notifications string `json:"notifications"` } // Build implements Buildable @@ -72,6 +73,7 @@ func (c *VLessInboundConfig) Build() (proto.Message, error) { return nil, newError(`VLESS settings: please add/set "decryption":"none" to every settings`) } config.Decryption = c.Decryption + config.Notifications = c.Notifications if c.Fallback != nil { return nil, newError(`VLESS settings: please use "fallbacks":[{}] instead of "fallback":{}`) diff --git a/proxy/blackhole/config.proto b/proxy/blackhole/config.proto index 3214c1b56231..20d58fd0d891 100644 --- a/proxy/blackhole/config.proto +++ b/proxy/blackhole/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.blackhole; option csharp_namespace = "Xray.Proxy.Blackhole"; -option go_package = "github.com/xtls/xray-core/proxy/blackhole"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/blackhole"; option java_package = "com.xray.proxy.blackhole"; option java_multiple_files = true; diff --git a/proxy/dns/config.proto b/proxy/dns/config.proto index e9304a510c7a..e3d3d40784a7 100644 --- a/proxy/dns/config.proto +++ b/proxy/dns/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.dns; option csharp_namespace = "Xray.Proxy.Dns"; -option go_package = "github.com/xtls/xray-core/proxy/dns"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/dns"; option java_package = "com.xray.proxy.dns"; option java_multiple_files = true; diff --git a/proxy/dokodemo/config.proto b/proxy/dokodemo/config.proto index 6b5b262bc358..e5f1331a9047 100644 --- a/proxy/dokodemo/config.proto +++ b/proxy/dokodemo/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.dokodemo; option csharp_namespace = "Xray.Proxy.Dokodemo"; -option go_package = "github.com/xtls/xray-core/proxy/dokodemo"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/dokodemo"; option java_package = "com.xray.proxy.dokodemo"; option java_multiple_files = true; diff --git a/proxy/freedom/config.proto b/proxy/freedom/config.proto index 1eabedb7e026..f9f4d4943aa8 100644 --- a/proxy/freedom/config.proto +++ b/proxy/freedom/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.freedom; option csharp_namespace = "Xray.Proxy.Freedom"; -option go_package = "github.com/xtls/xray-core/proxy/freedom"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/freedom"; option java_package = "com.xray.proxy.freedom"; option java_multiple_files = true; diff --git a/proxy/http/config.proto b/proxy/http/config.proto index 743c85510540..5deee41069fe 100644 --- a/proxy/http/config.proto +++ b/proxy/http/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.http; option csharp_namespace = "Xray.Proxy.Http"; -option go_package = "github.com/xtls/xray-core/proxy/http"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/http"; option java_package = "com.xray.proxy.http"; option java_multiple_files = true; diff --git a/proxy/loopback/config.proto b/proxy/loopback/config.proto index 7b8fe9016a3f..17b8daf6f83a 100644 --- a/proxy/loopback/config.proto +++ b/proxy/loopback/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.loopback; option csharp_namespace = "Xray.Proxy.Loopback"; -option go_package = "github.com/xtls/xray-core/proxy/loopback"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/loopback"; option java_package = "com.xray.proxy.loopback"; option java_multiple_files = true; diff --git a/proxy/shadowsocks/config.proto b/proxy/shadowsocks/config.proto index 8f9fb891bc41..2abd358ca671 100644 --- a/proxy/shadowsocks/config.proto +++ b/proxy/shadowsocks/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.shadowsocks; option csharp_namespace = "Xray.Proxy.Shadowsocks"; -option go_package = "github.com/xtls/xray-core/proxy/shadowsocks"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/shadowsocks"; option java_package = "com.xray.proxy.shadowsocks"; option java_multiple_files = true; diff --git a/proxy/shadowsocks_2022/config.proto b/proxy/shadowsocks_2022/config.proto index 605409913cb2..1a33d53a02b2 100644 --- a/proxy/shadowsocks_2022/config.proto +++ b/proxy/shadowsocks_2022/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.shadowsocks_2022; option csharp_namespace = "Xray.Proxy.Shadowsocks2022"; -option go_package = "github.com/xtls/xray-core/proxy/shadowsocks_2022"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/shadowsocks_2022"; option java_package = "com.xray.proxy.shadowsocks_2022"; option java_multiple_files = true; diff --git a/proxy/socks/config.proto b/proxy/socks/config.proto index 7e7dc09fb55b..e6ce53f1d8f4 100644 --- a/proxy/socks/config.proto +++ b/proxy/socks/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.socks; option csharp_namespace = "Xray.Proxy.Socks"; -option go_package = "github.com/xtls/xray-core/proxy/socks"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/socks"; option java_package = "com.xray.proxy.socks"; option java_multiple_files = true; diff --git a/proxy/trojan/config.proto b/proxy/trojan/config.proto index 4229e2edcfa9..f5355698e0e9 100644 --- a/proxy/trojan/config.proto +++ b/proxy/trojan/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.trojan; option csharp_namespace = "Xray.Proxy.Trojan"; -option go_package = "github.com/xtls/xray-core/proxy/trojan"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/trojan"; option java_package = "com.xray.proxy.trojan"; option java_multiple_files = true; diff --git a/proxy/vless/account.proto b/proxy/vless/account.proto index 51d2cb7deaaf..abc7b9969d4f 100644 --- a/proxy/vless/account.proto +++ b/proxy/vless/account.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vless; option csharp_namespace = "Xray.Proxy.Vless"; -option go_package = "github.com/xtls/xray-core/proxy/vless"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vless"; option java_package = "com.xray.proxy.vless"; option java_multiple_files = true; diff --git a/proxy/vless/encoding/addons.proto b/proxy/vless/encoding/addons.proto index 3730e87fd51d..96fdd17a93d5 100644 --- a/proxy/vless/encoding/addons.proto +++ b/proxy/vless/encoding/addons.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vless.encoding; option csharp_namespace = "Xray.Proxy.Vless.Encoding"; -option go_package = "github.com/xtls/xray-core/proxy/vless/encoding"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vless/encoding"; option java_package = "com.xray.proxy.vless.encoding"; option java_multiple_files = true; diff --git a/proxy/vless/encoding/encoding.go b/proxy/vless/encoding/encoding.go index 48c123c36ea7..6ed30276fd15 100644 --- a/proxy/vless/encoding/encoding.go +++ b/proxy/vless/encoding/encoding.go @@ -5,6 +5,7 @@ package encoding import ( "bytes" "context" + "github.com/amnezia-vpn/amnezia-xray-core/common/uuid" "io" "github.com/amnezia-vpn/amnezia-xray-core/common/buf" @@ -64,7 +65,7 @@ func EncodeRequestHeader(writer io.Writer, request *protocol.RequestHeader, requ } // DecodeRequestHeader decodes and returns (if successful) a RequestHeader from an input stream. -func DecodeRequestHeader(isfb bool, first *buf.Buffer, reader io.Reader, validator *vless.Validator) (*protocol.RequestHeader, *Addons, bool, error) { +func DecodeRequestHeader(isfb bool, first *buf.Buffer, reader io.Reader, validator *vless.Validator, invalidUserIdCallback func(userId uuid.UUID)) (*protocol.RequestHeader, *Addons, bool, error) { buffer := buf.StackNew() defer buffer.Release() @@ -95,6 +96,7 @@ func DecodeRequestHeader(isfb bool, first *buf.Buffer, reader io.Reader, validat } if request.User = validator.Get(id); request.User == nil { + invalidUserIdCallback(id) return nil, nil, isfb, newError("invalid request user id") } diff --git a/proxy/vless/encoding/encoding_test.go b/proxy/vless/encoding/encoding_test.go index ee4cda748dec..d6e70a1d08f8 100644 --- a/proxy/vless/encoding/encoding_test.go +++ b/proxy/vless/encoding/encoding_test.go @@ -45,7 +45,7 @@ func TestRequestSerialization(t *testing.T) { Validator := new(vless.Validator) Validator.Add(user) - actualRequest, actualAddons, _, err := DecodeRequestHeader(false, nil, &buffer, Validator) + actualRequest, actualAddons, _, err := DecodeRequestHeader(false, nil, &buffer, Validator, func(uuid2 uuid.UUID) {}) common.Must(err) if r := cmp.Diff(actualRequest, expectedRequest, cmp.AllowUnexported(protocol.ID{})); r != "" { @@ -86,7 +86,7 @@ func TestInvalidRequest(t *testing.T) { Validator := new(vless.Validator) Validator.Add(user) - _, _, _, err := DecodeRequestHeader(false, nil, &buffer, Validator) + _, _, _, err := DecodeRequestHeader(false, nil, &buffer, Validator, func(uuid2 uuid.UUID) {}) if err == nil { t.Error("nil error") } @@ -117,7 +117,7 @@ func TestMuxRequest(t *testing.T) { Validator := new(vless.Validator) Validator.Add(user) - actualRequest, actualAddons, _, err := DecodeRequestHeader(false, nil, &buffer, Validator) + actualRequest, actualAddons, _, err := DecodeRequestHeader(false, nil, &buffer, Validator, func(uuid2 uuid.UUID) {}) common.Must(err) if r := cmp.Diff(actualRequest, expectedRequest, cmp.AllowUnexported(protocol.ID{})); r != "" { diff --git a/proxy/vless/inbound/config.pb.go b/proxy/vless/inbound/config.pb.go index 4b2514850605..a9a64f8479c0 100644 --- a/proxy/vless/inbound/config.pb.go +++ b/proxy/vless/inbound/config.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 -// protoc v4.23.1 +// protoc-gen-go v1.34.2 +// protoc v5.28.2 // source: proxy/vless/inbound/config.proto package inbound @@ -116,8 +116,9 @@ type Config struct { Clients []*protocol.User `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` // Decryption settings. Only applies to server side, and only accepts "none" // for now. - Decryption string `protobuf:"bytes,2,opt,name=decryption,proto3" json:"decryption,omitempty"` - Fallbacks []*Fallback `protobuf:"bytes,3,rep,name=fallbacks,proto3" json:"fallbacks,omitempty"` + Decryption string `protobuf:"bytes,2,opt,name=decryption,proto3" json:"decryption,omitempty"` + Fallbacks []*Fallback `protobuf:"bytes,3,rep,name=fallbacks,proto3" json:"fallbacks,omitempty"` + Notifications string `protobuf:"bytes,4,opt,name=notifications,proto3" json:"notifications,omitempty"` } func (x *Config) Reset() { @@ -173,6 +174,13 @@ func (x *Config) GetFallbacks() []*Fallback { return nil } +func (x *Config) GetNotifications() string { + if x != nil { + return x.Notifications + } + return "" +} + var File_proxy_vless_inbound_config_proto protoreflect.FileDescriptor var file_proxy_vless_inbound_config_proto_rawDesc = []byte{ @@ -189,7 +197,7 @@ var file_proxy_vless_inbound_config_proto_rawDesc = []byte{ 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x76, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x76, 0x65, 0x72, 0x22, 0xa0, 0x01, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x78, 0x76, 0x65, 0x72, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, @@ -200,14 +208,17 @@ var file_proxy_vless_inbound_config_proto_rawDesc = []byte{ 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, - 0x42, 0x6a, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, - 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2f, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0xaa, 0x02, 0x18, 0x58, 0x72, 0x61, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x56, - 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x78, 0x72, + 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x69, + 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6d, 0x6e, 0x65, 0x7a, 0x69, 0x61, 0x2d, 0x76, 0x70, 0x6e, + 0x2f, 0x61, 0x6d, 0x6e, 0x65, 0x7a, 0x69, 0x61, 0x2d, 0x78, 0x72, 0x61, 0x79, 0x2d, 0x63, 0x6f, + 0x72, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x69, + 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0xaa, 0x02, 0x18, 0x58, 0x72, 0x61, 0x79, 0x2e, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x2e, 0x56, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -223,7 +234,7 @@ func file_proxy_vless_inbound_config_proto_rawDescGZIP() []byte { } var file_proxy_vless_inbound_config_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_proxy_vless_inbound_config_proto_goTypes = []interface{}{ +var file_proxy_vless_inbound_config_proto_goTypes = []any{ (*Fallback)(nil), // 0: xray.proxy.vless.inbound.Fallback (*Config)(nil), // 1: xray.proxy.vless.inbound.Config (*protocol.User)(nil), // 2: xray.common.protocol.User @@ -244,7 +255,7 @@ func file_proxy_vless_inbound_config_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_proxy_vless_inbound_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_proxy_vless_inbound_config_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Fallback); i { case 0: return &v.state @@ -256,7 +267,7 @@ func file_proxy_vless_inbound_config_proto_init() { return nil } } - file_proxy_vless_inbound_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_proxy_vless_inbound_config_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*Config); i { case 0: return &v.state diff --git a/proxy/vless/inbound/config.proto b/proxy/vless/inbound/config.proto index 94b5551c54db..4a0a7300c771 100644 --- a/proxy/vless/inbound/config.proto +++ b/proxy/vless/inbound/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vless.inbound; option csharp_namespace = "Xray.Proxy.Vless.Inbound"; -option go_package = "github.com/xtls/xray-core/proxy/vless/inbound"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vless/inbound"; option java_package = "com.xray.proxy.vless.inbound"; option java_multiple_files = true; @@ -23,4 +23,5 @@ message Config { // for now. string decryption = 2; repeated Fallback fallbacks = 3; + string notifications = 4; } diff --git a/proxy/vless/inbound/inbound.go b/proxy/vless/inbound/inbound.go index 4899be679710..5aa611d38c51 100644 --- a/proxy/vless/inbound/inbound.go +++ b/proxy/vless/inbound/inbound.go @@ -6,10 +6,15 @@ import ( "bytes" "context" gotls "crypto/tls" + "encoding/binary" + "github.com/amnezia-vpn/amnezia-xray-core/common/uuid" + "google.golang.org/protobuf/proto" "io" + "os" "reflect" "strconv" "strings" + "sync" "time" "unsafe" @@ -56,6 +61,11 @@ type Handler struct { validator *vless.Validator dns dns.Client fallbacks map[string]map[string]map[string]*Fallback // or nil + clientConnections map[net.Conn]struct{} + notifiedInvalidIds map[string]time.Time + clientMutex sync.Mutex + notificationMutex sync.Mutex + unixListener net.Listener // regexps map[string]*regexp.Regexp // or nil } @@ -67,6 +77,8 @@ func New(ctx context.Context, config *Config, dc dns.Client) (*Handler, error) { policyManager: v.GetFeature(policy.ManagerType()).(policy.Manager), validator: new(vless.Validator), dns: dc, + clientConnections: make(map[net.Conn]struct{}), + notifiedInvalidIds: make(map[string]time.Time), } for _, user := range config.Clients { @@ -139,6 +151,26 @@ func New(ctx context.Context, config *Config, dc dns.Client) (*Handler, error) { } } + socketPath := config.Notifications + + if socketPath != "" { + if _, err := os.Stat(socketPath); err == nil { + os.Remove(socketPath) + } + + listener, err := net.Listen("unix", socketPath) + if err != nil { + newError("error setting up UNIX domain socket listener: %v").Base(err).AtError().WriteToLog() + return nil, err + } + + os.Chmod(socketPath, 0600) + + handler.unixListener = listener + + go handler.acceptUnixSocketClients() + } + return handler, nil } @@ -157,6 +189,20 @@ func isMuxAndNotXUDP(request *protocol.RequestHeader, first *buf.Buffer) bool { // Close implements common.Closable.Close(). func (h *Handler) Close() error { + h.clientMutex.Lock() + for clientConn := range h.clientConnections { + err := clientConn.Close() + if err != nil { + return err + } + } + h.clientMutex.Unlock() + if h.unixListener != nil { + err := h.unixListener.Close() + if err != nil { + return err + } + } return errors.Combine(common.Close(h.validator)) } @@ -209,7 +255,10 @@ func (h *Handler) Process(ctx context.Context, network net.Network, connection s if isfb && firstLen < 18 { err = newError("fallback directly") } else { - request, requestAddons, isfb, err = encoding.DecodeRequestHeader(isfb, first, reader, h.validator) + notifyInvalidUserIdCallback := func(userId uuid.UUID) { + h.notifyUnknownUserAttempt(connection, userId) + } + request, requestAddons, isfb, err = encoding.DecodeRequestHeader(isfb, first, reader, h.validator, notifyInvalidUserIdCallback) } if err != nil { @@ -585,3 +634,93 @@ func (h *Handler) Process(ctx context.Context, network net.Network, connection s return nil } + +func (h *Handler) acceptUnixSocketClients() { + for { + conn, err := h.unixListener.Accept() + if err != nil { + newError("error accepting UNIX socket connection: %v").Base(err).AtDebug().WriteToLog() + continue + } + newError("connected notifications UNIX socket").AtDebug().WriteToLog() + + h.clientMutex.Lock() + h.clientConnections[conn] = struct{}{} + h.clientMutex.Unlock() + + go h.handleUnixSocketClient(conn) + } +} + +func (h *Handler) handleUnixSocketClient(conn net.Conn) { + defer conn.Close() + buffer := make([]byte, 1) + + for { + _, err := conn.Read(buffer) + if err != nil { + if err == io.EOF { + h.clientMutex.Lock() + delete(h.clientConnections, conn) + h.clientMutex.Unlock() + return + } + newError("error reading from client: %v").Base(err).AtError().WriteToLog() + return + } + } +} + +func (h *Handler) notifyUnknownUserAttempt(conn net.Conn, attemptedUUID uuid.UUID) { + attemptedUUIDStr := attemptedUUID.String() + currentTime := time.Now() + h.notificationMutex.Lock() + uuidTime, exists := h.notifiedInvalidIds[attemptedUUIDStr] + if !exists || uuidTime.Before(currentTime.Add(-30*time.Second)) { + h.notifiedInvalidIds[attemptedUUIDStr] = currentTime + h.notificationMutex.Unlock() + } else { + h.notificationMutex.Unlock() + return + } + + remoteAddr := conn.RemoteAddr() + var remoteIP string + var remotePort int + if tcpAddr, ok := remoteAddr.(*net.TCPAddr); ok { + remoteIP = tcpAddr.IP.String() + remotePort = tcpAddr.Port + } else { + remoteIP = remoteAddr.String() + remotePort = 0 + } + + attempt := &UnknownUserAttempt{ + RemoteIp: remoteIP, + RemotePort: int32(remotePort), + AttemptedUuid: attemptedUUIDStr, + Timestamp: time.Now().Unix(), + } + + data, err := proto.Marshal(attempt) + if err != nil { + newError("error marshalling protobuf message: %v").Base(err).AtError().WriteToLog() + return + } + lengthBuf := make([]byte, 4) + binary.BigEndian.PutUint32(lengthBuf, uint32(len(data))) + message := append(lengthBuf, data...) + + h.clientMutex.Lock() + defer h.clientMutex.Unlock() + + for clientConn := range h.clientConnections { + newError("writing data to UNIX socket client connection").AtDebug().WriteToLog() + _, err := clientConn.Write(message) + if err != nil { + newError("error writing to client: %v").Base(err).AtError().WriteToLog() + clientConn.Close() + delete(h.clientConnections, clientConn) + } + } +} diff --git a/proxy/vless/inbound/unknown_user.pb.go b/proxy/vless/inbound/unknown_user.pb.go new file mode 100644 index 000000000000..28357aafd6be --- /dev/null +++ b/proxy/vless/inbound/unknown_user.pb.go @@ -0,0 +1,181 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.2 +// protoc v5.28.2 +// source: unknown_user.proto + +package inbound + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type UnknownUserAttempt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RemoteIp string `protobuf:"bytes,1,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"` + RemotePort int32 `protobuf:"varint,2,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"` + AttemptedUuid string `protobuf:"bytes,3,opt,name=attempted_uuid,json=attemptedUuid,proto3" json:"attempted_uuid,omitempty"` + Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *UnknownUserAttempt) Reset() { + *x = UnknownUserAttempt{} + if protoimpl.UnsafeEnabled { + mi := &file_unknown_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnknownUserAttempt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnknownUserAttempt) ProtoMessage() {} + +func (x *UnknownUserAttempt) ProtoReflect() protoreflect.Message { + mi := &file_unknown_user_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnknownUserAttempt.ProtoReflect.Descriptor instead. +func (*UnknownUserAttempt) Descriptor() ([]byte, []int) { + return file_unknown_user_proto_rawDescGZIP(), []int{0} +} + +func (x *UnknownUserAttempt) GetRemoteIp() string { + if x != nil { + return x.RemoteIp + } + return "" +} + +func (x *UnknownUserAttempt) GetRemotePort() int32 { + if x != nil { + return x.RemotePort + } + return 0 +} + +func (x *UnknownUserAttempt) GetAttemptedUuid() string { + if x != nil { + return x.AttemptedUuid + } + return "" +} + +func (x *UnknownUserAttempt) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +var File_unknown_user_proto protoreflect.FileDescriptor + +var file_unknown_user_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x97, + 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x65, 0x64, + 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x65, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x79, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, + 0x78, 0x72, 0x61, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x6c, 0x65, 0x73, 0x73, + 0x2e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6d, 0x6e, 0x65, 0x7a, 0x69, 0x61, 0x2d, 0x76, + 0x70, 0x6e, 0x2f, 0x61, 0x6d, 0x6e, 0x65, 0x7a, 0x69, 0x61, 0x2d, 0x78, 0x72, 0x61, 0x79, 0x2d, + 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x76, 0x6c, 0x65, 0x73, 0x73, + 0x2f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0xaa, 0x02, 0x18, 0x58, 0x72, 0x61, 0x79, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x56, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x49, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_unknown_user_proto_rawDescOnce sync.Once + file_unknown_user_proto_rawDescData = file_unknown_user_proto_rawDesc +) + +func file_unknown_user_proto_rawDescGZIP() []byte { + file_unknown_user_proto_rawDescOnce.Do(func() { + file_unknown_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_unknown_user_proto_rawDescData) + }) + return file_unknown_user_proto_rawDescData +} + +var file_unknown_user_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_unknown_user_proto_goTypes = []any{ + (*UnknownUserAttempt)(nil), // 0: xray.proxy.vless.inbound.UnknownUserAttempt +} +var file_unknown_user_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_unknown_user_proto_init() } +func file_unknown_user_proto_init() { + if File_unknown_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_unknown_user_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*UnknownUserAttempt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_unknown_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_unknown_user_proto_goTypes, + DependencyIndexes: file_unknown_user_proto_depIdxs, + MessageInfos: file_unknown_user_proto_msgTypes, + }.Build() + File_unknown_user_proto = out.File + file_unknown_user_proto_rawDesc = nil + file_unknown_user_proto_goTypes = nil + file_unknown_user_proto_depIdxs = nil +} diff --git a/proxy/vless/inbound/unknown_user.proto b/proxy/vless/inbound/unknown_user.proto new file mode 100644 index 000000000000..181bef3832e8 --- /dev/null +++ b/proxy/vless/inbound/unknown_user.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package xray.proxy.vless.inbound; +option csharp_namespace = "Xray.Proxy.Vless.Inbound"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vless/inbound"; +option java_package = "com.xray.proxy.vless.inbound"; +option java_multiple_files = true; + +message UnknownUserAttempt { + string remote_ip = 1; + int32 remote_port = 2; + string attempted_uuid = 3; + int64 timestamp = 4; +} \ No newline at end of file diff --git a/proxy/vless/outbound/config.proto b/proxy/vless/outbound/config.proto index 55455cbfd968..5880a68ca23d 100644 --- a/proxy/vless/outbound/config.proto +++ b/proxy/vless/outbound/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vless.outbound; option csharp_namespace = "Xray.Proxy.Vless.Outbound"; -option go_package = "github.com/xtls/xray-core/proxy/vless/outbound"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vless/outbound"; option java_package = "com.xray.proxy.vless.outbound"; option java_multiple_files = true; diff --git a/proxy/vmess/account.proto b/proxy/vmess/account.proto index 3fac639909c4..df9236a6841f 100644 --- a/proxy/vmess/account.proto +++ b/proxy/vmess/account.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vmess; option csharp_namespace = "Xray.Proxy.Vmess"; -option go_package = "github.com/xtls/xray-core/proxy/vmess"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vmess"; option java_package = "com.xray.proxy.vmess"; option java_multiple_files = true; diff --git a/proxy/vmess/inbound/config.proto b/proxy/vmess/inbound/config.proto index 7da1d5810415..22b6858f0935 100644 --- a/proxy/vmess/inbound/config.proto +++ b/proxy/vmess/inbound/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vmess.inbound; option csharp_namespace = "Xray.Proxy.Vmess.Inbound"; -option go_package = "github.com/xtls/xray-core/proxy/vmess/inbound"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vmess/inbound"; option java_package = "com.xray.proxy.vmess.inbound"; option java_multiple_files = true; diff --git a/proxy/vmess/outbound/config.proto b/proxy/vmess/outbound/config.proto index 2a8271581b55..dd1e56d91a90 100644 --- a/proxy/vmess/outbound/config.proto +++ b/proxy/vmess/outbound/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.vmess.outbound; option csharp_namespace = "Xray.Proxy.Vmess.Outbound"; -option go_package = "github.com/xtls/xray-core/proxy/vmess/outbound"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/vmess/outbound"; option java_package = "com.xray.proxy.vmess.outbound"; option java_multiple_files = true; diff --git a/proxy/wireguard/config.proto b/proxy/wireguard/config.proto index e7fd66f44ae3..bec760a90702 100644 --- a/proxy/wireguard/config.proto +++ b/proxy/wireguard/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.proxy.wireguard; option csharp_namespace = "Xray.Proxy.WireGuard"; -option go_package = "github.com/xtls/xray-core/proxy/wireguard"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/proxy/wireguard"; option java_package = "com.xray.proxy.wireguard"; option java_multiple_files = true; diff --git a/testing/scenarios/common.go b/testing/scenarios/common.go index 0e08b97b40b0..0e87313c73ca 100644 --- a/testing/scenarios/common.go +++ b/testing/scenarios/common.go @@ -120,7 +120,7 @@ func genTestBinaryPath() { } func GetSourcePath() string { - return filepath.Join("github.com", "xtls", "xray-core", "main") + return filepath.Join("github.com", "amnezia-vpn", "amnezia-xray-core", "main") } func CloseAllServers(servers []*exec.Cmd) { diff --git a/transport/global/config.proto b/transport/global/config.proto index 367036ec07cb..3982ac4c2884 100644 --- a/transport/global/config.proto +++ b/transport/global/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport; option csharp_namespace = "Xray.Transport.Global"; -option go_package = "github.com/xtls/xray-core/transport/global"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/global"; option java_package = "com.xray.transport.global"; option java_multiple_files = true; diff --git a/transport/internet/config.proto b/transport/internet/config.proto index 22277b428ba0..2628dea2f07d 100644 --- a/transport/internet/config.proto +++ b/transport/internet/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet; option csharp_namespace = "Xray.Transport.Internet"; -option go_package = "github.com/xtls/xray-core/transport/internet"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet"; option java_package = "com.xray.transport.internet"; option java_multiple_files = true; diff --git a/transport/internet/domainsocket/config.proto b/transport/internet/domainsocket/config.proto index 900dbbe3d3e7..e923d890ba93 100644 --- a/transport/internet/domainsocket/config.proto +++ b/transport/internet/domainsocket/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.domainsocket; option csharp_namespace = "Xray.Transport.Internet.DomainSocket"; -option go_package = "github.com/xtls/xray-core/transport/internet/domainsocket"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/domainsocket"; option java_package = "com.xray.transport.internet.domainsocket"; option java_multiple_files = true; diff --git a/transport/internet/grpc/config.proto b/transport/internet/grpc/config.proto index fcaa2ed967f6..4f598f776962 100644 --- a/transport/internet/grpc/config.proto +++ b/transport/internet/grpc/config.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package xray.transport.internet.grpc.encoding; -option go_package = "github.com/xtls/xray-core/transport/internet/grpc"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/grpc"; message Config { string authority = 1; diff --git a/transport/internet/grpc/encoding/stream.proto b/transport/internet/grpc/encoding/stream.proto index 63898a770dba..a16b39bb4d2e 100644 --- a/transport/internet/grpc/encoding/stream.proto +++ b/transport/internet/grpc/encoding/stream.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package xray.transport.internet.grpc.encoding; -option go_package = "github.com/xtls/xray-core/transport/internet/grpc/encoding"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/grpc/encoding"; message Hunk { bytes data = 1; diff --git a/transport/internet/headers/dns/config.proto b/transport/internet/headers/dns/config.proto index a9a44ff463ab..9dbf7b87fae2 100644 --- a/transport/internet/headers/dns/config.proto +++ b/transport/internet/headers/dns/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.dns; option csharp_namespace = "Xray.Transport.Internet.Headers.DNS"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/dns"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/dns"; option java_package = "com.xray.transport.internet.headers.dns"; option java_multiple_files = true; diff --git a/transport/internet/headers/http/config.proto b/transport/internet/headers/http/config.proto index c765937111c2..1d25a4875d92 100644 --- a/transport/internet/headers/http/config.proto +++ b/transport/internet/headers/http/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.http; option csharp_namespace = "Xray.Transport.Internet.Headers.Http"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/http"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/http"; option java_package = "com.xray.transport.internet.headers.http"; option java_multiple_files = true; diff --git a/transport/internet/headers/noop/config.proto b/transport/internet/headers/noop/config.proto index f23bc0a86187..f8821e6dfd29 100644 --- a/transport/internet/headers/noop/config.proto +++ b/transport/internet/headers/noop/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.noop; option csharp_namespace = "Xray.Transport.Internet.Headers.Noop"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/noop"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/noop"; option java_package = "com.xray.transport.internet.headers.noop"; option java_multiple_files = true; diff --git a/transport/internet/headers/srtp/config.proto b/transport/internet/headers/srtp/config.proto index 491e299ca56d..8d8a122aed70 100644 --- a/transport/internet/headers/srtp/config.proto +++ b/transport/internet/headers/srtp/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.srtp; option csharp_namespace = "Xray.Transport.Internet.Headers.Srtp"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/srtp"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/srtp"; option java_package = "com.xray.transport.internet.headers.srtp"; option java_multiple_files = true; diff --git a/transport/internet/headers/tls/config.proto b/transport/internet/headers/tls/config.proto index f939adfc1454..c094b4b670a0 100644 --- a/transport/internet/headers/tls/config.proto +++ b/transport/internet/headers/tls/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.tls; option csharp_namespace = "Xray.Transport.Internet.Headers.Tls"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/tls"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/tls"; option java_package = "com.xray.transport.internet.headers.tls"; option java_multiple_files = true; diff --git a/transport/internet/headers/utp/config.proto b/transport/internet/headers/utp/config.proto index 0b3627d26a66..b9432a4043f3 100644 --- a/transport/internet/headers/utp/config.proto +++ b/transport/internet/headers/utp/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.utp; option csharp_namespace = "Xray.Transport.Internet.Headers.Utp"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/utp"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/utp"; option java_package = "com.xray.transport.internet.headers.utp"; option java_multiple_files = true; diff --git a/transport/internet/headers/wechat/config.proto b/transport/internet/headers/wechat/config.proto index 524c6dc0ff83..35fd019c32b0 100644 --- a/transport/internet/headers/wechat/config.proto +++ b/transport/internet/headers/wechat/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.wechat; option csharp_namespace = "Xray.Transport.Internet.Headers.Wechat"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/wechat"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/wechat"; option java_package = "com.xray.transport.internet.headers.wechat"; option java_multiple_files = true; diff --git a/transport/internet/headers/wireguard/config.proto b/transport/internet/headers/wireguard/config.proto index a115797a5c04..07c5cd6c38e5 100644 --- a/transport/internet/headers/wireguard/config.proto +++ b/transport/internet/headers/wireguard/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.headers.wireguard; option csharp_namespace = "Xray.Transport.Internet.Headers.Wireguard"; -option go_package = "github.com/xtls/xray-core/transport/internet/headers/wireguard"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/headers/wireguard"; option java_package = "com.xray.transport.internet.headers.wireguard"; option java_multiple_files = true; diff --git a/transport/internet/http/config.proto b/transport/internet/http/config.proto index 82f5cbeb13f1..000da30abc79 100644 --- a/transport/internet/http/config.proto +++ b/transport/internet/http/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.http; option csharp_namespace = "Xray.Transport.Internet.Http"; -option go_package = "github.com/xtls/xray-core/transport/internet/http"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/http"; option java_package = "com.xray.transport.internet.http"; option java_multiple_files = true; diff --git a/transport/internet/httpupgrade/config.proto b/transport/internet/httpupgrade/config.proto index 98206f51ef08..75181f149611 100644 --- a/transport/internet/httpupgrade/config.proto +++ b/transport/internet/httpupgrade/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.httpupgrade; option csharp_namespace = "Xray.Transport.Internet.HttpUpgrade"; -option go_package = "github.com/xtls/xray-core/transport/internet/httpupgrade"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/httpupgrade"; option java_package = "com.xray.transport.internet.httpupgrade"; option java_multiple_files = true; diff --git a/transport/internet/kcp/config.proto b/transport/internet/kcp/config.proto index a9806e6f276a..7850d41959cc 100644 --- a/transport/internet/kcp/config.proto +++ b/transport/internet/kcp/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.kcp; option csharp_namespace = "Xray.Transport.Internet.Kcp"; -option go_package = "github.com/xtls/xray-core/transport/internet/kcp"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/kcp"; option java_package = "com.xray.transport.internet.kcp"; option java_multiple_files = true; diff --git a/transport/internet/quic/config.proto b/transport/internet/quic/config.proto index b08e531e6e62..4b7f16e471f3 100644 --- a/transport/internet/quic/config.proto +++ b/transport/internet/quic/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.quic; option csharp_namespace = "Xray.Transport.Internet.Quic"; -option go_package = "github.com/xtls/xray-core/transport/internet/quic"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/quic"; option java_package = "com.xray.transport.internet.quic"; option java_multiple_files = true; diff --git a/transport/internet/reality/config.proto b/transport/internet/reality/config.proto index 233f6e053e7e..d485ab8037c7 100644 --- a/transport/internet/reality/config.proto +++ b/transport/internet/reality/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.reality; option csharp_namespace = "Xray.Transport.Internet.Reality"; -option go_package = "github.com/xtls/xray-core/transport/internet/reality"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/reality"; option java_package = "com.xray.transport.internet.reality"; option java_multiple_files = true; diff --git a/transport/internet/tcp/config.proto b/transport/internet/tcp/config.proto index a12acdfaab87..7799fd39e314 100644 --- a/transport/internet/tcp/config.proto +++ b/transport/internet/tcp/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.tcp; option csharp_namespace = "Xray.Transport.Internet.Tcp"; -option go_package = "github.com/xtls/xray-core/transport/internet/tcp"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/tcp"; option java_package = "com.xray.transport.internet.tcp"; option java_multiple_files = true; diff --git a/transport/internet/tls/config.proto b/transport/internet/tls/config.proto index 12c7b7cb3400..90c6ce45d1ab 100644 --- a/transport/internet/tls/config.proto +++ b/transport/internet/tls/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.tls; option csharp_namespace = "Xray.Transport.Internet.Tls"; -option go_package = "github.com/xtls/xray-core/transport/internet/tls"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/tls"; option java_package = "com.xray.transport.internet.tls"; option java_multiple_files = true; diff --git a/transport/internet/udp/config.proto b/transport/internet/udp/config.proto index 16e043f9dae3..161579b4deae 100644 --- a/transport/internet/udp/config.proto +++ b/transport/internet/udp/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.udp; option csharp_namespace = "Xray.Transport.Internet.Udp"; -option go_package = "github.com/xtls/xray-core/transport/internet/udp"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/udp"; option java_package = "com.xray.transport.internet.udp"; option java_multiple_files = true; diff --git a/transport/internet/websocket/config.proto b/transport/internet/websocket/config.proto index 6c6ce7dd8164..c4860990d13d 100644 --- a/transport/internet/websocket/config.proto +++ b/transport/internet/websocket/config.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xray.transport.internet.websocket; option csharp_namespace = "Xray.Transport.Internet.Websocket"; -option go_package = "github.com/xtls/xray-core/transport/internet/websocket"; +option go_package = "github.com/amnezia-vpn/amnezia-xray-core/transport/internet/websocket"; option java_package = "com.xray.transport.internet.websocket"; option java_multiple_files = true;