Skip to main content

New on PublicVPNList · Android setup

v2rayNG on Android: import checked VPN configs and scan QR codes

PublicVPNList now offers Connect in v2rayNG and QR code actions beside compatible configuration downloads. You can import a profile on your Android phone, scan it from another screen or build the same flow using our API.

By PublicVPNList · Published

What changed?

Supported catalogs, filtered selections and server detail pages now offer client import and QR actions next to Download. The configuration is retrieved only when requested, through the existing download checks. A removed or expired configuration shows an error instead of an import link.

The app button imports connection settings. It does not silently start a VPN, install an Android app or grant VPN permission. You make those choices in v2rayNG.

Which configurations work with v2rayNG?

v2rayNG is an Android client using Xray/V2Ray components. Use a recent official release, especially for newer transports and Hysteria2. A protocol name alone does not guarantee that every transport or optional feature is supported by your installed version.

PublicVPNList import options
Protocolv2rayNG buttonConfiguration QR
VLESS, VMess, Trojan, ShadowsocksYes, for downloadable configurationsYes
Hysteria2Requires a compatible recent releaseYes
TUICNot offeredYes, use a TUIC client
OpenVPN, WireGuard, IKEv2Not offered by this integrationNo automatic QR action in these catalogs

An OpenVPN .ovpn profile cannot be converted into VLESS by changing its filename or making a QR code. For OpenVPN, follow the OpenVPN Android guide. The separate QR generator also accepts manually supplied WireGuard configurations.

How to connect in v2rayNG on Android

  1. Install or update v2rayNG from the official project releases.
  2. Open a supported PublicVPNList catalog and choose a recently checked server. Review its protocol, transport and check history.
  3. Select Connect in v2rayNG. Wait while the site retrieves the current configuration.
  4. Tap Open v2rayNG in the import window. Your browser may ask permission to open the Android app.
  5. In v2rayNG, select the imported profile and start the connection. Accept Android's VPN permission prompt if you choose to proceed.
  6. Use What is my IP? to check your public address and VPN leak tests to examine additional browser signals.

If app opening is unavailable, press Copy config, open v2rayNG and choose its clipboard import action. Menu labels may vary by version. Desktop and iPhone browsers can display the QR for an Android device; they do not run the Android app.

Advertisement

Scan a VPN QR code or save it as SVG

Select QR code beside the download. Open your client's QR scanner on another device and scan the square code. In v2rayNG, select the imported profile before connecting. The QR contains the actual share URI, not a link to an article or a screenshot of the server address.

The image is generated locally in the browser with the site's bundled QR encoder. No external QR service receives the configuration. Use Download QR (SVG) to transfer or print it. The viewer limits QR payloads to 2,400 UTF-8 bytes; longer profiles remain available through direct import and copying.

Configuration URIs and QR images can contain access credentials. Share them only with the intended device. Closing the import window clears its in-page configuration and QR preview; it does not erase a saved image or your clipboard.

If import or connection fails

  • The app does not open: confirm that v2rayNG is installed on Android and up to date. Use clipboard import if your browser blocks external app links.
  • The configuration is no longer available: close the window and choose another checked server. Sources can remove or rotate profiles after a successful check.
  • Import succeeds but the tunnel fails: verify that the profile is selected, check transport support in your client version and try another recently checked endpoint. Your network route may differ from the checker.
  • The QR will not scan: increase screen brightness, show the full code with its white border or use Copy config. Very long profiles are deliberately not turned into dense QR codes.

Our checks establish a working tunnel at the recorded time, with HTTPS traffic and a changed public exit IP. They do not establish operator identity, logging policy or future availability. Read how verification works and the limits of public VPN endpoints.

v2rayNG and QR output in the API

The server list and individual server responses expose three additional nullable fields. Existing API access requirements remain in place.

  • v2rayng_url: opens v2rayNG and imports the server's current download URL as a single-server subscription. Unsupported protocols return null.
  • connection_info_url: fetch this URL on demand for the current config_uri, direct profile v2rayng_url and qr_payload. It uses the same verification and source checks as Download.
  • qr_code_url: opens the HTML QR viewer, including SVG download. This is a web page, not a PNG or SVG endpoint.

For example, request these fields from the authenticated server API:

GET /api/v1/servers?protocol=vless&status=online&per_page=1&fields=id,protocol,v2rayng_url,connection_info_url,qr_code_url

A client can then fetch the selected record's connection_info_url. Encode the returned qr_payload verbatim with its own QR renderer, or open the supplied QR page. Above 2,400 bytes, qr_payload is null; use direct import instead. Configuration responses use private, no-store. Do not put them in logs or analytics.

Handle HTTP 404 or 410 when a profile has expired or disappeared, and 503 when its source is unavailable; error responses are plain text. See the API documentation and OpenAPI schema for the full contract.

Implementation references

Protocol parsing and Android app-link behavior were checked against the official v2rayNG repository, including URL scheme handling and configuration import. Features may differ in older app releases.