import "github.com/v2ray/v2ray-core/proxy/socks"
Package socks provides implements of Socks protocol 4, 4a and 5.
client.go config.go config.pb.go errors.generated.go protocol.go server.go socks.go
var ( AuthType_name = map[int32]string{ 0: "NO_AUTH", 1: "PASSWORD", } AuthType_value = map[string]int32{ "NO_AUTH": 0, "PASSWORD": 1, } )
Enum value maps for AuthType.
var File_proxy_socks_config_proto protoreflect.FileDescriptor
func ClientHandshake(request *protocol.RequestHeader, reader io.Reader, writer io.Writer) (*protocol.RequestHeader, error)
ReadUntilNull reads content from given reader, until a null (0x00) byte.
ReadUsernamePassword reads Socks 5 username/password message from the given reader. +----+------+----------+------+----------+ |VER | ULEN | UNAME | PLEN | PASSWD | +----+------+----------+------+----------+ | 1 | 1 | 1 to 255 | 1 | 1 to 255 | +----+------+----------+------+----------+
type Account struct { Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` // contains filtered or unexported fields }
Account represents a Socks account.
Deprecated: Use Account.ProtoReflect.Descriptor instead.
func (x *Account) ProtoReflect() protoreflect.Message
AuthType is the authentication type of Socks proxy.
const ( // NO_AUTH is for anounymous authentication. AuthType_NO_AUTH AuthType = 0 // PASSWORD is for username/password authentication. AuthType_PASSWORD AuthType = 1 )
func (AuthType) Descriptor() protoreflect.EnumDescriptor
Deprecated: Use AuthType.Descriptor instead.
func (x AuthType) Number() protoreflect.EnumNumber
func (AuthType) Type() protoreflect.EnumType
type Client struct {
// contains filtered or unexported fields
}
Client is a Socks5 client.
NewClient create a new Socks5 client based on the given config.
Process implements proxy.Outbound.Process.
type ClientConfig struct { // Sever is a list of Socks server addresses. Server []*protocol.ServerEndpoint `protobuf:"bytes,1,rep,name=server,proto3" json:"server,omitempty"` // contains filtered or unexported fields }
ClientConfig is the protobuf config for Socks client.
func (*ClientConfig) Descriptor() ([]byte, []int)
Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead.
func (x *ClientConfig) GetServer() []*protocol.ServerEndpoint
func (*ClientConfig) ProtoMessage()
func (x *ClientConfig) ProtoReflect() protoreflect.Message
func (x *ClientConfig) Reset()
func (x *ClientConfig) String() string
type Server struct {
// contains filtered or unexported fields
}
Server is a SOCKS 5 proxy server
NewServer creates a new Server object.
Network implements proxy.Inbound.
func (s *Server) Process(ctx context.Context, network net.Network, conn internet.Connection, dispatcher routing.Dispatcher) error
Process implements proxy.Inbound.
type ServerConfig struct { AuthType AuthType `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=v2ray.core.proxy.socks.AuthType" json:"auth_type,omitempty"` Accounts map[string]string `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Address *net.IPOrDomain `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` UdpEnabled bool `protobuf:"varint,4,opt,name=udp_enabled,json=udpEnabled,proto3" json:"udp_enabled,omitempty"` // Deprecated: Do not use. Timeout uint32 `protobuf:"varint,5,opt,name=timeout,proto3" json:"timeout,omitempty"` UserLevel uint32 `protobuf:"varint,6,opt,name=user_level,json=userLevel,proto3" json:"user_level,omitempty"` // contains filtered or unexported fields }
ServerConfig is the protobuf config for Socks server.
func (*ServerConfig) Descriptor() ([]byte, []int)
Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.
func (x *ServerConfig) GetAccounts() map[string]string
func (x *ServerConfig) GetAddress() *net.IPOrDomain
func (x *ServerConfig) GetAuthType() AuthType
func (x *ServerConfig) GetTimeout() uint32
Deprecated: Do not use.
func (x *ServerConfig) GetUdpEnabled() bool
func (x *ServerConfig) GetUserLevel() uint32
func (c *ServerConfig) HasAccount(username, password string) bool
func (*ServerConfig) ProtoMessage()
func (x *ServerConfig) ProtoReflect() protoreflect.Message
func (x *ServerConfig) Reset()
func (x *ServerConfig) String() string
type ServerSession struct {
// contains filtered or unexported fields
}
func (s *ServerSession) Handshake(reader io.Reader, writer io.Writer) (*protocol.RequestHeader, error)
Handshake performs a Socks4/4a/5 handshake.
type UDPReader struct {
// contains filtered or unexported fields
}
func (r *UDPReader) ReadMultiBuffer() (buf.MultiBuffer, error)
type UDPWriter struct {
// contains filtered or unexported fields
}
Write implements io.Writer.
Package socks imports 27 packages (graph) and is imported by 3 packages. Updated 2020-10-21. Refresh now. Tools for package owners.