From c47dd30cf89a40cae11c1b402c3df8af3d9d67d5 Mon Sep 17 00:00:00 2001 From: berlin2123 <68841407+berlin2123@users.noreply.github.com> Date: Wed, 27 Apr 2022 16:59:27 +0800 Subject: [PATCH] Log duration of each connection Log duration of each connection, which may be used to indentify Brute_Force_Attack inside frps sever. --- server/proxy/proxy.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index 43c2c74e..c7044b2f 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -287,6 +287,7 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv if cfg.UseCompression { local = frpIo.WithCompression(local) } + startime := time.Now().UnixNano() / 1000000 // time in microseconds xl.Debug("join connections, workConn(l[%s] r[%s]) userConn(l[%s] r[%s])", workConn.LocalAddr().String(), workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String()) @@ -297,7 +298,11 @@ func HandleUserTCPConnection(pxy Proxy, userConn net.Conn, serverCfg config.Serv metrics.Server.CloseConnection(name, proxyType) metrics.Server.AddTrafficIn(name, proxyType, inCount) metrics.Server.AddTrafficOut(name, proxyType, outCount) - xl.Debug("join connections closed") + endtime := time.Now().UnixNano() / 1000000 // time in microseconds + connection_duration := endtime - startime + //xl.Debug("join connections closed, it remains [%d]ms, workConn(l[%s] r[%s]) userConn(l[%s] r[%s])", connection_duration, + // workConn.LocalAddr().String(), workConn.RemoteAddr().String(), userConn.LocalAddr().String(), userConn.RemoteAddr().String() ) + xl.Info("connections closed, it remains [%d]ms, [%s]", connection_duration, userConn.RemoteAddr().String() ) } type Manager struct {