V2Ray Beginner FAQ: Subscriptions, Nodes, Cores & Proxy Modes

Get concise answers to 10 common V2Ray questions: subscriptions vs. nodes, client choices, Xray vs. V2Fly, and global vs. rule-based routing.

At a glance

For new users who have a subscription URL but aren't yet sure how clients, nodes, and proxy modes fit together. Start with the configuration layers, then follow the desktop import steps to connect. Finally, use logs to distinguish subscription errors, core startup failures, and apps that aren't using the proxy. Port numbers in this guide are examples with specific conditions—don't assume they are the defaults on your device.

1. How are V2Ray, clients, and cores different?

The client provides the interface; the core handles the connection. When people say “install V2Ray,” they may mean installing a client with a graphical interface or setting up a proxy core. For most beginners, the easiest approach is to choose a client and import the configuration from the server provider. You usually don't need to write routing rules from scratch.

  • Clients: v2rayN, v2rayNG, and v2flyNG provide node lists, subscription import, logs, and settings.
  • Cores: Xray or V2Fly core software reads the configuration and handles protocol connections, routing, DNS, and more.
  • Protocols: VMess and VLESS are connection protocols—not subscription services or system proxy modes.
  • Transport and security layers: Settings such as TCP, WebSocket, and TLS determine how the connection works and must match the server.

A client opening successfully doesn't mean the core has started; a running core doesn't mean your browser is using the proxy. Troubleshoot each step in order: “app entry point → local core → remote node.” Don't switch protocols just because a webpage won't load.

2. Are subscription links and node links the same thing?

A subscription is usually an endpoint for updating a group of nodes; a node link usually describes one connection. When the client updates a subscription, it requests the URL, parses the response, and refreshes the nodes in the group. A subscription isn't an active proxy connection: after importing it, you still need to select a node and connect.

What you receivedWhat it usually containsWhat to do with it
Subscription URLA URL for retrieving a list of nodes, sometimes with an access tokenSave it in a subscription group, then update the subscription
Node share linkA single configuration beginning with vmess://, vless://, or a similar schemeUse the client's clipboard import feature
QR codeCould contain a subscription URL or a single node linkIdentify the content type; don't assume based on the image alone
Configuration fileMay include inbound and outbound settings, DNS, and routingCheck which core it targets and how to import it; don't paste it as if it were a regular subscription

3. Which client should you use on a computer or Android?

Choose based on your device platform first, then check which core features your node requires. The recommendations below are for desktop workflows, not a cross-platform performance ranking. Follow the download page for installation steps and system requirements; don't swap packages between platforms.

v2rayN: desktop configuration

Recommended

For Windows, macOS, and Linux desktops. Manage subscriptions, select nodes, and check core logs in a graphical interface. System proxy and permission settings vary by platform, so check them separately.

Best for: managing subscriptions, adjusting routing, and troubleshooting connections on a computer.

v2rayNG: Android with Xray

An Android client that uses the Xray core. VPN mode requires system permission. If a node relies on Xray-specific features, make sure the bundled core supports the required parameters.

Best for: using node configurations that work with Xray on Android.

v2flyNG: Android with V2Fly

An Android client that uses the V2Fly core. Choose it based on the provider's protocol, transport, and core requirements—node names alone don't confirm compatibility.

Best for: using configurations confirmed to work with V2Fly on Android.

Clients manage configurations; they don't provide a working subscription by themselves. If the node list is empty after installation, you probably haven't imported a configuration yet. That doesn't mean the installation failed.

4. How do you choose between Xray and V2Fly?

Choose based on the node's features, not guesses about speed based on its name. The two cores share technical roots, but their features and configuration formats have diverged. A client displaying a protocol name doesn't mean every core or version can run that node.

  • For REALITY or xtls-rprx-vision: Use an Xray core and client that support these features. You can't run them by simply switching to a V2Fly core.
  • For VMess + WebSocket + TLS: Both core families offer related support, but you still need to check the server requirements, field formats, and the client's ability to convert the configuration.
  • If your current configuration works: Keep the existing core. If you see a clear “unsupported parameter” error, check the feature requirements. Don't change multiple settings at once when the connection is working.
  • For custom JSON: Check which core the file targets. Fields with the same name don't necessarily have identical values or behavior across cores.

