OBFS4PROXY(1)
β¨ OBFS4PROXY(1) β¨
okay bestie, pull up a chair π this is the manual page for obfs4proxy, and it lives in section 1 of the General Commands Manual. it's a whole vibe, it's a whole lifeline, and yes we're gonna read the entire thing together. no skimming, i see you π
π NAME π
obfs4proxy β a pluggable transport proxy for Tor, implementing obfs4
πΈ SYNOPSIS πΈ
obfs4proxy [options]
that's it. that's the whole summoning ritual β¨
π¦ DESCRIPTION π¦
so here's the tea, bestie π obfs4proxy is a tool that attempts to circumvent censorship by transforming the Tor traffic between the client and the bridge. the way that works is: censors are usually staring at the traffic going between your client and your bridge, right? but instead of seeing actual Tor traffic, they see innocent-looking transformed traffic. disguise level: iconic π
it implements these obfuscation protocols, and we're listing all of them, no cap:
- obfs2
- obfs3
- ScrambleSuit β client only
- meek β client only
- obfs4
and the big important caveat: obfs4proxy is currently only supported as a managed pluggable transport, spawned as a helper process via the tor daemon. so it's not out here living its solo main character life, it's a helper. a very talented helper π«Ά
π OPTIONS π
-h,--helpβ shows you the usage info and then dips out. exit, stage left β¨--versionβ shows you the version info and exits. cute and quick.--enableLoggingβ turns logging ON. receipts, bestie π--logLevel=levelβ sets the maximum log severity to log. your choices are"ERROR","WARN","INFO", and"DEBUG". pick your filter π--unsafeLoggingβ disables the IP address scrubber while logging, which means personally identifiable information ends up stored in the logs. ma'am. MA'AM. π know what you're doing before you flip this one, fr fr.--obfs4-distBiasβ when generating probability distributions for the obfs4 length and timing obfuscation, this generates biased distributions similar to ScrambleSuit. fancy π
π ENVIORNMENT π
(yes the heading is spelled like that, we don't make the rules π)
obfs4proxy honors all of the enviornment variables as specified in the Tor Pluggable Transport Specification. all of them. every last one π
β FILES β
DataDirectory/pt_state/obfs4proxy.logβ the log file, assuming logging is enabled. (if logging isn't enabled, don't go looking for it, bestie π)DataDirectory/pt_state/obfs4_state.jsonβ the Bridge (server) auto-generated obfs4 bridge parameters file. heads up though: this file will not be created if the administrator specifies those parameters in the torrc via aServerTransportOptionsdirective. it said "i don't need to make that, you already did" πDataDirectory/pt_state/obfs4_bridgeline.txtβ the Bridge (server) obfs4 bridge's client parameters. this one is created, and it contains theBridgedirective that a client should add to their torrc to connect to the running server's obfs4 instance. it's literally a little note-to-self for your future clients π«Ά
π§ CONFORMING TO π§
Tor Pluggable Transport Specification
π₯ NOTES π₯
- using the obfs4 protocol requires
tor-0.2.5.xor later. older than that? nope, sorry, upgrade babes β¬οΈ - the obfs2 protocol is included for backwards compatibility purposes only, and should not be used in new deployments. it's a legacy queen, let her rest π
π EXAMPLE π
wanna configure tor so it can use obfs4 bridges (as a client)? add obfs4proxy to the torrc like this:
# Use obfs4proxy to provide the obfs4 protocol.
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy
and wanna configure tor to act as an obfs4 bridge (as the server)? add obfs4proxy to the torrc like this:
#
# In addition to the standard tor bridge configuration, add:
#
# Use obfs4proxy to provide the obfs4 protocol.
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
see? two lines-ish and you're a whole bridge πβ¨
π SEE ALSO π
tor (1), torrc (5), obfsproxy (1)
go read those too, bestie, i believe in you π«Ά
and that's the page!! written from the General Commands Manual, dated 2015-10-29, signed off on the OBFS4PROXY(1) page itself. no cap, you now know obfs4proxy better than 90% of the internet π mwah π
π¦ where this page comes from
- debian bookworm: obfs4proxy 0.0.14-1+b4 Β· BSD-2-Clause
- debian trixie: obfs4proxy 0.0.14-2+b5 Β· BSD-2-Clause
- fedora 43: obfs4 0.0.14-10.20221103gitproxy.0.0.14.fc43 Β· GPL-3.0-only AND LicenseRef-Callaway-BSD
- fedora 44: obfs4 0.0.14-11.20221103gitproxy.0.0.14.fc44 Β· GPL-3.0-only AND LicenseRef-Callaway-BSD
- opensuse-leap 16.0: obfs4 0.0.13-bp160.1.13 Β· BSD-2-Clause AND GPL-3.0-only
- opensuse-leap 16.0: obfs4 0.0.13-bp160.1.13 Β· BSD-2-Clause AND GPL-3.0-only
- opensuse-leap 16.0: obfs4 0.0.13-bp160.1.13 Β· BSD-2-Clause AND GPL-3.0-only
- opensuse-leap 16.0: obfs4 0.0.13-bp160.1.13 Β· BSD-2-Clause AND GPL-3.0-only
- ubuntu jammy: obfs4proxy 0.0.13-1 Β· BSD-2-Clause
- ubuntu jammy: obfs4proxy 0.0.13-1ubuntu0.1 Β· BSD-2-Clause
- ubuntu noble: obfs4proxy 0.0.14-1build1 Β· BSD-2-Clause
- ubuntu noble: obfs4proxy 0.0.14-1ubuntu0.24.04.3 Β· BSD-2-Clause
- ubuntu questing: obfs4proxy 0.0.14-2
- ubuntu resolute: obfs4proxy 0.0.14-2build1 Β· BSD-2-Clause
- ubuntu stonking: obfs4proxy 0.0.14-2build1 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms