Skip to content

Commit

Permalink
Improve readme
Browse files Browse the repository at this point in the history
  • Loading branch information
askolesov committed Nov 3, 2024
1 parent bfc48be commit 59bdfbe
Showing 1 changed file with 27 additions and 8 deletions.
35 changes: 27 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# obfsproxy

obfsproxy is a simple obfuscating proxy designed to provide a layer of obfuscation for network traffic. It works by inverting the bytes of the data passing through it, making it harder for network monitors to identify the content of the communication.
obfsproxy is a simple obfuscating proxy designed to provide a layer of obfuscation for network traffic. It works by applying multiple transformations to the data passing through it, making it harder for network monitors to identify the content of the communication.

## Features

- Simple byte inversion obfuscation
- Bidirectional proxying
- Multiple obfuscation methods:
- Byte inversion
- XOR encryption with custom key
- Random data injection with configurable redundancy
- Bidirectional proxying with client/server modes
- Command-line interface for easy configuration
- Docker support for containerized deployment
- Integration tests to ensure proper functionality
Expand Down Expand Up @@ -37,18 +40,34 @@ The compiled binary will be available in the `build/` directory.
Run obfsproxy with the following command:

```
obfsproxy -l [listen_address] -t [target_address]
obfsproxy [flags]
```

- `-l, --listen`: Address to listen on (default: "localhost:8080")
- `-t, --target`: Address to forward to (default: "localhost:80")
- `-s, --server`: Run in server mode
- `-c, --client`: Run in client mode (default if neither -s nor -c specified)
- `-k, --key`: Encryption key (required)
- `-r, --redundancy`: Redundancy level for data injection in percent (0-1000, default: 50)

Example:
### Example

To set up a proxy chain:

1. Start the client (obfuscating proxy):
```
obfsproxy -l 0.0.0.0:8080 -t proxy2:8081 -k your-secret-key -r 50 -c
```

2. Start the server (deobfuscating proxy):
```
obfsproxy -l 0.0.0.0:8080 -t example.com:80
obfsproxy -l 0.0.0.0:8081 -t target:80 -k your-secret-key -r 50 -s
```

This will start the proxy listening on all interfaces on port 8080 and forward traffic to example.com on port 80.
This will create a proxy chain where:
1. Traffic enters through the client on port 8080
2. Gets obfuscated and forwarded to the server on port 8081
3. Gets deobfuscated and forwarded to the target on port 80

## Docker

Expand All @@ -61,7 +80,7 @@ To build and run obfsproxy using Docker:

2. Run the container:
```
docker run -p 8080:8080 obfsproxy:latest obfsproxy -l 0.0.0.0:8080 -t example.com:80
docker run -p 8080:8080 obfsproxy:latest obfsproxy -l 0.0.0.0:8080 -t example.com:80 -k your-secret-key -r 50
```

## Development
Expand Down

0 comments on commit 59bdfbe

Please sign in to comment.