In v2rayN, check 「Settings」→「Parameter Settings」 for core options available in your version, then use the node editor and startup logs to confirm which core is actually running. The core selector may be in a different place in different versions. Renaming files in the download directory won't switch the core. For more on protocols, see Protocol Guide.

5. Which VMess and VLESS settings need manual changes?

If the full subscription imports correctly, leave the node fields alone. VMess and VLESS use different authentication mechanisms; switching the protocol dropdown doesn't convert one into the other. VLESS doesn't provide traffic encryption on its own. Whether to use TLS, REALITY, or another security layer depends on the server configuration.

SettingWhat to checkCommon mistake
Server address and portUse the host and port provided by the providerChanging every node's port to 443
User ID and protocol fieldsKeep the authentication details from the original configurationChanging a VMess configuration directly to VLESS
WebSocket path and HostMatch the path, capitalization, and request headers to the server requirementsAssuming the path is always /ws
TLS serverName / SNIMatch the server certificate and deployment requirementsEntering any website domain that happens to load
REALITY parametersCheck the public key, shortId, serverName, and flow requirementsCopying only the server address and missing the other fields

Don't leave “skip certificate verification” enabled to work around certificate errors. First check the system clock, node address, and serverName, then confirm whether the subscription needs updating. If parameters are missing, request the complete configuration instead of filling them in based on another node.

6. What do port numbers and local proxy addresses mean?

Local listening ports and remote server ports are different. Here are three common numbers to keep straight: 10808 is the local port used in this section's example, not a default shared by all clients; 443 and 53 are commonly used for related network services, but that doesn't mean all traffic should be forced onto them.

10808
Example local SOCKS listening port
443
Common HTTPS service port
53
Common port for traditional DNS

The two cards below show a setup with two separate local inbounds. Use these values only if those listeners are actually configured in the parameter settings. Some configurations use a single mixed port for both HTTP and SOCKS; in that case, use the port shown in the interface rather than guessing another one.

Local SOCKS example

Server
127.0.0.1
Port
10808
Protocol
SOCKS5
Scope
Local loopback on this device

Only applies when this SOCKS listener is enabled. Remote DNS resolution also depends on app support.

Local HTTP example

Server
127.0.0.1
Port
10809
Protocol
HTTP proxy
Required
The core is listening on this HTTP inbound

This example uses a separate HTTP inbound; it doesn't mean every client automatically enables 10809.

Don't enter 127.0.0.1 on another device to connect to your computer's proxy; that address always points to the device where it's entered. For your first setup, allow local access only. Don't expose the proxy to your local network just to fix a webpage issue.

7. What's the difference between system proxy, global mode, and rule-based routing?

The system proxy determines how apps connect to the client; routing rules determine where requests go after they arrive. These are separate settings. Enabling the system proxy doesn't guarantee every program will use it, and switching to global routing won't capture an app that isn't using the proxy at all.

Setting layerWhat it doesHow to check it the first time
System proxyConnects apps that follow system settings to the local proxyv2rayN tray menu: 「System Proxy」→「Automatically Configure System Proxy」
Rule-based routingRoutes, bypasses, or blocks traffic based on domains, IPs, and other criteriaOpen routing settings and check the selected rule set and match order
Global proxy routingSends all requests entering this routing system through the proxy outboundUse it for a brief comparison test; it isn't a system-wide interception switch
Android VPN modeReceives app traffic through the system VPN interfaceAfter connecting in v2rayNG, check system permission and per-app settings

For everyday use, start with a suitable ruleset provided by the client, then adjust specific domains based on the logs. If a site works with global routing but fails with rule-based routing, check which rule matched and the DNS results instead of reinstalling the software. TUN or VPN mode doesn't eliminate the need to check routing; per-app settings may still exclude the app you want to use.

8. Does selecting a node mean you're connected?

No. Selecting a node chooses an outbound configuration; latency tests, webpage access, and DNS checks test different parts of the connection. A response with a time value doesn't prove that a particular site, UDP, or every app is working.

  1. Check core startup: Look for port conflicts such as “address already in use” and errors about unrecognized configuration fields.
  2. Check the app entry point: On desktop, use the system proxy or enter the local proxy details explicitly. On Android, confirm the VPN is running and the app isn't excluded.
  3. Check an actual request: Open the site you want to test and check whether the corresponding connection appears in the logs. If the logs don't show enough detail, temporarily increase the log level, then restore it after testing.
  4. Check DNS: If the logs show a domain resolution failure, first check the DNS settings and server reachability. Switching nodes may not fix a local DNS issue.

If you've confirmed that the local SOCKS5 listener is 127.0.0.1:10808 and curl is installed, run the command below to make an explicit proxy request. It sends this request through the SOCKS proxy and resolves the destination domain on the proxy side. It won't configure a proxy for other apps.

curl --connect-timeout 10 --max-time 20 --socks5-hostname 127.0.0.1:10808 -I https://v2rayopen.com/

If your local port is different, replace the port in the command first. For a refused connection, check the local listener. A timeout may also involve the remote connection. An HTTP response only confirms that this particular request received a response; it doesn't mean every site is working.

9. What's the right order for importing a subscription for the first time?

This walkthrough uses the v2rayN desktop interface. Menu labels may vary slightly by version. Follow this sequence: create a group → save the URL → update → select a node → configure the app entry point. For initial troubleshooting, use the standard system proxy path and don't enable multiple traffic-capture methods at once.

  1. Choose an installer

    Go to the download page, choose a file for Windows, macOS, or Linux and your processor architecture, then install or extract and run it as directed.

  2. Save the subscription

    Open 「Subscription Groups」→「Subscription Group Settings」, add a group, enter a label and subscription URL, then save. Don't enter a single-node vless:// link as a subscription URL.

  3. Update the group

    From the 「Subscription Groups」 menu, choose the option to update without using a proxy. A common label is 「Update all subscriptions (without proxy)」. Check the update message, then make sure nodes appear in the list.

  4. Set an active node

    Select a node from the list and use the right-click menu to choose 「Set as active server」. Then check the log at the bottom to confirm the core starts normally. A highlighted row alone doesn't confirm the node is active.

  5. Enable the app entry point

    On Windows, a common option is the tray menu 「System Proxy」→「Automatically Configure System Proxy」. On other desktop platforms, follow the installation instructions to confirm system proxy permissions, then make an actual request in your browser.

Use the update-through-proxy option only if the subscription URL requires a proxy and you already have a working one. If you don't have a usable node, enabling proxy updates can create a loop: you need a connection to download the configuration for that connection. A successful update also doesn't confirm that your service quota is active; check your account status with the provider.

10. What to do when updates fail, pages won't load, or you switch devices

Start by narrowing down the layer based on what happened, and change one thing at a time. When asking for help, include the client name, core startup errors, and the steps where the issue occurs. Don't just say “it doesn't work,” and don't share screenshots containing a full subscription URL.

Why is the node list empty after a subscription update?

First check that you copied the full subscription URL and didn't include extra spaces, then review the update message. HTTP 401 or 403 errors often mean you need to check authorization or access restrictions from the provider. A login page, information page, or incompatible response may also parse as an empty list. Once the URL is valid again, update it from 「Subscription Groups」 instead of repeatedly creating the same group.

A node passes the latency test, but my browser won't load pages. What should I change?

First check whether your browser follows the system proxy, then look in the core logs for a local port conflict or TLS or DNS errors. Compare the browser with a one-off explicit proxy request: if the request works but the browser doesn't, check the browser's own proxy settings or the system proxy entry point first. Don't start by changing the node's user ID.

Will settings sync automatically between a computer and a phone using the same subscription?

Usually, each device only fetches the node information provided by the subscription. Local routing, DNS, system proxy, and Android per-app settings won't sync automatically. Import the subscription separately in v2rayN and v2rayNG, then check those settings on each device. Also confirm whether your provider limits the number of devices that can connect at once.

What should I do if webpages stop loading after I close the client?

First check whether the system proxy is still pointing to a local port. Reopen v2rayN and choose 「System Proxy」→「Clear System Proxy」 from the tray menu. If you configured a proxy manually, restore the original value in your system network settings as well. Don't remove existing proxy policies on devices managed by your workplace or school.

Download v2rayNView installers for four platforms