-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Outbound: One endpoint and at most one user only #5144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Outbound: One endpoint and at most one user only #5144
Conversation
|
删了就删了为啥费那么大劲全注释框起来 |
|
防止有人闻着味就过来,注释掉也不太费事 只要基本同意那就一个提交都清了没问题 break 掉的事好像有报告而且只有一个早年的,看起来没什么人在意 |
|
|
|
清掉了 1500 行过时的代码,挺好的,可以合了吗 |
|
没有其它问题就可以合了 |
|
VMess 动态端口这个功能咋说呢,也该寿终正寝了,现在无法直接过墙了,过墙全靠 TLS,总不能端口来回跳 有勇士用 IPv6 非 TLS 过墙的话,也应当是 balancer 多 IP,所以动态端口相关代码确实可以删了 |
|
看了下,话说 VMess 协议的 spec 似乎一直停留在非 VMess AEAD,算了,都是过时的协议,已经被 VLESS Encryption 完全取代了 如果说 SS 系列还有个原生 UDP,那 VMess 真就没任何东西了,至于 VLESS 的原生 UDP,想做也不难,出了 TUN 之后再说吧 |
|
VMess 动态端口只能说思路上有历史意义,但是功能没跟上时代,全随机数被拉黑的背景下虽然裹上传输层也能用,但是用它就只能将服务端监听前置,也不能配置自定义端口导致不能配合 Nginx/Caddy 分流掩盖主动探测特征,加上配置相对别扭、分主从端口每次新建连接必须和主端口通讯一次,问题有,补救无。 如果服务器没有 AES 硬件加速指令支持,甚至会被客户端拖累性能。 所以就那样吧,这功能也该退休了 |
Outbound: One endpoint and at most one user only (XTLS#5144)
|
原说明已添加配置迁移指引 |
Revert "v25.10.15" This reverts commit b69a376. Revert "VLESS Reverse Proxy: Transfer real Source & Local (IP & port), enabled by default" This reverts commit 12f4a01. Revert "XHTTP client: Change default `maxConcurrency` to 1 for speed testing" This reverts commit 9cc7907. Revert "Router: Use built-in-dns only once for all rules (in "IPOnDemand"/"IPIfNonMatch" mode) (XTLS#5210)" This reverts commit 21a9658. Revert "README.md: Add PasarGuard to Web Panels (XTLS#5224)" This reverts commit 7f436f5. Revert "Update github.com/xtls/reality to 20251014195629" This reverts commit dcfde8d. Revert "Bump golang.org/x/net from 0.44.0 to 0.46.0 (XTLS#5215)" This reverts commit 898db92. Revert "Bump google.golang.org/grpc from 1.75.1 to 1.76.0 (XTLS#5212)" This reverts commit 8dd0e38. Revert "transport/internet/reality/reality.go: Safely get negotiated CurveID in VerifyPeerCertificate()" This reverts commit 40f0a54. Revert "Bump github.com/refraction-networking/utls from 1.8.0 to 1.8.1 (XTLS#5229)" This reverts commit 1762d6c. Revert "Fix shadowsocks2022 memory leak (XTLS#5166)" This reverts commit 1952488. Revert "fix: darwin arm64 always has AESGCMHardwareSupport (XTLS#5176)" This reverts commit 4a825c0. Revert "Bump github.com/quic-go/quic-go from 0.54.1 to 0.55.0 (XTLS#5208)" This reverts commit 514c9e5. Revert "feat(config): add unix socket HTTP config loader support (XTLS#5200)" This reverts commit 2f366ae. Revert "Fix vless reverse panic in vision (XTLS#5189)" This reverts commit c0c88f3. Revert "Bump github.com/quic-go/quic-go from 0.54.0 to 0.54.1 (XTLS#5180)" This reverts commit d0344bc. Revert "Bump google.golang.org/protobuf from 1.36.9 to 1.36.10 (XTLS#5203)" This reverts commit a6ebb30. Revert "Outbound: One endpoint and at most one user only (XTLS#5144)" This reverts commit fe57507. Revert "Config: Outbound proxy config no need to be nested (XTLS#5124)" This reverts commit 83c5370. Revert "Bump google.golang.org/grpc from 1.75.0 to 1.75.1 (XTLS#5129)" This reverts commit 1a48453. Revert "app/dispatcher/default.go: Close link when routedDispatch() failed (XTLS#5131)" This reverts commit 3167e5c. Revert "app/dispatcher/default.go: Add comment on run-time rejecting non-existent outbound tag" This reverts commit 5148c57.
#5124 (comment)
#5124 (review)
部分性重构 Outbound 相关
去年移除了旧配置就有用了旧版路由配置失效的报告)配置迁移指引
如果配置文件里面存在一个 outbound 配置中设置了不止一个服务器或者一个服务器配置中配置了不止一个用户配置(一个 UUID/密码 视为一个用户),新版本会在读取配置时报错。此时应修改配置进行迁移。
{ "routing": { // 一般情况下配置里面就有这个节点,直接如下加 balancers 即可,不要重复写 routing,这里是作为填写层级示例 "balancers": [ // 注意这里,可以同时配置多个 balancer 均衡器 { "tag": "newtag", // 新均衡器tag,下一步会用到,不一定要叫 newtag "selector": [ // 见 https://xtls.github.io/config/routing.html#balancerobject "outboundtag-1", "outboundtag-2", // ... // 或者如果分离出来的新的 outboundTag 使用一个前缀,后面使用任意字符作为区分的话,可以直接填入前缀 ], "strategy": { "type": "random" // 原来多个用户的行为为 random,多个服务器配置端点的行为为 roundRobin // balancer 还可配置 leastPing 及 leastLoad 均衡,详情见文档 } } ] } }outboundTag: "<原tag>"换成balancerTag: "<新均衡器tag>"附注:
移除 PickServer 后,客户端 VMess 动态端口及用户功能失效,配合该失效同时移除了服务端对动态端口的支持,以及相关的 VMess detour 配置项及入站设置中的 allocation 配置(此后单个 inbound 监听多个端口时永远同时监听所有端口,ramdom 策略仅有 VMess 动态端口功能使用)。
此项更改可选,代码目前仅作注释处理,可回滚保留服务端相关功能或彻底移除这些代码。已经彻底实装动态端口功能请使用多个 outbound、balancer 配合 observation 代替。