A lightweight SOCKS5 proxy server, written in Rust.
Make sure the current stable release of Rust is installed.
bash
cargo install koblas
bash
git clone https://github.com/ynuwenhof/koblas.git
cd koblas
cargo install --path .
Hash passwords by running the following command:
bash
koblas hash "correct-horse-battery-staple"
this will return an Argon2id password hash.
After installing, you can run the server with:
bash
koblas -a 0.0.0.0 --auth -u /path/to/users.toml
this will bind the server to 0.0.0.0:1080
.
Make sure the Docker Engine is installed.
Pull the latest image from the Docker Hub registry with:
bash
docker pull ynuwenhof/koblas:latest
Run the following commands to build the image yourself instead:
bash
git clone https://github.com/ynuwenhof/koblas.git
cd koblas
docker build -t ynuwenhof/koblas:latest .
Hash passwords by running the following command:
bash
docker run -it --rm ynuwenhof/koblas:latest hash "correct-horse-battery-staple"
this will return an Argon2id password hash.
After pulling or building the image, you can run the server with:
bash
docker run -d -p 1080:1080 \
-v /path/to/users.toml:/etc/koblas/users.toml \
-e RUST_LOG=debug \
-e KOBLAS_NO_AUTHENTICATION=false \
-e KOBLAS_ANONYMIZE=false \
--name koblas ynuwenhof/koblas:latest
this will bind the server to 0.0.0.0:1080
.
Koblas can be configured via environment variables or command line arguments.
Missing keys will fall back to their default value.
| Key | Description | Default |
|----------------------------|-----------------------------------------------------------------------------|-------------|
| KOBLAS_ADDRESS
| Address on which to listen for incoming TCP connections | 127.0.0.1
|
| KOBLAS_PORT
| Port on which to listen for incoming TCP connections | 1080
|
| KOBLAS_LIMIT
| Maximum amount of clients to handle at once | 255
|
| KOBLAS_NO_AUTHENTICATION
| Don't require clients to authenticate using a username/password combination | false
|
| KOBLAS_ANONYMIZATION
| Exclude sensitive information from the logs | false
|
| KOBLAS_USERS_PATH
| File path to the list of existing users | None
|
:warning: The default configuration requires everyone to connect with a pre-existing username/password combination.
Koblas doesn't have a default users file location, but we recommend the following locations:
/etc/koblas/users.toml
/etc/koblas/users.toml
%ProgramData%\koblas\users.toml
```toml [users]
alice = "$argon2id$v=19$m=8,t=2,p=1$bWUwSXl2M2pYNU9xcVBocw$f4gFaE7p0qWRKw"
bob = "$argon2id$v=19$m=8,t=2,p=1$ZExzaTM3aks1WjU1a3g4UA$J+EiueHYuR/dlA" ```
This project is licensed under either of the following licenses, at your option: