v2rayN Main Window Guide: Server List, Subscription Groups, Logs and Settings

A practical guide to the v2rayN main window: understand server list columns, manage subscription groups, read log errors, and find essential settings.

At a glance

This guide is for anyone who has just launched v2rayN and is unsure what the different areas around the server list do. Using the common v2rayN 7.14.x interface as a reference, it covers node columns, subscription groups, core selection, log analysis, system proxy settings, and local ports. By the end, you should be able to choose a node, start the proxy, and handle basic troubleshooting independently.

Understand the four main work areas

The v2rayN main window can be divided into four areas: the menu and toolbar, subscription groups, the server list, and runtime logs. Everyday connections do not require opening every setting. First narrow down the node source through a subscription group, select an active server from the list, then check the logs to confirm that the core started successfully.

Button positions and column names may change between 7.x releases, but the overall flow remains the same. A subscription turns remote configuration into local server entries; the server list displays and selects those entries; the Xray or v2fly core handles the connection; and the system proxy sends traffic from browsers and other proxy-aware apps to a local listening port.

Server list

Primary action
Select the active server
Key details
Latency, speed, and protocol
Source updates
Subscription groups
Double-click result
Edit the current configuration

Before connecting, make sure the highlighted row and the status bar refer to the same server.

Runtime logs

Startup information
Core and configuration files
Connection details
Destination and routing results
Error messages
Timeouts, port conflicts, and configuration failures
Troubleshooting order
Start with the latest entry at the bottom

A successful startup message only confirms that the core is running. You must still verify a webpage and the exit IP address.

Interface area Primary purpose Typical use
Menu and toolbar Open settings, update subscriptions, run speed tests, and switch proxy modes Used when configuring or troubleshooting
Subscription groups Filter servers by source and update a group Used when switching service sources
Server list View node details and test results, then set the active server Used every time you connect
Logs and status area Confirm core status, local ports, and connection errors Check during startup and when problems occur

How to read the server list columns

Each row in the server list represents an available configuration, possibly using VMess, VLESS, Trojan, or another protocol. Names are usually supplied by the subscription provider and mainly identify the region, route, or traffic multiplier; they do not indicate measured quality. The address and port identify the remote endpoint. Columns such as transport, security, TLS, and Reality describe connection parameters and normally should not be edited after import.

Pay attention to how latency is measured. TCPing mainly checks whether a TCP connection to the target port can be established; a low value does not prove that the full proxy path works. A real-connection test sends an actual proxy request through the core and is more useful for choosing a node. If one result is 68 ms and the next is 210 ms, the route is unstable—run two or three consecutive tests instead of relying on the lowest number.

Real-connection latency

Recommended

This makes the active core establish a real proxy connection, revealing handshake failures, authentication errors, and unreachable routes. Three results consistently between 72 and 88 ms are more meaningful than a single low reading.

Best for: screening everyday nodes before connecting

TCPing

Quickly probes the remote address and port. It is fast, but cannot confirm that VLESS, VMess, or transport-layer parameters can complete a handshake.

Best for: quickly ruling out completely unreachable ports

Speed test

Compares throughput through an actual data transfer. It uses traffic and is affected by the test server’s load and your local bandwidth limit.

Best for: comparing routes before downloading large files

How to organize nodes from multiple subscription sources

Subscription groups are not protocol categories; they store subscription sources and their update rules. If you use two subscriptions, keeping them in separate groups prevents all servers from being mixed into one list and lets you update only the source that changed. Name groups after the service or purpose so they are easy to recognize, rather than using generic names such as “Subscription 1” and “Subscription 2”.

Updating a subscription rereads its remote content, so node names, addresses, ports, and authentication details may change. Manually edited subscription nodes can be overwritten during an update. For personal labeling, use group filters or the client’s supported note feature instead of changing critical connection fields directly.

  1. Create a group

    Open “Subscription Groups” in the main window, click “+” or the add entry, enter a group name and subscription URL, then save.

  2. Update contents

    In “Subscription Groups”, select the relevant source and update the current subscription. For the first import, you can update all subscriptions.

  3. Check the count

    Return to the server list and verify the number and names of entries in the group. If the list is empty, first confirm that the group is enabled.

  4. Batch testing

    Select the current group first, then run a real-connection latency test to avoid sending requests to hundreds of unrelated servers at once.

  5. Set as active

    Select a server with stable latency and set it as the active server. Check that the status area shows the new name as well.

Practical keyword filtering

When you have many nodes, filter by a region or route marker in the name. For example, entering “Tokyo” keeps only entries whose names contain Tokyo; excluding “3x” reduces interference from high-multiplier routes. Filtering depends on node names, does not replace checking protocol parameters, and does not change remote subscription content.

If old nodes remain after an update, first confirm which group you are viewing, then check whether an option to retain expired servers is enabled. Do not repeatedly add the same subscription URL, or the list may contain duplicate entries with identical names but different group ownership.

Core type and local ports in Settings

Settings centralize the core, listening ports, startup behavior, and proxy options. When getting started, confirm that the selected Core type is available and note the local listening port. A common setup uses 127.0.0.1 as the local address and port 10808, but the effective values are shown in the current settings and status bar.

If you configure a proxy manually in your browser, the protocol and port must match. A mixed port can accept common HTTP and SOCKS inbound connections; older configurations may use 10808 and 10809 separately. When a port conflict occurs, do not keep restarting blindly. Check the logs for the occupied port, then switch to an unused value such as 10818.

  1. Open Settings

    From the main window, go to “Settings” → “Parameter Settings” → “Core Type” to see which core is selected for the current configuration.

  2. Confirm the core

    For everyday VLESS, Reality, or newer Xray configurations, choose Xray. Existing VMess configurations should retain the compatible core specified by the subscription.

  3. Verify the port

    In Parameter Settings, confirm the local listening port, such as 10808, and check that it listens only on the local address 127.0.0.1.

  4. Save and restart

    Save the settings and restart the core. Then check the logs to confirm that the new core and port have loaded, rather than continuing to use an old process.

Xray + VLESS Reality

Core type
Xray
Common transports
TCP
Common Flow
xtls-rprx-vision
Local port
10808

The public key, short ID, ServerName, and fingerprint are usually supplied automatically by the subscription and should not be changed arbitrarily.

v2fly + VMess WS

Core type
v2fly
Common transports
WebSocket
Common security layers
TLS
Local port
10808

The path, Host, and TLS name must match the server. An error in any field can cause the handshake to fail.

How to read startup and connection errors in the logs

Start log troubleshooting with the most recent entry. First check whether the core loaded the configuration and is listening on the local port, then see whether an outbound entry appears when you open a webpage. If the logs stop during startup, the issue is usually with the core, configuration file, or port. If connection entries appear but the remote side times out, the node, network, or remote service is more likely at fault.

During a normal startup, the logs usually show the core version, configuration loading, and listening address. Wording varies between cores, so do not look for an exact phrase. The important points are that errors such as failed, invalid, or address already in use do not appear immediately afterward and that the status bar remains in the running state.

Example troubleshooting order
1. Core: Xray
2. Local listen: 127.0.0.1:10808
3. Configuration loaded
4. After opening a webpage, an outbound connection appears
5. No timeout or connection refused appears
Log keyword Typical meaning Action
address already in use A local port such as 10808 is already occupied by another process Exit the duplicate core, or switch to 10818 and restart
connection refused The remote address is reachable, but the target port refused the connection Update the subscription and switch to another node in the same group
timeout The connection did not complete within the allowed time Run a real-connection speed test and compare routes in other regions
invalid config A configuration field is missing, malformed, or incompatible with the core Reimport the subscription and verify the Core type
failed to resolve Domain name resolution failed Check local DNS, network connectivity, and routing settings

Before copying logs for troubleshooting, remove the subscription URL, node authentication details, and complete configuration contents. Usually, the 10–20 lines around the error, the v2rayN version, Core type, node protocol, and steps to reproduce are enough to determine whether the issue involves a local port, configuration parsing, or a remote connection.

How the status bar, system proxy, and routing work together

Selecting a server does not mean traffic is already using the proxy. The complete path is: an active server is set, the core is running, the local port is listening, and application traffic is directed to that port. For desktop apps that follow the system proxy, enable the system proxy in v2rayN. Apps that ignore system proxy settings need their own proxy configuration or, where appropriate, TUN mode.

Routing determines where traffic goes after entering the core. Rule mode can keep LAN traffic and common direct destinations direct while sending proxy-required requests through the active server; global mode sends more traffic through the proxy. After changing routing rules, test both a direct destination and a proxied destination so you do not validate only one webpage.

Recommended setup: share one subscription source between desktop and Android

Desktop (v2rayN)
  • Manage subscription sources by group
  • Use real-connection latency to filter nodes
  • Handle common apps through the system proxy
  • Check that 10808 is listening in the logs
Android (v2rayNG)
  • Import the same subscription link
  • Use the Xray core for the relevant configuration
  • Run new tests on the mobile network
  • Set per-app proxying when needed

Both devices can share a subscription source, but latency and speed must be tested separately. A desktop broadband result of 65 ms does not mean the mobile network will produce the same result.

  1. Set a server with normal real-connection latency as the active server in the server list.
  2. Confirm that the logs show the core loaded and listening on the local port configured in Settings.
  3. Enable the system proxy and visit two different websites in a browser.
  4. Check that the exit IP matches the selected node region and that direct-routing rules behave as expected.
  5. Disable the system proxy and visit the sites again to confirm that changing the proxy state changes the traffic path.

Common main-window problems and troubleshooting order

Most main-window issues do not require an immediate reinstall. Confirm the group and active server first, then check the core and port, and finally inspect the system proxy and routing mode. This separates subscription, node, and local proxy problems. Change only one variable at a time and retest after each change for clearer results.

The subscription update completed, so why is the list still empty?

First confirm that the current subscription group is enabled and clear any keyword filter in the server list. Then update that group once and check the logs for a subscription parsing failure. If the returned content is empty, check the subscription status.

The node latency is low, so why will webpages not open?

Confirm that you ran a “real-connection latency” test rather than TCPing alone, then check whether the system proxy is enabled. Look for authentication failures, TLS handshake failures, or connection timeouts in the logs, and retest with another node from the same group.

The status bar says it is running, but traffic still bypasses the proxy?

A running core only means that the local listener has started. Open “Settings” to check the system proxy, then verify that the target app reads system proxy settings. For manual configuration, enter 127.0.0.1 and the actual port, such as 10808.

Do the logs repeatedly say that port 10808 is occupied?

Fully exit any duplicate v2rayN instance or leftover core process first. If the port remains occupied, change the local port to 10818 in Parameter Settings, save, restart the core, and update the manually configured proxy port in your browser.

Did a previously working node disappear after a subscription update?

Subscription updates follow the remote content, so discontinued entries may be removed. Switch to the correct group and check the filters. If you need to keep a manual configuration, add it separately instead of mixing it with subscription-generated entries.

Once the main window is familiar, daily use can follow a short routine: update the relevant subscription group, run a real-connection latency test, set the active server, enable the system proxy, read the logs, and verify the exit IP. When something fails, check these steps in reverse order to quickly determine whether app traffic never reached the local port or the core could not connect to the remote node.

Client Downloads View downloads for each platform