Git Product home page Git Product logo

Comments (5)

Qinhank avatar Qinhank commented on June 11, 2024 2

@Ehco1996 我查看了ss的日志,确实有一些错误。
于是我使用了XrayR的ss并且切换为aes-128-gcm加密(之前是chacha20-ietf-poly1305)且全部重新编译master分支的ehco,经过短暂的10分钟测试似乎没有问题了,可能确实是与之前的Shadowsocks-libev存在一些问题。

Shadowsocks-libev的错误日志如下:

Apr 16 21:44:39 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:44:39 ERROR: getpeername: Transport endpoint is not connected
Apr 16 21:44:39 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:44:39 ERROR: getpeername: Transport endpoint is not connected
Apr 16 21:45:34 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:45:34 ERROR: server recv: Connection reset by peer
Apr 16 21:48:52 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:48:52 ERROR: server recv: Connection reset by peer
Apr 16 21:49:42 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:49:42 ERROR: failed to handshake with 58.32.7.16: authentication error
Apr 16 21:50:56 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:50:56 ERROR: server recv: Connection reset by peer
Apr 16 21:53:06 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:53:06 ERROR: server recv: Connection reset by peer
Apr 16 21:53:08 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:53:08 ERROR: remote recv: Connection reset by peer
Apr 16 21:54:56 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:54:56 ERROR: getpeername: Transport endpoint is not connected
Apr 16 21:56:58 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:56:58 ERROR: remote recv: Connection reset by peer
Apr 16 21:58:18 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 21:58:18 ERROR: server recv: Connection reset by peer
Apr 16 22:06:58 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:06:58 ERROR: remote recv: Connection reset by peer
Apr 16 22:10:38 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:10:38 ERROR: failed to handshake with 127.0.0.1: authentication error
Apr 16 22:10:43 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:10:43 ERROR: failed to handshake with 127.0.0.1: authentication error
Apr 16 22:10:48 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:10:48 ERROR: failed to handshake with 127.0.0.1: authentication error
Apr 16 22:10:50 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:10:50 ERROR: remote recv: Connection reset by peer
Apr 16 22:10:53 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:10:53 ERROR: failed to handshake with 127.0.0.1: authentication error
Apr 16 22:15:00 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:15:00 ERROR: failed to handshake with 103.197.70.186: authentication error
Apr 16 22:16:58 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:16:58 ERROR: remote recv: Connection reset by peer
Apr 16 22:17:31 cloud-instance shadowsocks-libev.ss-server-daemon[21859]:  2022-04-16 22:17:31 ERROR: server recv: Connection reset by peer

from ehco.

Ehco1996 avatar Ehco1996 commented on June 11, 2024

@Qinhank 能提怎么测试的么?有脚本或者环境么,另外最好附上测试的日志

我直接使用 iperf3 在两端互拉是不会不断流的

