cmd

package
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package cmd is responsible for the program's command-line interface.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Main

func Main()

Main is the entry point of the program.Ï

Types

type Options

type Options struct {
	// DNSListenAddress is the IP address the DNS proxy server will be
	// listening to.
	DNSListenAddress string `long:"dns-address" description:"IP address that the DNS proxy server will be listening to." default:"0.0.0.0"`

	// DNSPort is the port the DNS proxy server will be listening to.
	DNSPort int `long:"dns-port" description:"Port the DNS proxy server will be listening to." default:"53"`

	// DNSUpstream is the address of the DNS server the proxy will forward
	// queries that are not rewritten to the SNI proxy.
	DNSUpstream string `` /* 148-byte string literal not displayed */

	// DNSRedirectIPV4To is the IPv4 address of the SNI proxy domains will be
	// redirected to by rewriting responses to A queries.
	DNSRedirectIPV4To string `long:"dns-redirect-ipv4-to" description:"IPv4 address that will be used for redirecting type A DNS queries."`

	// DNSRedirectIPV6To is the IPv6 address of the SNI proxy domains will be
	// redirected to by rewriting responses to AAAA queries.  If not set, the
	// program will try to automatically choose the public address of the SNI
	// proxy.
	DNSRedirectIPV6To string `long:"dns-redirect-ipv6-to" description:"IPv6 address that will be used for redirecting type AAAA DNS queries." default:""`

	// DNSRedirectRules is a list of wildcards that defines which domains
	// should be redirected to the SNI proxy.  Can be specified multiple times.
	DNSRedirectRules []string `` /* 158-byte string literal not displayed */

	// DNSDropRules is a list of wildcards that define queries to which domains
	// should be dropped.  Can be specified multiple times.
	DNSDropRules []string `` /* 137-byte string literal not displayed */

	// HTTPListenAddress is the IP address the HTTP proxy server will be
	// listening to.  Note, that the HTTP proxy will work pretty much the same
	// way the SNI proxy works, i.e. it will tunnel traffic to the hostname
	// that was specified in the "Host" header.
	HTTPListenAddress string `` /* 129-byte string literal not displayed */

	// HTTPPort is the port the HTTP proxy server will be listening to.
	HTTPPort int `long:"http-port" description:"Port the SNI proxy server will be listening for plain HTTP connections." default:"80"`

	// TLSListenAddress is the IP address the SNI proxy server will be
	// listening to.
	TLSListenAddress string `long:"tls-address" description:"IP address the SNI proxy server will be listening for TLS connections." default:"0.0.0.0"`

	// TLSPort is the port the SNI proxy server will be listening to.
	TLSPort int `long:"tls-port" description:"Port the SNI proxy server will be listening for TLS connections." default:"443"`

	// BandwidthRate is a number of bytes per second the connections speed will
	// be limited to.  Note, that the speed is shared between all connections.
	// If not set, there is no limit.
	BandwidthRate float64 `` /* 137-byte string literal not displayed */

	// BandwidthRules is a map that allows to define connection speed for
	// domains that match the wildcards.  Has higher priority than
	// BandwidthRate.
	BandwidthRules map[string]float64 `` /* 177-byte string literal not displayed */

	// ForwardProxy is the address of a SOCKS/HTTP/HTTPS proxy that the connections will
	// be forwarded to according to ForwardRules.
	ForwardProxy string `` /* 139-byte string literal not displayed */

	// ForwardRules is a list of wildcards that define what connections will be
	// forwarded to ForwardProxy.  If the list is empty and ForwardProxy is set,
	// all connections will be forwarded.
	ForwardRules []string `` /* 216-byte string literal not displayed */

	// BlockRules is a list of wildcards that define connections to which hosts
	// will be blocked.
	BlockRules []string `` /* 134-byte string literal not displayed */

	// DropRules is a list of wildcards that define connections to which hosts
	// will be "dropped".  "Dropped" means that the connection will be delayed
	// for a hard-coded period of 3 minutes.
	DropRules []string `` /* 184-byte string literal not displayed */

	// Verbose defines whether we should write the DEBUG-level log or not.
	Verbose bool `long:"verbose" description:"Verbose output (optional)" optional:"yes" optional-value:"true"`

	// LogOutput is the optional path to the log file.
	LogOutput string `long:"output" description:"Path to the log file. If not set, write to stdout."`
}

Options represents console arguments.

func (*Options) String

func (o *Options) String() (s string)

String implements fmt.Stringer interface for Options.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL