1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-01-17 14:57:44 -05:00

log access in socks and http

This commit is contained in:
v2ray 2016-06-05 15:02:15 +02:00
parent 798c870069
commit 5eae540e5c
3 changed files with 11 additions and 4 deletions

View File

@ -123,6 +123,7 @@ func (this *Server) handleConnection(conn *hub.Connection) {
log.Warning("HTTP: Malformed proxy host (", host, "): ", err) log.Warning("HTTP: Malformed proxy host (", host, "): ", err)
return return
} }
log.Access(conn.RemoteAddr(), request.URL, log.AccessAccepted, "")
if strings.ToUpper(request.Method) == "CONNECT" { if strings.ToUpper(request.Method) == "CONNECT" {
this.handleConnect(request, dest, reader, conn) this.handleConnect(request, dest, reader, conn)
} else { } else {

View File

@ -110,14 +110,15 @@ func (this *Server) handleConnection(connection *hub.Connection) {
return return
} }
cliendAddr := connection.RemoteAddr().String()
if err != nil && err == protocol.Socks4Downgrade { if err != nil && err == protocol.Socks4Downgrade {
this.handleSocks4(reader, writer, auth4) this.handleSocks4(clientAddr, reader, writer, auth4)
} else { } else {
this.handleSocks5(reader, writer, auth) this.handleSocks5(clientAddr, reader, writer, auth)
} }
} }
func (this *Server) handleSocks5(reader *v2io.BufferedReader, writer *v2io.BufferedWriter, auth protocol.Socks5AuthenticationRequest) error { func (this *Server) handleSocks5(clientAddr string, reader *v2io.BufferedReader, writer *v2io.BufferedWriter, auth protocol.Socks5AuthenticationRequest) error {
expectedAuthMethod := protocol.AuthNotRequired expectedAuthMethod := protocol.AuthNotRequired
if this.config.AuthType == AuthTypePassword { if this.config.AuthType == AuthTypePassword {
expectedAuthMethod = protocol.AuthUserPass expectedAuthMethod = protocol.AuthUserPass
@ -161,6 +162,7 @@ func (this *Server) handleSocks5(reader *v2io.BufferedReader, writer *v2io.Buffe
} }
if status != byte(0) { if status != byte(0) {
log.Warning("Socks: Invalid user account: ", upRequest.AuthDetail()) log.Warning("Socks: Invalid user account: ", upRequest.AuthDetail())
log.Access(clientAddr, "", log.AccessRejected, proxy.ErrorInvalidAuthentication)
return proxy.ErrorInvalidAuthentication return proxy.ErrorInvalidAuthentication
} }
} }
@ -209,6 +211,7 @@ func (this *Server) handleSocks5(reader *v2io.BufferedReader, writer *v2io.Buffe
dest := request.Destination() dest := request.Destination()
log.Info("Socks: TCP Connect request to ", dest) log.Info("Socks: TCP Connect request to ", dest)
log.Access(clientAddr, dest, log.AccessAccepted, "")
this.transport(reader, writer, dest) this.transport(reader, writer, dest)
return nil return nil
@ -246,7 +249,7 @@ func (this *Server) handleUDP(reader io.Reader, writer *v2io.BufferedWriter) err
return nil return nil
} }
func (this *Server) handleSocks4(reader *v2io.BufferedReader, writer *v2io.BufferedWriter, auth protocol.Socks4AuthenticationRequest) error { func (this *Server) handleSocks4(clientAddr string, reader *v2io.BufferedReader, writer *v2io.BufferedWriter, auth protocol.Socks4AuthenticationRequest) error {
result := protocol.Socks4RequestGranted result := protocol.Socks4RequestGranted
if auth.Command == protocol.CmdBind { if auth.Command == protocol.CmdBind {
result = protocol.Socks4RequestRejected result = protocol.Socks4RequestRejected
@ -257,6 +260,7 @@ func (this *Server) handleSocks4(reader *v2io.BufferedReader, writer *v2io.Buffe
if result == protocol.Socks4RequestRejected { if result == protocol.Socks4RequestRejected {
log.Warning("Socks: Unsupported socks 4 command ", auth.Command) log.Warning("Socks: Unsupported socks 4 command ", auth.Command)
log.Access(clientAddr, "", log.AccessRejected, ErrorUnsupportedSocksCommand)
return ErrorUnsupportedSocksCommand return ErrorUnsupportedSocksCommand
} }
@ -264,6 +268,7 @@ func (this *Server) handleSocks4(reader *v2io.BufferedReader, writer *v2io.Buffe
writer.SetCached(false) writer.SetCached(false)
dest := v2net.TCPDestination(v2net.IPAddress(auth.IP[:]), auth.Port) dest := v2net.TCPDestination(v2net.IPAddress(auth.IP[:]), auth.Port)
log.Access(clientAddr, dest, log.AccessAccepted, "")
this.transport(reader, writer, dest) this.transport(reader, writer, dest)
return nil return nil
} }

View File

@ -43,6 +43,7 @@ func (this *Server) handleUDPPayload(payload *alloc.Buffer, source v2net.Destina
} }
log.Info("Socks: Send packet to ", request.Destination(), " with ", request.Data.Len(), " bytes") log.Info("Socks: Send packet to ", request.Destination(), " with ", request.Data.Len(), " bytes")
log.Access(source, request.Destination, log.AccessAccepted, "")
this.udpServer.Dispatch(source, request.Destination(), request.Data, func(destination v2net.Destination, payload *alloc.Buffer) { this.udpServer.Dispatch(source, request.Destination(), request.Data, func(destination v2net.Destination, payload *alloc.Buffer) {
response := &protocol.Socks5UDPRequest{ response := &protocol.Socks5UDPRequest{
Fragment: 0, Fragment: 0,