❯ go run cmd/ehco/main.go -c config.json
[cfg] Load Config From file: config.json
[web] Start Web Server at http://0.0.0.0:9000/
[cfg] Start to watch config file: config.json
[relay] Start UDP relay <At=127.0.0.1:1234 Over=raw TCP-To=[0.0.0.0:5201] UDP-To=[0.0.0.0:5201] Through=raw>
[relay] Start WSS relay <At=127.0.0.1:3443 Over=wss TCP-To=[0.0.0.0:5201] UDP-To=[] Through=raw>
[relay] Start UDP relay <At=127.0.0.1:1237 Over=raw TCP-To=[wss://0.0.0.0:4443] UDP-To=[0.0.0.0:5201] Through=mwss>
[relay] Start UDP relay <At=127.0.0.1:1235 Over=raw TCP-To=[ws://0.0.0.0:2443] UDP-To=[0.0.0.0:5201] Through=ws>
[relay] Start UDP relay <At=127.0.0.1:1236 Over=raw TCP-To=[wss://0.0.0.0:3443] UDP-To=[0.0.0.0:5201] Through=wss>
[relay] Start WS relay <At=127.0.0.1:2443 Over=ws TCP-To=[0.0.0.0:5201] UDP-To=[] Through=raw>
[relay] Start TCP relay <At=127.0.0.1:1236 Over=raw TCP-To=[wss://0.0.0.0:3443] UDP-To=[0.0.0.0:5201] Through=wss>
[relay] Start TCP relay <At=127.0.0.1:1235 Over=raw TCP-To=[ws://0.0.0.0:2443] UDP-To=[0.0.0.0:5201] Through=ws>
[relay] Start TCP relay <At=127.0.0.1:1234 Over=raw TCP-To=[0.0.0.0:5201] UDP-To=[0.0.0.0:5201] Through=raw>
[relay] Start MWSS relay <At=127.0.0.1:4443 Over=mwss TCP-To=[0.0.0.0:5201] UDP-To=[] Through=raw>
[relay] Start TCP relay <At=127.0.0.1:8888 Over=raw TCP-To=[8.8.8.8:5201 google.com:5201] UDP-To=[] Through=raw>
[relay] Start TCP relay <At=127.0.0.1:1237 Over=raw TCP-To=[wss://0.0.0.0:4443] UDP-To=[0.0.0.0:5201] Through=mwss>
[mwss server init] 127.0.0.1:52799  127.0.0.1:4443
[mwss] Init new session to: 127.0.0.1:4443
[mwss] HandleTCPConn from:127.0.0.1:52798 to:wss://0.0.0.0:4443
[tun] HandleMWssRequest from:127.0.0.1:52799 to:0.0.0.0:5201
[mwss] HandleTCPConn from:127.0.0.1:52801 to:wss://0.0.0.0:4443
[tun] HandleMWssRequest from:127.0.0.1:52799 to:0.0.0.0:5201

结果

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-100.00 sec   156 GBytes  13.4 Gbits/sec                  sender
[  5]   0.00-100.00 sec   156 GBytes  13.4 Gbits/sec                  receiver

iperf Done.

from ehco.

Qinhank avatar Qinhank commented on June 11, 2024

首先补充下关于两台机器系统细节。
中转机:Debian10(内核5.10.0-0.bpo.12-cloud-amd64,虚拟架构KVM)
落地机:Debian10(内核5.10.0-0.bpo.9-cloud-amd64,虚拟架构KVM)
假定中转机的IP地址为:120.233.0.0
假定落地机的IP地址为:103.181.0.0
中转机使用的命令是:./ehco_1.1.1_linux_amd64 -l 0.0.0.0:63800 -r wss://103.181.0.0:62100 -tt mwss
落地机使用的命令是:./ehco_1.1.1_linux_amd64 -l 0.0.0.0:62100 -lt mwss -r 127.0.0.1:63701
落地转发的协议为:Shadowsocks-libev
参考搭建地址:这里查看

中转机失败时日志如下:

HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51858: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51862: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51860: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51856: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51864: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51874: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51872: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51870: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51866: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]
HandleTCPConn err=read tcp 120.233.0.0:63800->110.191.0.1:51868: i/o timeout name=[At=0.0.0.0:63800 Over=raw TCP-To=[wss://103.181.0.0:62100] UDP-To=[] Through=mwss]

落地机失败时日志如下:

[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset err: timeout
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset from:120.233.0.0:56132 to:-127.0.0.1:63701
[tun] HandleMWssRequset err: read tcp 10.0.0.187:62100->120.233.0.0:56132: read: connection reset by peer
[tun] HandleMWssRequset err: read tcp 10.0.0.187:62100->120.233.0.0:56132: read: connection reset by peer
[mwss] accept stream err: read tcp 10.0.0.187:62100->120.233.0.0:56132: read: connection reset by peer

测速结果截图:
测速结果截图

from ehco.

Ehco1996 avatar Ehco1996 commented on June 11, 2024

@Qinhank 从落地机器的日志上看,是 ehco 到 ss 的连接有问题,需要附上 ss 的日志才能排查了


另外发现落地机器上的 ehco 版本不是 master 的,能 build 一个最新的试试么?

from ehco.

Ehco1996 avatar Ehco1996 commented on June 11, 2024

我在本机做了一下 ss 的测试,也没有发生断流的现象,测试过程和脚本可以参考这里

https://github.com/Ehco1996/ehco/tree/master/test/bench

from ehco.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.