Skip to content
This repository was archived by the owner on Mar 17, 2024. It is now read-only.

[Bug] Listen内存在fallback时,UDS形式无法和Dial里的sendthrough共存 #258

@SakuraSakuraSakuraChan

Description

@SakuraSakuraSakuraChan

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了

  1. 回落到UDS的日志有乱码,举例:"Fallback from": "11.4.5.14:11451", "Target": "unix://%2Fdev%2Fshm%2Fhttp.socket", "through": "dual+direct://#Shimokitazawa"}

  2. 需要升级一下quic-go的版本,最近不少用了quic-go的项目在编译时都炸了,跟go1.20有关,似乎是在一些情况下把这个版本号判断为1.2了,现在我用go1.20编译本项目必须带上noquic标签,否则编译必定失败。升级一下quic-go就行,听说1.20版本的quic还优化了占用

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions