Documentation
¶
Overview ¶
Package vpnkit allows a running VPNKit service to be reconfigured.
Features ¶
- expose/unexpose TCP and UDP ports
Index ¶
Constants ¶
const ( // TCP port is exposed TCP = Protocol("tcp") // UDP port is exposed UDP = Protocol("udp") // Unix domain socket is exposed Unix = Protocol("unix") )
const DefaultVsockPort = 62373
DefaultVsockPort is the default AF_VSOCK port where vpnkit-forwarder listens.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶ added in v0.3.0
type Client interface {
Expose(context.Context, *Port) error
Unexpose(context.Context, *Port) error
ListExposed(context.Context) ([]Port, error)
}
Client exposes and unexposes ports on vpnkit.
type Connection ¶
type Connection struct {
// contains filtered or unexported fields
}
Connection represents an open control connection to vpnkit
func NewConnection ¶
func NewConnection(ctx context.Context, path string) (*Connection, error)
NewConnection connects to a vpnkit Unix domain socket on the given path and returns the connection. If the path is the empty string then the default system path will be used.
func NewConnectionForClient ¶ added in v0.3.0
func NewConnectionForClient(client *datakit.Client) *Connection
NewConnectionForClient returns a connection using given client
func (*Connection) Expose ¶ added in v0.3.0
func (c *Connection) Expose(ctx context.Context, p *Port) error
Expose asks vpnkit to expose the port
func (*Connection) ListExposed ¶ added in v0.3.0
func (c *Connection) ListExposed(ctx context.Context) ([]Port, error)
ListExposed returns a list of currently exposed ports.
type DHCPConfiguration ¶ added in v0.3.0
type DHCPConfiguration struct {
SearchDomains []string `json:"searchDomains"`
DomainName string `json:"domainName"`
}
DHCPConfiguration configures the built-in DHCP server.
type Dialer ¶ added in v0.3.0
type Dialer struct {
HyperkitConnectPath string // HyperkitConnectPath is the path of the `connect` Unix domain socket
HyperVVMID string // HyperkitVMVMID is the GUID of the VM running vpnkit-forwarder
Port int // Port is the AF_VSOCK port where vpnkit-forwarder is listening
// contains filtered or unexported fields
}
Dialer connects to remote addresses via the vpnkit-forwarder.
type Forward ¶ added in v0.3.0
type Forward struct {
Protocol Protocol `json:"protocol"`
ExternalPort int `json:"external_port"`
InternalIP string `json:"internal_ip"`
InternalPort int `json:"internal_port"`
}
Forward is a single forward from the gateway IP ExternalPort to (InternalIP, InternalPort)
type GatewayForwards ¶ added in v0.3.0
type GatewayForwards []Forward
GatewayForwards is a list of individual forwards.
type HTTPConfiguration ¶ added in v0.3.0
type HTTPConfiguration struct {
HTTP string `json:"http,omitempty"`
HTTPS string `json:"https,omitempty"`
Exclude string `json:"exclude,omitempty"`
TransparentHTTPPorts []int `json:"transparent_http_ports"`
TransparentHTTPSPorts []int `json:"transparent_https_ports"`
}
HTTPConfiguration configures the built-in HTTP proxy.
type Port ¶
type Port struct {
// Proto is the protocol used by the exposed port.
Proto Protocol
// OutIP is the external IP address.
OutIP net.IP
// OutPort is the external port number.
OutPort uint16
// OutPath is the external Unix domain socket.
OutPath string
// InIP is the internal IP address.
InIP net.IP
// InPort is the internal port number.
InPort uint16
// InPath is the internal Unix domain socket.
InPath string
// contains filtered or unexported fields
}
Port describes a UDP, TCP port forward or a Unix domain socket forward.
func NewPath ¶ added in v0.3.0
func NewPath(connection *Connection, outPath, inPath string) *Port
NewPath constructs an instance of a forwarded Unix path