{"id":13586993,"url":"https://github.com/ynuwenhof/koblas","last_synced_at":"2025-07-12T00:10:19.695Z","repository":{"id":65406561,"uuid":"533885487","full_name":"ynuwenhof/koblas","owner":"ynuwenhof","description":"Lightweight SOCKS5 proxy server","archived":false,"fork":false,"pushed_at":"2024-09-15T13:05:10.000Z","size":137,"stargazers_count":122,"open_issues_count":1,"forks_count":12,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T18:47:51.370Z","etag":null,"topics":["authentication","docker","proxy","rust","server","socks","socks5","socks5-proxy","socks5-server","tcp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ynuwenhof.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-09-07T18:14:04.000Z","updated_at":"2025-04-06T04:16:21.000Z","dependencies_parsed_at":"2024-01-24T11:42:54.092Z","dependency_job_id":"e4ca7cbf-0824-4359-adc4-be325543714f","html_url":"https://github.com/ynuwenhof/koblas","commit_stats":{"total_commits":94,"total_committers":1,"mean_commits":94.0,"dds":0.0,"last_synced_commit":"4c3f71d9ad961217431c7c286d5b00634316c45e"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynuwenhof%2Fkoblas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynuwenhof%2Fkoblas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynuwenhof%2Fkoblas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ynuwenhof%2Fkoblas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ynuwenhof","download_url":"https://codeload.github.com/ynuwenhof/koblas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247707872,"owners_count":20982866,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","docker","proxy","rust","server","socks","socks5","socks5-proxy","socks5-server","tcp"],"created_at":"2024-08-01T15:05:57.322Z","updated_at":"2025-04-07T18:35:22.851Z","avatar_url":"https://github.com/ynuwenhof.png","language":"Rust","funding_links":[],"categories":["Rust","Software"],"sub_categories":["Proxy"],"readme":"# Koblas\n\nA lightweight [SOCKS5](https://datatracker.ietf.org/doc/html/rfc1928) proxy server, written in [Rust](https://rust-lang.org).\n\n* Multi-User\n* Configurable\n* IPv4 \u0026 IPv6\n* Blacklist \u0026 Whitelist\n* No Authentication\n* [Username/Password](https://datatracker.ietf.org/doc/html/rfc1929) Authentication\n\n## Installation\n\n### Cargo\n\nMake sure the current stable release of [Rust](https://rust-lang.org/tools/install) is installed.\n\n#### Registry\n\n```bash\ncargo install koblas\n```\n\n#### Manual\n\n```bash\ngit clone https://github.com/ynuwenhof/koblas.git\ncd koblas\ncargo install --path .\n```\n\nHash passwords by running the following command:\n\n```bash\nkoblas hash \"correct-horse-battery-staple\"\n```\n\nthis will return an [Argon2id](https://en.wikipedia.org/wiki/Argon2) password hash.\n\nAfter installing, you can run the server with:\n\n```bash\nkoblas -a 0.0.0.0 --auth -c /path/to/config.toml\n```\n\nthis will bind the server to `0.0.0.0:1080`.\n\n### Docker\n\nMake sure the [Docker Engine](https://docs.docker.com/engine/install) is installed.\n\nPull the latest image from the [Docker Hub](https://hub.docker.com) registry with:\n\n```bash\ndocker pull ynuwenhof/koblas:latest\n```\n\nRun the following commands to build the image yourself instead:\n\n```bash\ngit clone https://github.com/ynuwenhof/koblas.git\ncd koblas\ndocker build -t ynuwenhof/koblas:latest .\n```\n\nHash passwords by running the following command:\n\n```bash\ndocker run -it --rm ynuwenhof/koblas:latest hash \"correct-horse-battery-staple\"\n```\n\nthis will return an [Argon2id](https://en.wikipedia.org/wiki/Argon2) password hash.\n\nAfter pulling or building the image, you can run the server with:\n\n```bash\ndocker run -d -p 1080:1080 \\\n  -v /path/to/config.toml:/etc/koblas/config.toml \\\n  -e RUST_LOG=debug \\\n  -e KOBLAS_NO_AUTHENTICATION=false \\\n  -e KOBLAS_ANONYMIZE=false \\\n  --name koblas ynuwenhof/koblas:latest\n```\n\nthis will bind the server to `0.0.0.0:1080`.\n\nDeploy the server with Docker Compose:\n\n```yaml\nversion: \"3.8\"\nservices:\n  koblas:\n    image: ynuwenhof/koblas:latest\n    container_name: koblas\n    restart: unless-stopped\n    ports:\n      - 1080:1080\n    environment:\n      RUST_LOG: debug\n      KOBLAS_LIMIT: 256\n      KOBLAS_NO_AUTHENTICATION: false\n      KOBLAS_ANONYMIZATION: true\n    volumes:\n      - /path/to/config.toml:/etc/koblas/config.toml\n```\n\n## Configuration\n\nKoblas can be configured via environment variables or command line arguments.\n\nMissing keys will fall back to their default value.\n\n| Key                        | Description                                                                 | Default     |\n|----------------------------|-----------------------------------------------------------------------------|-------------|\n| `KOBLAS_ADDRESS`           | Address on which to listen for incoming TCP connections                     | `127.0.0.1` |\n| `KOBLAS_PORT`              | Port on which to listen for incoming TCP connections                        | `1080`      |\n| `KOBLAS_LIMIT`             | Maximum amount of clients to handle at once                                 | `255`       |\n| `KOBLAS_NO_AUTHENTICATION` | Don't require clients to authenticate using a username/password combination | `false`     |\n| `KOBLAS_ANONYMIZATION`     | Exclude sensitive information from the logs                                 | `false`     |\n| `KOBLAS_CONFIG_PATH`       | File path to the config file                                                | `None`      |\n\n\u003e :warning: The default configuration requires everyone to connect with a pre-existing username/password combination.\n\nKoblas doesn't have a default config file location, but we recommend the following locations:\n\n* Linux: `/etc/koblas/config.toml`\n* MacOS: `/etc/koblas/config.toml`\n* Windows: `%ProgramData%\\koblas\\config.toml`\n\n### Example\n\n```toml\n# All matching IPs will be automatically blocked\nblacklist = [\n    # Blacklist all IPs between\n    # 192.168.2.0 and 192.168.2.255\n    \"192.168.2.0/24\",\n    # Blacklist a single IP\n    \"192.168.3.0/32\",\n]\n\n# All non matching IPs will be automatically blocked\n# Keep empty to disable the whitelist\nwhitelist = [\n    # Whitelist all IPs between\n    # 192.168.0.0 and 192.168.0.255\n    \"192.168.0.0/24\",\n    # Whitelist a single IP\n    \"192.168.1.0/32\",\n]\n\n[users]\n# Username = \"alice\", password = \"QDuMGlxdhpZt\"\nalice = \"$argon2id$v=19$m=8,t=2,p=1$bWUwSXl2M2pYNU9xcVBocw$f4gFaE7p0qWRKw\"\n# Username = \"bob\", password = \"ceQvWaDGVeTv\"\nbob = \"$argon2id$v=19$m=8,t=2,p=1$ZExzaTM3aks1WjU1a3g4UA$J+EiueHYuR/dlA\"\n```\n \n## License\n\nThis project is licensed under either of the following licenses, at your option:\n\n* [Apache License, Version 2.0](https://apache.org/licenses/LICENSE-2.0)\n  ([LICENSE-APACHE](https://github.com/ynuwenhof/koblas/blob/main/LICENSE-APACHE))\n* [MIT License](https://opensource.org/licenses/MIT)\n  ([LICENSE-MIT](https://github.com/ynuwenhof/koblas/blob/main/LICENSE-MIT))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fynuwenhof%2Fkoblas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fynuwenhof%2Fkoblas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fynuwenhof%2Fkoblas/lists"}