Cloudflare scanner for V2ray config on Android Phones

Cloudflare Scanner

This Android application allows users to scan Cloudflare IPs using a real V2ray client by inputting their config details and evaluating each address based on download speed. This enables them to identify the best IP addresses for optimal connection. The app provides a user-friendly interface for users to easily navigate and select their preferred IP addresses, as well as the ability to save results for later use.


📱 Installation

You can download application APK from release section in right side of page 

If you are confused about which version to download, you should choose
APk by the name of CFScanner-X.X.X-release-all.apk

application does not require any special permission to run.

✨ Features & Screenshots

🔍 Scan Screen

Scan Screen (Import)Scan Screen (List)Scan Screen (Scan)

Scan Button

Note: scan button will appear when detect your ISP and network connection, please be patient

Import Config

At first users must input their configs by Copy or Scan QR option then use application.

Edit/Delete Config

To edit or Delete a config, long press on it.

🧾 History Screen

History Screen (List)History Screen (Details)History Screen (Speed)

Resume Button

You can resume interrupted or paused scan

Sort By Speed Button

This feature will help you to find best IP among other by downloading small file and evaluate ip be connection speed. Note: you can select download size for this part in Settings screen.

⚙️ Settings Screen

Settings Screen

Worker Seekbar

Select concurrent worker for scanning operation. Note: Increase in number of workers make scan faster, but will put more pressure on your phone!

Speed Download Size

As mentioned it will specify download size for speed checking process. Note: Increasing the size of sample used for estimation may improve accuracy, but it may also result in increased data usage

Fronting Url

Use to check access to this address through founded Ip in Scanning operation. Note: Please avoid changes this field if you are not familiar with usage

🧑‍💻 Technical Overview

How it started?

After encountering limitations with the V2ray client’s filtering capabilities In China and Iran and realizing the need for a more efficient and portable solution, this application was created to enable users to perform scanning operations directly on their Android devices. With the ability to resume scans and a user-friendly interface, it provides a convenient alternative to traditional computer-based scanning.

Structure and Architecture

This application was developed using Kotlin programming language and follows the Model-View-Intent ( MVI) architecture pattern. The application also leverages the power of Compose, the modern Android UI toolkit, for building the user interface instead of the traditional XML layout approach. Additionally, C++ was used to disable fdsan to avoid fatal error for native third-party library.



I designed the logo using AdobeXD and incorporated its color scheme throughout the application.  Note: Design is accessible in art/logo.xdfor AdobeXD

Build and Run

To Build application you need google-services.json file in app directory, you can get it from firebase console.Also you need NDK for build native library.

Note: You can set default Fronting Url in file like:

fronting_address = "your address without https"

⚒️ Upcoming Features

  • Implement inner VPN service
  • Resume Old Scan
  • Add Auto Switch Feature to VPN
  • Sync Best IPs for each ISP
  • Random CIDR picking
  • Persian/Chinese Language Support

🤝 Contribution Guidelines

We welcome contributions from anyone who is interested in improving this project! Here are some guidelines to keep in mind as you get started:

  • Fork the repository and create a new branch for your contribution.
  • Make your changes in the new branch, ensuring that your code follows the project’s coding style and guidelines.
  • Write clear and concise commit messages to describe your changes.
  • Test your changes thoroughly to ensure that they work as expected.
  • Submit a pull request with your changes and a brief description of what you’ve done.

We’ll review your contribution as soon as possible and provide feedback if necessary. We may ask you to make changes to your code or documentation before we can merge your pull request.

Please be patient as we review your contribution, and feel free to reach out if you have any questions or concerns. We appreciate your efforts to improve this project and look forward to working with you!

📄 Licence

Copyright (c) 2023 Sina Dalvand

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see

Note that this conversion assumes that you have the right to make this change to 
the license, as it may depend on the terms of any third-party libraries or code 
that your project uses.

☎️ Contact

reach me at: Telegram: @logandlv Email:


View Github

Leave a Reply

Your email address will not be published. Required fields are marked *