-
Notifications
You must be signed in to change notification settings - Fork 104
[Bug] Listen内存在fallback时,UDS形式无法和Dial里的sendthrough共存 #258
Description
Describe the bug【描述 bug】
前情提要为#148,当时折腾了好久的回落才把伪装做的比较完美。后来继续优化配置,把回落从本地回环端口改为UDS,表现没问题(这里与性能无关,纯粹是为了netstat命令查看监听时少一些端口)。今天尝试加了个sendthrough,准备用V4出站,结果出问题了,[[listen]]内的最终回落失效,ssllabs测试结果是"http failed",但是专门的[[fallback]]相关回落正常,也就是能回落到网页。尝试把[[listen]]内的回落从UDS改为本地回环地址,正常了。这个奇怪得很,按理说[[listen]]里的内容和[[dial]]里的内容没太大关系,不知道为什么UDS和sendthrough只能二选一
用配置来说话,表现正常的配置1:
[[listen]]
tag = "Greencloud_Trojan"
protocol = "trojans"
ip = "0.0.0.0"
port = 443
fallback = ":8888"
adv = "grpc"
[[fallback]]
from = ["Greencloud_Trojan“]
alpn = ["h2"]
dest = "/dev/shm/h2c.socket"
[[dial]]
protocol = "direct"
sendThrough = "0.0.0.0:0"
表现正常的配置2:
[[listen]]
tag = "Greencloud_Trojan"
protocol = "trojans"
ip = "0.0.0.0"
port = 443
fallback = "/dev/shm/http.socket"
adv = "grpc"
[[fallback]]
from = ["Greencloud_Trojan“]
alpn = ["h2"]
dest = "/dev/shm/h2c.socket"
[[dial]]
protocol = "direct"
出现问题的配置:
[[listen]]
tag = "Greencloud_Trojan"
protocol = "trojans"
ip = "0.0.0.0"
port = 443
fallback = "/dev/shm/http.socket"
adv = "grpc"
[[fallback]]
from = ["Greencloud_Trojan“]
alpn = ["h2"]
dest = "/dev/shm/h2c.socket"
[[dial]]
protocol = "direct"
sendThrough = "0.0.0.0:0"
另外还有2个小问题,就不专门发issue了
-
回落到UDS的日志有乱码,举例:"Fallback from": "11.4.5.14:11451", "Target": "unix://%2Fdev%2Fshm%2Fhttp.socket", "through": "dual+direct://#Shimokitazawa"}
-
需要升级一下quic-go的版本,最近不少用了quic-go的项目在编译时都炸了,跟go1.20有关,似乎是在一些情况下把这个版本号判断为1.2了,现在我用go1.20编译本项目必须带上noquic标签,否则编译必定失败。升级一下quic-go就行,听说1.20版本的quic还优化了占用