Documentation
¶
Index ¶
- Constants
- Variables
- func NewDialerHTTPConnect(forwardDialer netproxy.Dialer, forwardUrl *url.URL, user, pass, country string) *dialerHTTPConnect
- func NewDomainTracer() *domainTracer
- func NewNoopTracer() *noopTracer
- func NewServer(allowedSubnets []*net.IPNet, allowedIPs []net.IP, ...) *proxyServer
- func NewStickyMapper(path string) (*stickyMapper, error)
- type Conn
- type Connection
- type Context
- type StickyMapper
Constants ¶
const (
// MemoryStorage describes in-memory data storage.
MemoryStorage = ":memory:"
)
const SO_ORIGINAL_DST = 0x50
SO_ORIGINAL_DST get the original destination for the socket when redirect by linux iptables refer to https://raw.githubusercontent.com/missdeer/avege/master/src/inbound/redir/redir_iptables.go
Variables ¶
var DialerDirect = netproxy.Direct
DialerDirect is a direct proxy: one that makes network connections directly, good for testing
Functions ¶
func NewDialerHTTPConnect ¶
func NewDialerHTTPConnect(forwardDialer netproxy.Dialer, forwardUrl *url.URL, user, pass, country string) *dialerHTTPConnect
NewDialerHTTPConnect returns a new Dialer that dials through the provided proxy server's network and address.
func NewDomainTracer ¶
func NewDomainTracer() *domainTracer
NewDomainTracer creates new domain tracer instace.
func NewNoopTracer ¶
func NewNoopTracer() *noopTracer
NewNoopTracer creates new noop domain tracer instace.
func NewServer ¶
func NewServer( allowedSubnets []*net.IPNet, allowedIPs []net.IP, upstreamDialer netproxy.Dialer, mapper StickyMapper, dt domainTracker, portMap map[string]string, handlerMiddleware handlerMiddleware, ) *proxyServer
NewServer returns new instance of HTTP transparent proxy server
func NewStickyMapper ¶
NewStickyMapper creates database for storing IP to UserID mapping.
Types ¶
type Conn ¶
Conn wraps net.Conn with intercepts of read/write events.
type Connection ¶
Connection wraps net.Conn to provide extra method for establishing CONNECT session.
func (*Connection) ConnectTo ¶
func (c *Connection) ConnectTo(conn io.ReadWriter, address string, userID string) error
ConnectTo establishes new CONNECT session within existing connection. It allows to pass UserID to enable sticky sessions.
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context is the Proxy context, contains useful information about every request.
func (*Context) WaitHostname ¶
WaitHostname waits for hostname to be set and returns it.
type StickyMapper ¶
StickyMapper represent connection stickiness storage.