ehco 现在提供 SaaS(软件即服务)版本!这是一个全托管的解决方案,旨在为那些希望在不搭建和管理自己的服务器的情况下享受 ehco 强大流量转发能力的用户提供服务。
- tcp/udp relay
- tunnel relay (ws/wss/mwss/mtcp)
- proxy server (内嵌了完整版本的 xray)
- 监控报警 (Prometheus/Grafana)
- WebAPI (http://web_host:web_port)
- 更多功能请探索文档
ehco is a network ʚrelayɞ tool and a typo :)
Home Page: https://docs.ehco-relay.cc/
License: GNU General Public License v3.0
ehco 现在提供 SaaS(软件即服务)版本!这是一个全托管的解决方案,旨在为那些希望在不搭建和管理自己的服务器的情况下享受 ehco 强大流量转发能力的用户提供服务。
你好!我想问一下转发DDNS的话,多久刷新一次DDNS的缓存呢?
看了一遍readme好像没看到有写关于这个的,所以来问一下
目前热重载的逻辑是判断新的配置里是否包含新的监听端口,当仅有 remote 字段发生改变的时候,热重载会失效
ws隧道是否可以考虑转发udp
tcp进行ws加密转发,udp不进行ws加密转发,普通转发udp
如果后端掉线了是否依然将流量转发过去?能否对后端加上一个标记、或者检测?
this is helpful when we want a delay for some service
对于中继模式(ABC三台机),是否考虑A向B传递remote,C就不用再安装程序
A向B传递一个remote(C:SS端口)参数,B读取remote(C:SS端口)地址并转发C(落地鸡)的流量
对于普通转发(AB两台机),B读取remote(127.0.0.1:SS端口),B转发本地SS端口流量
只是个人想法,希望能够实现
我在vps和本地的mac上都安装了ehco,不过没太明白两边该各怎么带参数运行。
可以说得详细一些吗
希望能有关闭探针的功能,谢谢。
现有中转规则删除完后,新增加规则不会生效,查看规则显示现有规则为0。恢复默认配置后,新增规则才可以。
中转机运行:
ehco -l 0.0.0.0:20000 -r ws://x.x.x.x:20000 -tt ws
大概半小时抛异常, 进程退出. 落地机没有这个问题.
直接运行ehco, 和使用docker运行都会复现, 下面是部分docker日志:
internal/poll.runtime_pollWait(0x7eff551f4b38, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00010b918, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1df, 0xc00010b900, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00010b800, 0xc00010b900, 0x4000000000000000, 0x62e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00010b800, 0xaf5e60, 0xc0000b84d0, 0xc0002d8d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0x18, 0xc0002d8de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0x7eff551cbc38, 0xc0000b84c0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0xc000348000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0xc000348000, 0x1000, 0x1000, 0x668001, 0xc0002d8fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b84c0, 0xaf9f68, 0xc0000b84d0, 0x7fff5ab37f71, 0x1a, 0xc000343f80)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5908 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b82b8, 0xaf9f68, 0xc00000e4c8, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b82b8, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b82b8)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 3987 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b8238, 0xaf9f68, 0xc00000e420, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b8238, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b8238)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6191 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e6b8, 0xaf9f68, 0xc0000b84e0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e6b8, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e6b8)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6466 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6010, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003efe98, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x73, 0xc0003efe80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efd00, 0xc0003efe80, 0x4000000000000000, 0x2cca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efd00, 0xaf5e60, 0xc0000b86b8, 0xc000035598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0x18, 0xc0000355e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0x7eff551cbc38, 0xc00000e878, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0xc0003b1000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0xc0003b1000, 0x1000, 0x1000, 0x668001, 0xc0000357a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e878, 0xaf9f68, 0xc0000b86b8, 0x7fff5ab37f71, 0x1a, 0xc000573aa0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 2673 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4df0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00053df98, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x9f, 0xc00053df80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00054e080, 0xc00053df80, 0x4000000000000000, 0x2c54, 0x1, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00054e080, 0xaf5e60, 0xc0000b9090, 0xaf95b8, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0x18, 0xc000035de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0x7eff551cbc38, 0xc00000f3c0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0xc0003a3000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0xc0003a3000, 0x1000, 0x1000, 0x668001, 0xc000035fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000f3c0, 0xaf9f68, 0xc0000b9090, 0x7fff5ab37f71, 0x1a, 0xc0004ea780)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5226 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e668, 0xaf9f68, 0xc0000b8538, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e668, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e668)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5775 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fb318, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0c98, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x15f, 0xc0004c0c80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00053d380, 0xc0004c0c80, 0x4000000000000000, 0x512, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00053d380, 0xaf5e60, 0xc0000b81e8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0x18, 0xc000033de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0x7eff551cbc38, 0xc00000e390, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0xc0000df000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0xc0000df000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e390, 0xaf9f68, 0xc0000b81e8, 0x7fff5ab37f71, 0x1a, 0xc0002be1e0)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 3526 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551e6180, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574598, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1b1, 0xc000574580, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000574680, 0xc000574580, 0x4000000000000000, 0x704, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000574680, 0xaf5e60, 0xc0000b9610, 0xc000039598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0x18, 0xc0000395e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0x7eff551cbc38, 0xc0000b9630, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0xc0002b2000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0xc0002b2000, 0x1000, 0x1000, 0x668001, 0xc0000397a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b9630, 0xaf9f68, 0xc0000b9610, 0x7fff5ab37f71, 0x1a, 0xc000572a20)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 2672 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4d08, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00054e098, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x33, 0xc00054e080, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00053df80, 0xc00054e080, 0x4000000000000000, 0x1d4a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00053df80, 0xaf5e60, 0xc00000f3c0, 0xc000039d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0x18, 0xc000039de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0x7eff551cbc38, 0xc0000b9090, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0xc0000e0000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0xc0000e0000, 0x1000, 0x1000, 0x668001, 0xc000039fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b9090, 0xaf9f68, 0xc00000f3c0, 0x7fff5ab37f71, 0x1a, 0xc0004ea780)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 2639 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b9068, 0xaf9f68, 0xc00000f390, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b9068, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b9068)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6305 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6498, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368998, 0x72, 0x200, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x20b, 0xc000368980, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003ee180, 0xc000368980, 0x4000000000000000, 0x1c9a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003ee180, 0xaf5e60, 0xc0000b8598, 0xc000038598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e760, 0xaf5e60, 0xc0000b8598, 0x18, 0xc0000385e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e760, 0xaf5e60, 0xc0000b8598, 0x7eff551cbc38, 0xc00000e760, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e760, 0xaf5e60, 0xc0000b8598, 0xc000669000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e760, 0xaf5e60, 0xc0000b8598, 0xc000669000, 0x1000, 0x1000, 0x668001, 0xc0000387a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e760, 0xaf9f68, 0xc0000b8598, 0x7fff5ab37f71, 0x1a, 0xc000572d20)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5592 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f5618, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000504d98, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xd3, 0xc000504d80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000504e80, 0xc000504d80, 0x4000000000000000, 0xac6, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000504e80, 0xaf5e60, 0xc0000b8088, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0x18, 0xc0000375e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0x7eff551cbc38, 0xc0000b8090, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0xc000378000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0xc000378000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b8090, 0xaf9f68, 0xc0000b8088, 0x7fff5ab37f71, 0x1a, 0xc0002389c0)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 4058 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551b8268, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b718, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x37, 0xc00023b700, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b600, 0xc00023b700, 0x4000000000000000, 0xf7e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b600, 0xaf5e60, 0xc0000b82b0, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0x18, 0xc0000375e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0x7eff551cbc38, 0xc00000e4a0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0xc000428000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0xc000428000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e4a0, 0xaf9f68, 0xc0000b82b0, 0x7fff5ab37f71, 0x1a, 0xc000086ea0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 2710 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551e5ec8, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004e7898, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x2d, 0xc0004e7880, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004e7980, 0xc0004e7880, 0x4000000000000000, 0x953, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004e7980, 0xaf5e60, 0xc00000f400, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0x18, 0xc000033de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0x7eff551cbc38, 0xc0000b90e0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0xc000411000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0xc000411000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b90e0, 0xaf9f68, 0xc00000f400, 0x7fff5ab37f71, 0x1a, 0xc0004eaa20)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 2707 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000f400, 0xaf9f68, 0xc0000b90e0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000f400, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000f400)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5786 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b81f0, 0xaf9f68, 0xc00000e398, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b81f0, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b81f0)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6465 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551d5628, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003efc98, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x4f, 0xc0003efc80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004b8600, 0xc0003efc80, 0x4000000000000000, 0x19ca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004b8600, 0xaf5e60, 0xc00000e870, 0xc0002d6d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e880, 0xaf5e60, 0xc00000e870, 0x18, 0xc0002d6de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e880, 0xaf5e60, 0xc00000e870, 0x7eff551cbc38, 0xc00000e880, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e880, 0xaf5e60, 0xc00000e870, 0xc0002c7000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e880, 0xaf5e60, 0xc00000e870, 0xc0002c7000, 0x1000, 0x1000, 0x668001, 0xc0002d6fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e880, 0xaf9f68, 0xc00000e870, 0x7fff5ab37f71, 0x1a, 0xc000573a40)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 6292 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e5130, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368898, 0x72, 0x200, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x209, 0xc000368880, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368780, 0xc000368880, 0x4000000000000000, 0x173f, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368780, 0xaf5e60, 0xc00000e768, 0xc0002d5d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8580, 0xaf5e60, 0xc00000e768, 0x18, 0xc0002d5de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8580, 0xaf5e60, 0xc00000e768, 0x7eff551cbc38, 0xc0000b8580, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8580, 0xaf5e60, 0xc00000e768, 0xc0000c8000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8580, 0xaf5e60, 0xc00000e768, 0xc0000c8000, 0x1000, 0x1000, 0x668001, 0xc0002d5fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b8580, 0xaf9f68, 0xc00000e768, 0x7fff5ab37f71, 0x1a, 0xc000445740)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 4066 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e4a0, 0xaf9f68, 0xc0000b82b0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e4a0, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e4a0)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5367 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e750, 0xaf9f68, 0xc00000e758, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e750, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e750)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5422 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551cd838, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004a2518, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x116, 0xc0004a2500, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efd80, 0xc0004a2500, 0x4000000000000000, 0x1e2fe, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efd80, 0xaf5e60, 0xc0000b86e8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0x18, 0xc000033de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0x7eff551cbc38, 0xc0000b86e0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0xc0000ef000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0xc0000ef000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b86e0, 0xaf9f68, 0xc0000b86e8, 0x7fff5ab37f71, 0x1a, 0xc000086fc0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5398 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff54fe3828, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ef818, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x96, 0xc0003ef800, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003ef700, 0xc0003ef800, 0x4000000000000000, 0x278a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003ef700, 0xaf5e60, 0xc00000e780, 0xc000038d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0x18, 0xc000038de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0x7eff551cbc38, 0xc0000b86a0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0xc0003da000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0xc0003da000, 0x1000, 0x1000, 0x668001, 0xc000038fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b86a0, 0xaf9f68, 0xc00000e780, 0x7fff5ab37f71, 0x1a, 0xc00007b020)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5330 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e700, 0xaf9f68, 0xc00000e708, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e700, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e700)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6293 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e5218, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368798, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x18b, 0xc000368780, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368880, 0xc000368780, 0x4000000000000000, 0x27d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368880, 0xaf5e60, 0xc0000b8580, 0xc0002d4d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e768, 0xaf5e60, 0xc0000b8580, 0x18, 0xc0002d4de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e768, 0xaf5e60, 0xc0000b8580, 0x7eff551cbc38, 0xc00000e768, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e768, 0xaf5e60, 0xc0000b8580, 0xc0003d0000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e768, 0xaf5e60, 0xc0000b8580, 0xc0003d0000, 0x1000, 0x1000, 0x668001, 0xc0002d4fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e768, 0xaf9f68, 0xc0000b8580, 0x7fff5ab37f71, 0x1a, 0xc000445740)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5126 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551f5c70, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023a018, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xe0, 0xc00023a000, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023a180, 0xc00023a000, 0x4000000000000000, 0xfb5, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023a180, 0xaf5e60, 0xc0000b8490, 0xc0002d6598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e558, 0xaf5e60, 0xc0000b8490, 0x18, 0xc0002d65e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e558, 0xaf5e60, 0xc0000b8490, 0x7eff551cbc38, 0xc00000e558, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e558, 0xaf5e60, 0xc0000b8490, 0xc000593000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e558, 0xaf5e60, 0xc0000b8490, 0xc000593000, 0x1000, 0x1000, 0x668001, 0xc0002d67a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e558, 0xaf9f68, 0xc0000b8490, 0x7fff5ab37f71, 0x1a, 0xc0004457a0)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5862 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e418, 0xaf9f68, 0xc0000b8270, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e418, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e418)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6348 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f3f70, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000369998, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1a5, 0xc000369980, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000369880, 0xc000369980, 0x4000000000000000, 0xd8a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000369880, 0xaf5e60, 0xc00000e7b0, 0xc0002d7d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0x18, 0xc0002d7de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0x7eff551cbc38, 0xc0000b85f8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0xc000250000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0xc000250000, 0x1000, 0x1000, 0x668001, 0xc0002d7fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b85f8, 0xaf9f68, 0xc00000e7b0, 0x7fff5ab37f71, 0x1a, 0xc0005730e0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5789 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfe28, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0d18, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x161, 0xc0004c0d00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0e00, 0xc0004c0d00, 0x4000000000000000, 0x4ce, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0e00, 0xaf5e60, 0xc0000b81f0, 0xc000038d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0x18, 0xc000038de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0x7eff551cbc38, 0xc00000e398, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0xc000349000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0xc000349000, 0x1000, 0x1000, 0x668001, 0xc000038fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e398, 0xaf9f68, 0xc0000b81f0, 0x7fff5ab37f71, 0x1a, 0xc000087bc0)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5925 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfb70, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c1e18, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xf7, 0xc0004c1e00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000574b80, 0xc0004c1e00, 0x4000000000000000, 0x329, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000574b80, 0xaf5e60, 0xc0000b82a0, 0xc0002d2d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0x18, 0xc0002d2de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0x7eff551cbc38, 0xc00000e4b0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0xc000473000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0xc000473000, 0x1000, 0x1000, 0x668001, 0xc0002d2fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e4b0, 0xaf9f68, 0xc0000b82a0, 0x7fff5ab37f71, 0x1a, 0xc0002becc0)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 6214 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551cdda8, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b418, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1e7, 0xc00023b400, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b300, 0xc00023b400, 0x4000000000000000, 0x117e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b300, 0xaf5e60, 0xc0000b84e0, 0xc000039d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0x18, 0xc000039de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0x7eff551cbc38, 0xc00000e6b8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0xc00011c000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0xc00011c000, 0x1000, 0x1000, 0x668001, 0xc000039fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e6b8, 0xaf9f68, 0xc0000b84e0, 0x7fff5ab37f71, 0x1a, 0xc000572120)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5255 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551dfc58, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368498, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x2b, 0xc000368480, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368300, 0xc000368480, 0x4000000000000000, 0x1642, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368300, 0xaf5e60, 0xc0000b8588, 0xc000037d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e698, 0xaf5e60, 0xc0000b8588, 0x18, 0xc000037de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e698, 0xaf5e60, 0xc0000b8588, 0x7eff551cbc38, 0xc00000e698, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e698, 0xaf5e60, 0xc0000b8588, 0xc000111000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e698, 0xaf5e60, 0xc0000b8588, 0xc000111000, 0x1000, 0x1000, 0x668001, 0xc000037fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e698, 0xaf9f68, 0xc0000b8588, 0x7fff5ab37f71, 0x1a, 0xc00007a300)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6411 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e818, 0xaf9f68, 0xc00000e820, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e818, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e818)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6306 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6580, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ee198, 0x72, 0x200, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x20d, 0xc0003ee180, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368980, 0xc0003ee180, 0x4000000000000000, 0x1fc8, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368980, 0xaf5e60, 0xc00000e760, 0xc0002d4598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8598, 0xaf5e60, 0xc00000e760, 0x18, 0xc0002d45e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8598, 0xaf5e60, 0xc00000e760, 0x7eff551cbc38, 0xc0000b8598, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8598, 0xaf5e60, 0xc00000e760, 0xc0002bb000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8598, 0xaf5e60, 0xc00000e760, 0xc0002bb000, 0x1000, 0x1000, 0x668001, 0xc0002d47a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b8598, 0xaf9f68, 0xc00000e760, 0x7fff5ab37f71, 0x1a, 0xc000572d20)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5924 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4880, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574b98, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xf5, 0xc000574b80, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1e00, 0xc000574b80, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1e00, 0xaf5e60, 0xc00000e4b0, 0xc0002d7d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0x18, 0xc0002d7de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0x7eff551cbc38, 0xc0000b82a0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0xc000391000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0xc000391000, 0x1000, 0x1000, 0x668001, 0xc0002d7fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82a0, 0xaf9f68, 0xc00000e4b0, 0x7fff5ab37f71, 0x1a, 0xc0002becc0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6215 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551cde90, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b318, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1e5, 0xc00023b300, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b400, 0xc00023b300, 0x4000000000000000, 0xf80, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b400, 0xaf5e60, 0xc00000e6b8, 0xc0002d8d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0x18, 0xc0002d8de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0x7eff551cbc38, 0xc0000b84e0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0xc0005fc000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0xc0005fc000, 0x1000, 0x1000, 0x668001, 0xc0002d8fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b84e0, 0xaf9f68, 0xc00000e6b8, 0x7fff5ab37f71, 0x1a, 0xc000572120)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5371 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551fb888, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ef498, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x86, 0xc0003ef480, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000369700, 0xc0003ef480, 0x4000000000000000, 0xfd4, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000369700, 0xaf5e60, 0xc00000e758, 0xc0002d6d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e750, 0xaf5e60, 0xc00000e758, 0x18, 0xc0002d6de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e750, 0xaf5e60, 0xc00000e758, 0x7eff551cbc38, 0xc00000e750, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e750, 0xaf5e60, 0xc00000e758, 0xc000671000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e750, 0xaf5e60, 0xc00000e758, 0xc000671000, 0x1000, 0x1000, 0x668001, 0xc0002d6fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e750, 0xaf9f68, 0xc00000e758, 0x7fff5ab37f71, 0x1a, 0xc00007ad20)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6290 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e760, 0xaf9f68, 0xc0000b8598, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e760, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e760)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6307 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b85a0, 0xaf9f68, 0xc00000e770, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b85a0, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b85a0)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5926 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fc9c0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574d18, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x122, 0xc000574d00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1e80, 0xc000574d00, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1e80, 0xaf5e60, 0xc00000e4b8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0x18, 0xc000033de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0x7eff551cbc38, 0xc0000b82a8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0xc000435000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0xc000435000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82a8, 0xaf9f68, 0xc00000e4b8, 0x7fff5ab37f71, 0x1a, 0xc0002bed20)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6346 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b85f8, 0xaf9f68, 0xc00000e7b0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b85f8, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b85f8)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 5774 [IO wait]:
internal/poll.runtime_pollWait(0x7eff54fe4220, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00053d398, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x163, 0xc00053d380, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0c80, 0xc00053d380, 0x4000000000000000, 0x18ca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0c80, 0xaf5e60, 0xc00000e390, 0xc0002d7598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0x18, 0xc0002d75e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0x7eff551cbc38, 0xc0000b81e8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0xc0003d7000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0xc0003d7000, 0x1000, 0x1000, 0x668001, 0xc0002d77a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b81e8, 0xaf9f68, 0xc00000e390, 0x7fff5ab37f71, 0x1a, 0xc0002be1e0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6295 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e68c0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368b18, 0x72, 0x200, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x22f, 0xc000368b00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368a00, 0xc000368b00, 0x4000000000000000, 0x17d4, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368a00, 0xaf5e60, 0xc00000e770, 0xc0002d4598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0x18, 0xc0002d45e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0x7eff551cbc38, 0xc0000b85a0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0xc000451000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0xc000451000, 0x1000, 0x1000, 0x668001, 0xc0002d47a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b85a0, 0xaf9f68, 0xc00000e770, 0x7fff5ab37f71, 0x1a, 0xc000445860)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6055 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b83d0, 0xaf9f68, 0xc00000e5c8, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b83d0, 0x0, 0x0)
/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b83d0)
/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
/app/internal/relay/relay.go:105 +0xf8
goroutine 6058 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fc368, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000b3d18, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x6b, 0xc0000b3d00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0000b3e80, 0xc0000b3d00, 0x4000000000000000, 0x4385, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0000b3e80, 0xaf5e60, 0xc0000b83d0, 0xc0002d2d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0x18, 0xc0002d2de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0x7eff551cbc38, 0xc00000e5c8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0xc000314000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0xc000314000, 0x1000, 0x1000, 0x668001, 0xc0002d2fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e5c8, 0xaf9f68, 0xc0000b83d0, 0x7fff5ab37f71, 0x1a, 0xc000343260)
/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:71 +0x11f
goroutine 5928 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fabd8, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000b2018, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x170, 0xc0000b2000, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1f00, 0xc0000b2000, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1f00, 0xaf5e60, 0xc00000e4c8, 0xc0002d5d98, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0x18, 0xc0002d5de8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0x7eff551cbc38, 0xc0000b82b8, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0xc000279000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0xc000279000, 0x1000, 0x1000, 0x668001, 0xc0002d5fa0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82b8, 0xaf9f68, 0xc00000e4c8, 0x7fff5ab37f71, 0x1a, 0xc0002bed80)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 6432 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551d5540, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004b8618, 0x72, 0x0, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x5b, 0xc0004b8600, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efc80, 0xc0004b8600, 0x4000000000000000, 0xd86e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efc80, 0xaf5e60, 0xc00000e880, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e870, 0xaf5e60, 0xc00000e880, 0x18, 0xc0000375e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e870, 0xaf5e60, 0xc00000e880, 0x7eff551cbc38, 0xc00000e870, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e870, 0xaf5e60, 0xc00000e880, 0xc000471000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e870, 0xaf5e60, 0xc00000e880, 0xc000471000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e870, 0xaf9f68, 0xc00000e880, 0x7fff5ab37f71, 0x1a, 0xc000573a40)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf
goroutine 5788 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfd40, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0e18, 0x72, 0x100, 0x0, 0x400000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x165, 0xc0004c0e00, 0x400000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0d00, 0xc0004c0e00, 0x4000000000000000, 0x18a9, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0d00, 0xaf5e60, 0xc00000e398, 0xc000034598, 0x40a63f, 0xc000010000, 0x9b2800)
/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0x18, 0xc0000345e8, 0x40ba4a)
/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0x7eff551cbc38, 0xc0000b81f0, 0x1)
/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0xc000600000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0xc000600000, 0x1000, 0x1000, 0x668001, 0xc0000347a0, 0x92205b)
/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b81f0, 0xaf9f68, 0xc00000e398, 0x7fff5ab37f71, 0x1a, 0xc000087bc0)
/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
/app/internal/transporter/buffer.go:63 +0xaf```
releated to https://github.com/Ehco1996/aioshadowsocks
logger with different component field such as
是否能通过读取json文件来实现开机自启,多端口转发?ehco的配置文件格式如何写?
用gost没有这个问题。
感谢作者提供的优秀的工具。
请求在负载均衡这里加入类似nginx的对后端的检测功能,可以标记backup,或者down等。
再次感谢。
OP软路由里运行ehco DOCKER做中转机,如何通过mwss隧道转发5008端口到落地机2.2.2.2的443端口呢?
请教ehco_1.1.0_linux_amd64这个怎么用?好像没法解压
请问使用docker运行方式保持后台运行是需要进入docker运行ehco类似这些命令:**ehco -l 0.0.0.0:1234 -r 2.2.2.2:5555**
吗?
可否提供环境变量使用 -e
参数直接运行这样用起来更简易。
基本思路
我尝试了多次 测出来 udp 类型unknown
请问目前版本能否支持端口段转发呢?
如果没有,请问日后有无增加的可能呢?
谢谢
prebuild binaries from GitHub Releases are not static linked executable, so it can not run in Alpine Linux.
// TODO muti transporter
tr.sessionMutex.Lock()
defer tr.sessionMutex.Unlock()
换一下算法
请问是否支持在服务器A与B之间建立隧道 再将A发到B的数据通过B转发给C?或将C传输给B的数据通过AB间的隧道传回给A?如果支持的话命令该如何写呢?
非常喜欢这个小工具,希望能够支持windows操作系统。
使用软件:SSRR
出现的问题:开启udp转发后无法建立tcp链接,关闭udp转发后tcp正常建立连接。
请问监控web怎么运行?我配置好后打开IP:9000显示下面的内容,并没有监控的信息?
Ehco(Version 1.0.7)
ehco is a network relay tool and a typo :)
More information here
Metrics
Debug
配置文件中configs的一个数组里多个 listen 只生效最后一个,希望可以对端口监听改进下,和监听IP分开,可以区间监听,类似于V2ray,或者可以全部生效
希望大佬可以加上负载均衡,比如多个 remote 会轮询
感谢作者提供这么棒的中转工具!
因为我是一直独立使用Ehco
搭建隧道的,所以我一直在查找Ehco
自身是否存在一个WEB API
可以直接输出每个转发的流量总计。我在阅读了ehco/internal/web
的代码中,看到了在traffic_metrics.go
中有提到,但是我似乎并没有在server.go
的route
中找到有关可以直接提供流量统计的API
入口。
另外我在ehco/monitor
看到了一个dashboard
,不仅可以输出Ping值,也可以输出流量总计,您知道这个面板是如何部署的吗?还是说需要搭配您的django-sspanel
一起食用哦?
目前我的临时解决方案是只能通过系统级的iptables
对端口的入站和出站流量进行统计,如果Ehco
自身有这样的WEB API
或者以cli
的形式可以输出结果的话就再好不过了。
非常感谢!
(colorConst.blue_prefix,str(len(json_data['relay_configs'])),colorConst.plain_prefix))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.