meek-client is a transport plugin for Tor that encodes a stream as a sequence of HTTP requests and responses. It is usually run with the --url and --front options. The --url option controls what URL requests are made to; the web server at that URL should be configured to forward requests to a meek-server somewhere. The --front option is for domain name camouflage: The domain name in the URL is replaced by the front domain before the request is made, but the Host header inside the HTTP request still points to the original domain. The idea is to front through a domain that is not blocked to a domain that is blocked.
Configuration for meek-client usually appears in a torrc file. Most user configuration can happen either through SOCKS args (i.e., args on a Bridge line) or through command line options. SOCKS args take precedence per-connection over command line options. For example, this configuration using SOCKS args:
Bridge meek 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com
ClientTransportPlugin meek exec ./meek-client
is the same as this one using command line options:
Bridge meek 0.0.2.0:1
ClientTransportPlugin meek exec ./meek-client --url=https://meek-reflect.appspot.com/ --front=www.google.com
The advantage of SOCKS args is that multiple Bridge lines can have different configurations.
The --helper option prevents meek-client from doing any network operations itself. Rather, it will send all requests through a browser extension, which must be set up separately.
You can also control an upstream proxy using torrc options:
or, equivalently, using the --proxy command-line option.
When the --helper option is used, you can use any type of proxy: HTTP or SOCKS. Without --helper, you can only use an HTTP proxy.