{"id":13841415,"url":"https://github.com/EvanMcBroom/microsocks11","last_synced_at":"2025-07-11T12:31:58.503Z","repository":{"id":52866253,"uuid":"305203860","full_name":"EvanMcBroom/microsocks11","owner":"EvanMcBroom","description":"A cross-platform SOCKS5 library and server based on the microsocks project.","archived":false,"fork":false,"pushed_at":"2022-02-07T02:29:38.000Z","size":74,"stargazers_count":31,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-05T17:27:29.807Z","etag":null,"topics":["cpp17","proxy","proxy-server","socks","socks-library","socks-proxy","socks-server","socks5","socks5-library","socks5-proxy","socks5-server"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EvanMcBroom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-18T21:56:30.000Z","updated_at":"2024-07-11T06:14:35.000Z","dependencies_parsed_at":"2022-08-23T10:40:51.309Z","dependency_job_id":null,"html_url":"https://github.com/EvanMcBroom/microsocks11","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanMcBroom%2Fmicrosocks11","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanMcBroom%2Fmicrosocks11/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanMcBroom%2Fmicrosocks11/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvanMcBroom%2Fmicrosocks11/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EvanMcBroom","download_url":"https://codeload.github.com/EvanMcBroom/microsocks11/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225720402,"owners_count":17513597,"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":["cpp17","proxy","proxy-server","socks","socks-library","socks-proxy","socks-server","socks5","socks5-library","socks5-proxy","socks5-server"],"created_at":"2024-08-04T17:01:10.411Z","updated_at":"2024-11-21T11:30:50.274Z","avatar_url":"https://github.com/EvanMcBroom.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# MicroSocks11 - A cross-platform SOCKS5 server.\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE.txt)\n[![AppVeyor](https://img.shields.io/appveyor/build/EvanMcBroom/microsocks11?logo=AppVeyor)](https://ci.appveyor.com/project/EvanMcBroom/microsocks11/)\n[![Travis](https://img.shields.io/travis/EvanMcBroom/microsocks11?logo=Travis)](https://travis-ci.org/EvanMcBroom/microsocks11)\n[![GitHub All Releases](https://img.shields.io/github/downloads/EvanMcBroom/microsocks11/total?color=yellow)](https://github.com/EvanMcBroom/microsocks11/releases)\n[![Docker Pulls](https://img.shields.io/docker/pulls/evanmcbroom/microsocks11?color=yellow)](https://hub.docker.com/r/evanmcbroom/microsocks11)\n\nMicroSocks11 is a SOCKS5 library and server based on the [microsocks](https://github.com/rofl0r/microsocks) project that uses CMake and C++11 for cross-platform support.\nMicroSocks11 supports IPv4, IPv6, and DNS.\n\nThis project is released under an [MIT license](https://github.com/EvanMcBroom/microsocks11/blob/master/LICENSE.txt).\nAny sections of code that are included from the original project are also released under an [MIT license](https://github.com/rofl0r/microsocks/blob/master/COPYING) and copyrighted to [rofl0r](https://github.com/rofl0r/).\n\n## Building\n\nMicroSocks11 requres [cxxopts](https://github.com/jarro2783/cxxopts) which can be installed using [vcpkg](https://github.com/microsoft/vcpkg).\n\n```\nvcpkg install cxxopts\n```\n\nMicroSocks11 uses [CMake](https://cmake.org/) to generate and run the build system files for your platform.\n\n```\ngit clone https://github.com/EvanMcBroom/microsocks11.git\ncd microsocks11\nmkdir builds\ncd builds\ncmake .. -DCMAKE_TOOLCHAIN_FILE=$VCPKG_PATH/scripts/buildsystems/vcpkg.cmake\ncmake --build .\n```\n\nBy default CMake will build both the `microsocks` utility and the `socks5` static library it uses. The `socks5` library has a simple api that can be used to build other utilities.\n\nYou can set the `BUILD_STATIC` flag when generating the build system files to link against the static version of the runtime library. This will build the `microsocks` utility as a standalone program that can be ran on other hosts.\n\n```\ncmake .. -DBUILD_STATIC=TRUE\ncmake --build .\n```\n\n\u003e :pencil2: On Linux you will need to install `clang` and `libc++` for static builds because `glibc` can not statically link the `getaddrinfo` symbol ([reference](https://stackoverflow.com/a/3087067/11039217)). Please refer to the Travis CI file for how to install `clang` and `libc++`.\n\n## Running\n\nMicroSocks11 is simple to use and can be ran directly with default arguments.\n\n```\n./microsocks --help\nSOCKS5 Server\nUsage:\n  MicroSocks [OPTION...]\n\n  -1, --auth-once         Whitelist an ip address after authenticating to not\n                          requre a password on subsequent connections\n  -b, --bind-address arg  The address for the all forwarded connections\n  -h, --help              Print this message\n  -l, --listen-ip arg     Ip address to listen on (default: 0.0.0.0)\n  -p, --port arg          Port to listen on (default: 1080)\n  -u, --user arg          The username to use for authentication\n  -v, --verbose           Verbose output\n  -P, --password arg      The password to use for authentication\n./microsocks\n...\n```\n\nYou can use curl to test if the proxy is running.\n\n```\ncurl --socks5-hostname localhost:1080 icanhazip.com\n```\n\n## Docker Container\n\nMicroSocks11 can also be built and ran as a docker container.\nYou can either build the image yourself or pull the image from [dockerhub](https://hub.docker.com/u/evanmcbroom).\n\n```\n# build option 1 - pull the container from dockerhub\ndocker pull evanmcbroom/microsocks11\n\n# build option 2 - build the container yourself\ngit clone https://github.com/EvanMcBroom/microsocks11.git\ndocker build microsocks11 --tag evanmcbroom/microsocks11:latest\n\n# run example 1 - run the proxy on 0.0.0.0:1080 in the background\ndocker run --rm -d --net=host --name=proxy evanmcbroom/microsocks11\n\n# run example 2 - run the proxy with custom arguments\ndocker run --rm --net=host --name=proxy evanmcbroom/microsocks11 --help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvanMcBroom%2Fmicrosocks11","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEvanMcBroom%2Fmicrosocks11","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvanMcBroom%2Fmicrosocks11/lists"}