p4gefau1t / trojan-go

Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
GNU General Public License v3.0
7.71k stars 1.67k forks source link

[BUG] trojan-go mac客户端意外挂了 #440

Open zfangqijun opened 2 years ago

zfangqijun commented 2 years ago

简单描述这个 Bug

听歌过程中,trojan-go客户端挂了

如何复现这个 Bug

使用MacOS QQ音乐客户端,听歌过程中,频繁出现。大概听1-2首歌时间

服务器和客户端环境信息

客户端 : iMac (24-inch, M1, 2021) 16g

服务端 : ubuntu Trojan-Go

服务端和客户端日志

strconv.ParseInt: parsing "": invalid syntax

panic: strconv.ParseInt: parsing "": invalid syntax

goroutine 763 [running]:
github.com/p4gefau1t/trojan-go/common.Must({0x183b940, 0xc000b3b230})
        github.com/p4gefau1t/trojan-go/common/error.go:31 +0x8c
github.com/p4gefau1t/trojan-go/tunnel.NewAddressFromAddr({0x175d785, 
0x3}, {0xc00050200b, 0xc000366570})
        github.com/p4gefau1t/trojan-go/tunnel/metadata.go:110 +0x78
github.com/p4gefau1t/trojan-go/tunnel/http.(*Server).acceptLoop.func1({0x2a20a9c0, 0xc001008a40})
        github.com/p4gefau1t/trojan-go/tunnel/http/server.go:119 +0x9c5
created by github.com/p4gefau1t/trojan-go/tunnel/http.(*Server).acceptLoop
        github.com/p4gefau1t/trojan-go/tunnel/http/server.go:85 +0x115

服务端和客户端配置文件

{
    "run_type": "client",
    "local_addr": "127.0.0.1",
    "local_port": 2188,
    "remote_port": 3000,
    "password": [
    ],
    "websocket": {
        "enabled": false,
        "path": ""
    },
    "shadowsocks": {
        "enabled": false,
        "method": "",
        "password": ""
    },
    "ssl": {
    },
    "mux": {
        "enabled": false
    },
    "api": {
        "enabled": true,
        "api_addr": "127.0.0.1",
        "api_port":
    },
    "router": {
        "enabled": true,
        "bypass": [
            "geosite:cn",
            "geosite:private",
            "geoip:cn",
            "geoip:private"
        ],
        "block": [
            "domain:fuck.com"
        ],
        "proxy": [
            "geosite:geolocation-!cn"
        ],
        "default_policy": "bypass",
        "domain_strategy": "ip_if_non_match",
        "geoip": "geoip.dat",
        "geosite": "geosite.dat"
    }
}

服务端和客户端版本信息

客户端

Trojan-Go v0.10.6
Go Version: go1.17.1
OS/Arch: darwin/amd64
Git Commit: 2dc60f52e79ff8b910e78e444f1e80678e936450

Developed by PageFault (p4gefau1t)
Licensed under GNU General Public License version 3
GitHub Repository:      https://github.com/p4gefau1t/trojan-go
Trojan-Go Documents:    https://p4gefau1t.github.io/trojan-go/

服务端

trojan管理程序版本
version: v2.13.3

gitVersion: fd6a654

buildDate: 20220318-1643

goVersion: go1.18 linux/amd64

其他信息

有任何信息需要补充,随时@我

org-lib commented 2 years ago

推荐一个trojan-go客户端:

github.com/org-lib/tz

完全支持trojan-go协议。 使用起来非常简洁。

image

可以定制logo 什么的。

yjz2222 commented 2 years ago

trojan-go/tunnel/metadata.go,110,这里端口为空,应该把错误直接抛上去,让外层接着用默认80口去处理,这里调用must直接panic了,导致外层的if err变成了个摆设(trojan-go/tunnel/http/server.go,119)

william-chin commented 9 months ago

推荐一个trojan-go客户端:

github.com/org-lib/tz

完全支持trojan-go协议。 使用起来非常简洁。 image

可以定制logo 什么的。

垃圾广告