-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor towards lyrebird completion, including args, tooling, and a working (simpler) forward proxy.
- Loading branch information
Showing
40 changed files
with
3,561 additions
and
1,862 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ members = [ | |
"crates/obfs4", | ||
"crates/ptrs", | ||
"crates/lyrebird", | ||
"crates/o5", | ||
] | ||
|
||
resolver = "2" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# pt-proxy | ||
|
||
### What? | ||
|
||
This is a look-like nothing obfuscation protocol that incorporates ideas and | ||
concepts from Philipp Winter's ScrambleSuit protocol, as well as it's direct | ||
predecessor obfs4. | ||
|
||
### Installation | ||
|
||
To build: | ||
`cargo build --release lyrebird` | ||
|
||
|
||
To install: | ||
`cargo install lyrebird` | ||
This will install in the binary your local rust bin target (usually `$HOME/.cargo/bin/`), | ||
which can either be added to your `$PATH` or copied to a different permanent location | ||
such as `/usr/local/bin`. | ||
|
||
|
||
Client side torrc configuration: | ||
``` | ||
# Use lyrebird to provide the obfs4 protocol. | ||
# (NOTE) binary is not installed in /usr/local/bin/ by default | ||
ClientTransportPlugin obfs4 exec /usr/local/bin/lyrebird | ||
``` | ||
|
||
Bridge side torrc configuration: | ||
``` | ||
# Act as a bridge relay. | ||
BridgeRelay 1 | ||
# Enable the Extended ORPort | ||
ExtORPort auto | ||
# Use lyrebird to provide the obfs4 protocol. | ||
# (NOTE) binary is not installed in /usr/local/bin/ by default | ||
ServerTransportPlugin obfs4 exec /usr/local/bin/lyrebird | ||
# (Optional) Listen on the specified address/port for obfs4 connections as | ||
# opposed to picking a port automatically. | ||
# ServerTransportListenAddr obfs4 0.0.0.0:443 | ||
``` | ||
|
||
### Tips and tricks | ||
* If the binary is installed but you are unsure where the install location is, | ||
the binary path can be found using `which lyrebird`. | ||
|
||
* On modern Linux systems it is possible to have lyrebird bind to reserved | ||
ports (<=1024) even when not running as root by granting the | ||
`CAP_NET_BIND_SERVICE` capability with setcap: | ||
|
||
`# setcap 'cap_net_bind_service=+ep' $(which lyrebird)` | ||
|
||
* lyrebird can also act as an obfs2 and obfs3 client or server. Adjust the | ||
`ClientTransportPlugin` and `ServerTransportPlugin` lines in the torrc as | ||
appropriate. | ||
|
||
* lyrebird can also act as a ScrambleSuit client. Adjust the | ||
`ClientTransportPlugin` line in the torrc as appropriate. | ||
|
||
* The autogenerated obfs4 bridge parameters are placed in | ||
`DataDir/pt_state/obfs4_state.json`. To ease deployment, the client side | ||
bridge line is written to `DataDir/pt_state/obfs4_bridgeline.txt`. | ||
|
Oops, something went wrong.