{"id":13775860,"url":"https://github.com/keli/furion","last_synced_at":"2026-04-04T22:18:16.539Z","repository":{"id":8534979,"uuid":"10153731","full_name":"keli/furion","owner":"keli","description":"Socks5 + SSL Proxy","archived":false,"fork":false,"pushed_at":"2024-11-01T03:31:00.000Z","size":208,"stargazers_count":46,"open_issues_count":0,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-25T12:36:30.180Z","etag":null,"topics":["proxy","python","socks5","ssl"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keli.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-19T10:02:57.000Z","updated_at":"2024-12-04T06:45:13.000Z","dependencies_parsed_at":"2022-09-19T08:10:49.996Z","dependency_job_id":null,"html_url":"https://github.com/keli/furion","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/keli/furion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keli%2Ffurion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keli%2Ffurion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keli%2Ffurion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keli%2Ffurion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keli","download_url":"https://codeload.github.com/keli/furion/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keli%2Ffurion/sbom","scorecard":{"id":554270,"data":{"date":"2025-08-11","repo":{"name":"github.com/keli/furion","commit":"b25caa0850234b6e555cd94f011a5a304f1feebd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-20T11:54:58.420Z","repository_id":8534979,"created_at":"2025-08-20T11:54:58.420Z","updated_at":"2025-08-20T11:54:58.420Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["proxy","python","socks5","ssl"],"created_at":"2024-08-03T17:01:52.763Z","updated_at":"2026-04-04T22:18:16.514Z","avatar_url":"https://github.com/keli.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"57b8e953d394bbed52df2a6976d98dfa\"\u003e\u003c/a\u003eSocks"],"readme":"Furion Socks5 SSL Proxy\n=======================\n\nFurion is an encrypted proxy written in Python. In essence, it's just socks5 server with ssl support. It's often used with upstream Furion servers to avoid censorship.\n\nFeatures\n--------\n\n-   Automatic upstream fail over (when multiple upstream servers are available).\n-   Built-in latency check for choosing the fastest upstream.\n-   Periodical upstream updates from a designated central registry.\n-   Builtin DNS server/proxy to avoid poisoning.\n-   Limit what ports that clients are allowed to connect to.\n-   Easy account management on the server side.\n\nDependencies\n------------\n\nFurion has no external dependencies other than a standard Python 3.x (\u003e=3.8) installation. There is optional support for gevent, which would be used if an existing gevent installation was discovered.\n\nInstallation\n------------\n\nFurion can be installed via pip:\n\n    pip install furion\n\nor pipx\n\n    pipx install furion\n\nTo start using Furion, you need at least a furion.cfg file.\n\nBy default, Furion will look for furion.cfg and upstream.json in `/etc/furion` or the current working directory. You can specify path to the configuration file after a `-c` switch.\n\nFor client, an upstream.json file is also needed for upstream checking to work in the same directory your furion.cfg resides in.\n\nAlternatively, you can put the upstream.json file somewhere accessible via http(s), so that you can share that address with your friends. Then configure the `upstream` section of your `furion.cfg` file like below, to use that upstream file.\n\n    [upstream]\n\n    central_url = https://your.upstream.json\n\n    autoupdate_upstream_list = on\n\n    update_frequency = start\n\n    upstream_list_path = upstream.json\n\nRead configuration files in [examples](https://github.com/keli/furion/blob/master/examples) directory for more information.\n\n\n### Building Standalone Windows Clients\n\n* Install miniconda3\n```\nwinget install miniconda3\n```\n\n* Create a new conda environment\n```\nconda create -n furion\n```\n\n* Activate the environment\n```\nconda activate furion\n```\n\n* Install pyinstaller\n```\nconda install -c conda-forge pyinstaller\n```\n\n* Install wxPython (optional if you only want to build the cli version)\n```\nconda install -c conda-forge wxpython\n```\n\n* Install furion itself\n```\ncd furion\npip install -e .\n```\n\n* Build the standalone client\n```\ncd scripts/pyinstaller\npyinstaller.bat\n```\n\n* The standalone clients will be in `dist/furion.exe` and `dist/furion-cli.exe`\n* Furion.exe is only a tray icon currently.\n\nNote: You need to put a config file `furion.cfg` in the same directory of the exe for it to work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeli%2Ffurion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeli%2Ffurion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeli%2Ffurion/lists"}