jonm58 / ghostcp

GhosTCP is a program for Windows that protects the TCP connections from being interfered.
GNU Lesser General Public License v3.0
25 stars 3 forks source link

not work on latest Edge #16

Open zhengqwe opened 5 months ago

jonm58 commented 5 months ago

?

jonm58 commented 5 months ago

Turn off your DoH and DoT

zhengqwe commented 5 months ago

?

是从Chromium 124大版本开始,浏览器发出的client hello很长,被分成了两个包,软件没有正确处理,可以用Wireshark抓包证明

yfdyh000 commented 5 months ago

@macronut 最近在phantomsocks有遇到。zh.wikipedia.org的请求,似乎超过1500字节,导致GetSNI返回0,ttl方法无效。

zhengqwe commented 5 months ago

@macronut 最近在phantomsocks有遇到。zh.wikipedia.org的请求,似乎超过1500字节,导致GetSNI返回0,ttl方法无效。

所有https请求都会这样,所有用到Chromium 124及以上大版本内核的浏览器都能复现,只能先找个旧版本应付一下了

yfdyh000 commented 5 months ago

@macronut 最近在phantomsocks有遇到。zh.wikipedia.org的请求,似乎超过1500字节,导致GetSNI返回0,ttl方法无效。

所有https请求都会这样,所有用到Chromium 124及以上大版本内核的浏览器都能复现,只能先找个旧版本应付一下了

我不确定情况是否一样。github.com的请求似乎没超1500。最近开始不行的,我以为ttl等方法被检测了。我用Firefox也不行。

jonm58 commented 5 months ago

我在Windows 11 22000用R3fox 125和Supermuim122,我这里没有问题,不知道你们使用什么版本的浏览器和Windows?

yfdyh000 commented 5 months ago

Edge 124.0.2478.67

phantomsocks 中,试着修改如下内容后,维基百科和you.com正常了。 phantomtcp/tcp.go: fakepaylen := 1280 改为3000 if pface.Hint&HINT_MODE2 != 0 { 的else里

                interval := 1280
                packetCount := math.Ceil(float64(fakepaylen) / float64(interval))
                if packetCount > 1 {
                    for i := 0; i < len(fakepayload); i += interval {
                        curLen := min(i+interval,len(fakepayload))
                        err = ModifyAndSendPacket(synpacket, fakepayload[i:curLen], pface.Hint, pface.TTL, count)
                        if err != nil {
                            conn.Close()
                            return nil, nil, err
                        }
                        synpacket.TCP.Seq ++
                    }
                } else {
                    err = ModifyAndSendPacket(synpacket, fakepayload, pface.Hint, pface.TTL, count)
                    if err != nil {
                        conn.Close()
                        return nil, nil, err
                    }
                }
zhengqwe commented 5 months ago

ghostcp也有类似的修改方法吗

zhengqwe commented 5 months ago

edge地址栏输入edge://flags,将这个选项禁用就好了,这个选项是client hello变长的原因,参考这里这里这里 其他Chromium内核的浏览器也可以在flags里找这个选项

edge://flags/#enable-tls13-kyber

image

yfdyh000 commented 5 months ago

ghostcp也有类似的修改方法吗

https://github.com/yfdyh000/TCPioneer/commit/de16def09853d7d198fdbc30eb3168a35906efdb 这样修改似乎有效。

jonm58 commented 5 months ago

@yfdyh000 谢谢,Pull,Actions https://github.com/jonm58/ghostcp/actions/runs/8883031579

zhengqwe commented 5 months ago

还是不起作用,还是老老实实改flag吧 image

jonm58 commented 5 months ago

问题发生了变化 R3dfox 125.0.3 image

yfdyh000 commented 5 months ago

https://nchc.dl.sourceforge.net/ 和 github.com 能直连,测不出什么。you.com、维基百科、workers.dev 等都有效,建立连接有时要多刷新几次。

之前想说的,补丁没严格测试,不确定适合哪些场景,仅供研究参考……

@jonm58 暂时没重现这个。您试试TCP_SYN) != 0的修改改回去是否有变化。

jonm58 commented 5 months ago

https://nchc.dl.sourceforge.net/ 和 github.com 能直连,测不出什么。you.com、维基百科、workers.dev 等都有效,建立连接有时要多刷新几次。

之前想说的,补丁没严格测试,不确定适合哪些场景,仅供研究参考……

@jonm58 暂时没重现这个。您试试TCP_SYN) != 0的修改改回去是否有变化。

改回去好了 没有,下载https://nchc.dl.sourceforge.net/project/portableapps/Mozilla%20Thunderbird%2C%20P.E./Mozilla%20Thunderbird%2C%20Portable%20Edition%20115.10.1/ThunderbirdPortable_115.10.1_SimpChinese.paf.exe?viasf=1 有问题

现在在default.conf用.sourceforge.net排除了.*.sourceforge.net,解决问题

yfdyh000 commented 5 months ago

~改回去好了~ 没有,下载https://nchc.dl.sourceforge.net/project/portableapps/Mozilla%20Thunderbird%2C%20P.E./Mozilla%20Thunderbird%2C%20Portable%20Edition%20115.10.1/ThunderbirdPortable_115.10.1_SimpChinese.paf.exe?viasf=1 有问题

没能重现SSL错误,ipv4 v6,Edge Firefox都试了。

TCP_SYN bit的修改,研究不够深,可能有bug吧,但我的电脑上不改用不了。

现在在default.conf用.sourceforge.net排除了.*.sourceforge.net,解决问题

没听懂怎么排除的。 method有开ttl以外的吗,可能影响。

jonm58 commented 5 months ago

w-md5的问题

jonm58 commented 5 months ago

现在在default.conf用.sourceforge.net排除了.*.sourceforge.net,解决问题

没听懂怎么排除的。 method有开ttl以外的吗,可能影响。

*.sourceforge.net->xxx.sourceforge.net .sourceforge.net->xxx.sourceforge.net 和 xxx.xxx.sourceforge.net (这里为"subdomain=2"的例子)

jonm58 commented 5 months ago

Pale Moon有一些小bug,不影响使用(?) image

jonm58 commented 2 months ago

https://github.com/jonm58/ghostcp/issues/22