{"id":19503504,"url":"https://github.com/hiddify/hiddify-reality-scanner","last_synced_at":"2025-08-26T09:07:53.947Z","repository":{"id":208634974,"uuid":"722120931","full_name":"hiddify/Hiddify-Reality-Scanner","owner":"hiddify","description":"An efficient Reality scanner that swiftly identifies optimal SNIs through minimal commands.","archived":false,"fork":false,"pushed_at":"2024-04-02T18:12:03.000Z","size":634,"stargazers_count":209,"open_issues_count":8,"forks_count":40,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-15T23:50:21.562Z","etag":null,"topics":["hiddify","python","reality","scanner","tls"],"latest_commit_sha":null,"homepage":"https://hiddify.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hiddify.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null},"funding":{"github":["rochacbruno"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2023-11-22T13:33:29.000Z","updated_at":"2025-08-07T20:22:55.000Z","dependencies_parsed_at":"2023-11-27T08:28:48.422Z","dependency_job_id":"cf044dd3-44e7-49bd-9ce7-aa7cfb3239f5","html_url":"https://github.com/hiddify/Hiddify-Reality-Scanner","commit_stats":{"total_commits":89,"total_committers":5,"mean_commits":17.8,"dds":0.4606741573033708,"last_synced_commit":"e7b0990328d666cff8e92e5aaf693c003ce785bb"},"previous_names":["hiddify/hiddify_reality_scanner","hiddify/hiddify-reality-scanner"],"tags_count":13,"template":false,"template_full_name":"rochacbruno/python-project-template","purl":"pkg:github/hiddify/Hiddify-Reality-Scanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiddify%2FHiddify-Reality-Scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiddify%2FHiddify-Reality-Scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiddify%2FHiddify-Reality-Scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiddify%2FHiddify-Reality-Scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hiddify","download_url":"https://codeload.github.com/hiddify/Hiddify-Reality-Scanner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiddify%2FHiddify-Reality-Scanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272200572,"owners_count":24890816,"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","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["hiddify","python","reality","scanner","tls"],"created_at":"2024-11-10T22:21:54.656Z","updated_at":"2025-08-26T09:07:53.921Z","avatar_url":"https://github.com/hiddify.png","language":"Python","funding_links":["https://github.com/sponsors/rochacbruno"],"categories":[],"sub_categories":[],"readme":"\u003cbase target=\"_blank\"\u003e\n\n\u003cdiv dir=\"ltr\"\u003e\n\n\n\n[**![Lang_farsi](https://user-images.githubusercontent.com/125398461/234186932-52f1fa82-52c6-417f-8b37-08fe9250a55f.png) \u0026nbsp;فارسی**](README_fa.md)\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cdiv align=center markdown=\"1\"\u003e\n \n\n![Hiddify Logo](https://user-images.githubusercontent.com/125398461/227777845-a4d0f86b-faa2-4f2b-a410-4aa5f68bfe19.png)\n\n\u003c/div\u003e\n\n# Hiddify Reality Scanner\nThis is a TLS scanner that helps you scan across different networks and find the best Reality SNI for you based on a list of SNIs. For more information about development, you can read through our [Contribution Guidelines](CONTRIBUTING.md) .\n\n## ⚙️ Installation\nThe installation of this scanner has 2 parts. The first part is a server-side application and the 2nd part is client-side.\n\n\n#### 🛠️ Server-side Installation\n\n* First you need to install our custom Xray core on the server using the following command:\n```\n# remove old xray\nbash -c \"$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)\" @ remove\n\n#only if you have hiddify manager and hiddify panel\nsystemctl stop hiddify-xray\n\n# install hiddify custom xray\nbash -c \"$(curl -L https://github.com/hiddify/Xray-core-custom/raw/main/install-release.sh)\" @ install\n\n#only if you have hiddify manager and hiddify panel\nsystemctl start hiddify-xray\n```\n\n* Now you should create a config with empty nameserver in your panel or add the following config:\n```\ncurl -o server_config.json https://raw.githubusercontent.com/hiddify/Hiddify_Reality_Scanner/main/server_config.json\n\necho \"---------------IPV6---------\"\necho \"vless://hiddify@$(curl -6 ip.sb):11443/?fp=chrome\u0026security=reality\u0026pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw\u0026sid=6ba85179e30d4fc2\u0026sni=www.google.com\u0026type=tcp\u0026flow=xtls-rprx-vision\u0026encryption=none#Hiddify\"\n\necho \"---------------IPV4---------\"\necho \"vless://hiddify@$(curl -4 ip.sb):11443/?fp=chrome\u0026security=reality\u0026pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw\u0026sid=6ba85179e30d4fc2\u0026sni=www.google.com\u0026type=tcp\u0026flow=xtls-rprx-vision\u0026encryption=none#Hiddify\"\n\n```\n* Then you need to run the config via Xray like the command below. This will create a temporary Xray server for you :\n```\nxray run -c server_config.json\n```\n* You can use your Reality config like the the following link:\n\n```\nvless://hiddify@SERVER_IP:11443/?fp=chrome\u0026security=reality\u0026pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw\u0026sid=6ba85179e30d4fc2\u0026sni=www.yahoo.com\u0026type=tcp\u0026flow=xtls-rprx-vision\u0026encryption=none#Hiddify\n```\n\n#### 🛠️ Client-side Installation\nFor client-side, you just need to use Pypi and run the following command:\n```bash\npip install -U hiddify_reality_scanner\n```\n\n\u003cbr\u003e\n\n## 🚀 Basic Usage\nIn order to run the scanner you need to [insall python](https://www.python.org/downloads/) first, then use one of the following commands on your client:\n```bash\npython -m hiddify_reality_scanner \"vless_link\"\n#or\nhiddify_reality_scanner \"vless_link\"\n```\n\u003e Be careful that instead of `vless_link' you have to replace it with your Reality config.\n\n## 🚀 Advanced Usage\n* If you want to consider more items when scanning, use the following command on your client:\n```bash\nhiddify_reality_scanner --jobs 10 --limit 100 --sni yahoo.com,google.com \"vless_link\"\n```\n* Here:\n  * `--jobs 10` defines the number of concurrent scans. The(default 10 if you dont use this parameter in the command.\n  * `--sni` defines the desired SNIs for scanning.\n  * `--limit 100` defines the 100 limit for the working SNIs in the result list. The default 10 if you dont use this parameter in the command\n \n* If you want to add a list of SNIs, use the following command\n```bash\nhiddify_reality_scanner --jobs 10 --limit 100 --sni path_to_the_list vless_link\n```\n* Here:\n  * `--jobs 10` defines the number of concurrent scans. The(default 10 if you dont use this parameter in the command.\n  * `--sni path_to_the_list` desines the path for the list of SNIs.\n  * `--limit 100` defines the 100 limit for the working SNIs in the result list. The(default 10 if you dont use this parameter in the command.\n\n\u003e Note: during the scan, if you want to intrupt it, you can simply use `ctrl+c` .\n\n## 📊 Results\nThe results will be stored in `results.txt` and `results.json` on your client. You can use these SNIs as a Reality domain in your server. [How to add Reality domain on Hiddify Manager](https://hiddify.com/manager/configuration-and-advanced-settings/How-to-use-Reality-on-Hiddify/)\n\n\n\n\u003e Note: If you have installed server-side scanner on your Hiddify Manager; You need to run the following command after finishing the scan:\n\n```\nsystemctl start hiddify-xray\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiddify%2Fhiddify-reality-scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhiddify%2Fhiddify-reality-scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiddify%2Fhiddify-reality-scanner/lists"}