MEEK-SERVER(1)
π MEEK-SERVER(1) β the meek server transport plugin, explained by your favorite unix girlie
okay so before we even start: this is a page from the meek-server manual, section 1, and honestly? it's giving "niche but iconic." let's go π«Ά
β¨ NAME β¨
meek-server β literally the meek server transport plugin. that's the whole name, no notes, periodt. π
π¦ SYNOPSIS π¦
meek-server --acme-hostnames=HOSTNAME [OPTIONS]
so yeah, that's your starter pack: you give it --acme-hostnames=HOSTNAME and then whatever [OPTIONS] your heart desires. easy. π
πΈ DESCRIPTION πΈ
okay so meek-server is a transport plugin for Tor that encodes a stream as a sequence of HTTP requests and responses. yes bestie, that's the whole bit β traffic goes in, looks like a lil HTTP conversation, comes out the other side. iconic behavior fr fr. π₯
and now the part you can't skip: you will need to configure TLS certificates. there are two ways to set up certificates, and honestly both are valid:
--acme-hostnames=HOSTNAME(with optional--acme-email=EMAIL) will automatically get certificates forHOSTNAMEusing Let's Encrypt. π the catch? when you use this option,meek-serverwill need to be able to listen on port 80. no cap.--cert=FILENAMEand--key=FILENAMEallow use to use your own externally acquired certificate. (yes, the original really says "allow use to use" β i'm keeping it, it's part of the lore. π)
configuration for meek-server usually appears in a torrc file. here's a sample configuration using automatic Let's Encrypt certificates:
ExtORPort auto
ServerTransportListenAddr meek 0.0.0.0:443
ServerTransportPlugin meek exec ./meek-server --acme-hostnames meek-server.example --log meek-server.log
and here's a sample configuration using externally acquired certificates:
ExtORPort auto
ServerTransportListenAddr meek 0.0.0.0:8443
ServerTransportPlugin meek exec ./meek-server 8443 --cert cert.pem --key key.pem --log meek-server.log
now, to listen on ports 80 and 443 without needed to run as root, on Linux, you can use the setcap program, part of libcap2:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/meek-server
(yes, "without needed to run as root" β again, original wording, keeping it. she's quirky. π)
π OPTIONS π
--acme-email=EMAILβ optional email address to register for Let's Encrypt notifications when using--acme-hostnames. think of it as leaving your number with the ACME people so they can text you. π--acme-hostnames=HOSTNAME[,HOSTNAME]...β comma-separated list of hostnames to honor when getting automatic certificates from Let's Encrypt.meek-serverwill open a special listener on port 80 in order to handle ACME messages; this listener is separate from the one specified byServerTransportListenAddr. the certificates will be cached in thept_state/meek-certificate-cachedirectory inside tor state directory. lowkey a lot going on, but it slays. π--cert=FILENAMEβ name of a PEM-encoded TLS certificate file. required unless--acme-hostnamesor--disable-tlsis used. so like, don't forget it. π€--disable-tlsβ use plain HTTP rather than HTTPS. β οΈ this option is only for testing purposes. don't use it in production. i mean it bestie, do NOT. π--key=FILENAMEβ name of a PEM-encoded TLS private key file. required unless--acme-hostnamesor--disable-tlsis used. same energy as--cert, she needs her other half. π--log=FILENAMEβ name of a file to write log messages to (defaultstderr). because we love a paper trail. π--port=PORTβ port to listen on. overrides theTOR_PT_SERVER_BINDADDRenvironment variable set by tor. in most cases you should set theServerTransportListenAddroption intorrc, rather than use the--portoption. iykyk. π«Ά-h,--helpβ display a help message and exit. the classic. the mother of all flags. π
β SEE ALSO β
https://trac.torproject.org/projects/tor/wiki/doc/meekβ go read up, bestie π
π BUGS π
please report at https://trac.torproject.org/projects/tor. not me asking you to file a bug, but like... if you find one, absolutely file it. π
okay that's the whole page!! mwah π this was the MEEK-SERVER(1) manual, dated 09/14/2021, and it's from the MEEK-SERVER(1) source β that's a whole lotta meek, and honestly? we ate. β¨ππ
π¦ where this page comes from
- alpine 3.24: meek-doc 0.38.0-r25 Β· CC0-1.0
- arch rolling: meek 0.38.0-3 Β· CC0-1.0
- nixos 26.05: meek 0.38.0
- nixpkgs unstable: meek 0.38.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms