Get familiar with the four main areas—server list, subscription groups, logs, and settings—then import a configuration, select an active server, set up the system proxy, and test the connection. This guide is for desktop users opening v2rayN for the first time. It clarifies the difference between selecting a row, using that server as the active server, and routing app traffic through the proxy, so you can troubleshoot without repeatedly switching servers while overlooking the proxy setting.
1. Identify the main areas and check connection status
In the main window, start with the menu or toolbar, then locate the server list, its nearby group filter, and the logs and status area below. Button placement can vary between the Windows WPF interface and cross-platform desktop versions, and features with the same name may be tucked into a menu. This guide focuses on finding features, rather than treating a screenshot's layout as universal across versions.
Think of v2rayN as a configuration and control interface: it manages servers, subscriptions, and routing, then launches the appropriate core. The core process is what establishes the proxy connection. An open window or populated server list alone does not prove that web traffic is going through the proxy.
- Server list: View imported connection profiles, test server candidates, and choose the active server.
- Subscription groups: Manage subscription sources, filter the list by group, and update subscriptions.
- Logs: Review startup, connection, and error entries to see where a problem occurred.
- Settings and status: Find options for local listeners, the system proxy, routing, and TUN.
2. Server list: what each column means
When reviewing the list, start with the remarks and protocol, then check the address, port, and test results. Available columns vary by version, and hidden columns or a narrow window can affect what you see. Don't assume a server is active based on its position in the list: check the active indicator and confirm the current server action in the right-click menu.
| Field | Meaning | What to check |
|---|---|---|
| Remark or alias | A name that makes the server easy to identify | The name comes from the configuration source; it doesn't confirm the server's actual location or availability. |
| Type or protocol | Connection protocol, such as VMess or VLESS | Protocol, transport, and TLS are separate configuration layers and are not interchangeable. |
| Address and port | The remote server's connection endpoint | This is not your computer's local proxy listening port. |
| Transport and security | Settings such as TCP, WebSocket, and TLS | These should match the server's requirements. Don't change them arbitrarily after importing. |
| Latency | Response time measured using a particular test method | Check whether it's a TCP test or a real connection test before comparing results. |
| Speed | Throughput measured by a download test under current conditions | Results depend on the test target and your local network; testing also uses data. |
To choose a server, select its row, open the right-click menu, and use a command such as “Set as active server.” The exact wording depends on your version. Double-clicking may edit or switch a server in different interfaces, so use a clearly labeled menu command if you're unsure. Afterward, check the active indicator and look in the logs for reload or startup entries.
Use the same test method when comparing latency. A TCP test mainly shows whether a connection to the target port can be established; it doesn't confirm that authentication, transport, and access to the destination website all work. A real connection test usually covers more of the proxy route, but can also be affected by the test URL. A blank result may simply mean the server hasn't been tested yet, and a timeout alone doesn't mean the subscription is invalid.
3. Subscription groups: filtering vs. updating
A subscription URL is where server configurations come from; a subscription group organizes those sources. Switching groups usually only changes which entries appear in the list. It doesn't automatically make the group's first server active. Updating a subscription fetches the remote configuration again and may add, remove, or change list entries.
-
Open subscription group settings
In the main window, go to “Subscription groups” → “Subscription group settings.” If the feature is inside a group management button in your version, open the window with the matching name. Review existing groups first to avoid adding duplicates.
-
Add a subscription source
Click “Add” or “+”, enter a descriptive remark, paste the full URL provided by your service into the subscription URL field, and save. Don't mistake a single VMess or VLESS connection for a subscription source.
-
Update subscriptions
Return to the “Subscription groups” menu and choose the command to update all subscriptions. Note whether the menu offers an update “through proxy” or “without proxy.” The former requires a working proxy connection first.
-
Check the import results
Switch to the group you just added, check the server count and remarks, and review the update logs. Set a server as active, then test actual access. An “update successful” message does not mean the connection works.
Treat subscription URLs as credentials: they may contain access tokens. When asking for help, obscure the full URL, QR code, and any sensitive fields in screenshots. Before making long-term changes to a server, check whether a subscription update will overwrite them. If needed, copy the server to a separate manual group so your changes are easier to track after the next update.
Handle these separately: find servers and refresh configurations
Just looking for a server?
- Switch groups to narrow down the visible list.
- Find candidates by remark or test result.
- Set the chosen server as active separately.
Need the latest configuration?
- Check that the subscription URL in the group is complete.
- Choose an update method that suits your current network.
- After updating, check that the active server is still valid.
Filtering by group changes what's visible; updating a subscription changes the configuration. Neither replaces a connection test.
4. Settings: remote server ports vs. local listeners
In common Windows layouts, open “Settings” → “Parameter settings” to find local listeners and related options. Cross-platform desktop interfaces may put settings on a separate page. Look for fields by name instead of relying on the tab order in an old screenshot. The system proxy, routing options, and TUN switch may also appear in the main window's status area.
Server connection settings
- Where to find them
- Server list → right-click → Edit
- Address
- The remote server's domain name or IP address
- Port
- The port the remote service listens on
- Configuration source
- Connection details from the subscription or service provider
Changing these settings affects the remote connection. It won't fix a local port conflict on your computer.
Local proxy endpoint
- Where to find them
- Settings → Parameter settings → local listener fields
- Example address
127.0.0.1for access from this computer only- Example port
10808; check your actual settings- Used by
- Browsers and other apps on this computer that need a proxy
If you change the local port, update any apps with manually configured proxy settings as well.
The three numbers below illustrate common configuration values; they are not universal defaults. Older guides may list separate SOCKS and HTTP ports, while newer configurations may use a mixed listener. Check which proxy protocols the current field supports, and don't copy port numbers from an old guide without verifying them.
5. Logs: match timestamps to actions before diagnosing errors
Once you find the log area at the bottom, check the timestamps first, then determine whether a message relates to a subscription update, a UI action, or the core. Some versions show app and core logs in separate tabs, so select the relevant one. An empty panel isn't necessarily an error: there may be no new requests, or the current log level may omit connection details.
When reproducing a problem, perform one action at a time. For example, note the time, set a server as active, then open a website to test. This makes it easier to match nearby log entries to specific actions instead of guessing from a long history. The error keywords below are common examples; wording varies between versions.
| Keyword | Check first | Next step |
|---|---|---|
address already in use | Local listening port conflict | Check whether the client is running more than once, then check the local port in Parameter settings. |
connection refused | Whether the error points to a local or remote address | For a local refusal, check whether the core has started. For a remote refusal, check the server address and port. |
timeout | Which step timed out: subscription request, DNS, or server connection | Use nearby log entries to identify the target, then check the corresponding network path. |
handshake | Protocol, transport, security settings, and system time | Review the full error message, obtain a valid configuration again, and don't disable security checks without a reason. |
When sharing logs, include a few surrounding lines and obscure subscription URLs, user identifiers, and sensitive destinations. Temporarily increasing log detail can help reproduce a problem, but restore your usual level afterward to avoid generating excessive logs. An individual connection error may only affect a background request, so check which app actually failed.
6. Common questions: troubleshoot by symptom
The import succeeded, so why is the list still empty?
Switch to a group that shows all entries and clear any search filters. Then check whether you only saved the subscription URL without updating it. Open “Subscription groups,” run an update, and check the logs to confirm that server configurations were retrieved.
I selected another row. Why hasn't the route changed?
The highlighted row may only be selected. Open its right-click menu, set it as the active server, and check the active indicator. Existing long-lived connections may not reconnect immediately; send a new request to test instead of watching an old connection that is still open.
Latency shows a value, but the browser can't load websites. Why?
First check whether the system proxy is enabled, then see if the browser has its own proxy settings. If there's no matching request in the logs, check the proxy entry point first. If you see a connection error, investigate the server, DNS, and routing rather than repeatedly testing latency.
Will it keep running after I close the window?
That depends on what the close button does and how the tray is configured. Check whether the client is still running in the system tray. To stop it, use the client's Exit command and make sure the system proxy has been restored. Closing the main window may not exit the app; don't try to fix things by opening multiple instances.
Follow this sequence for a final check: find the configuration in its group, set a server as active in the list, confirm the connection method in Settings or the status area, then test access and check the logs. Change one option at a time and note what happens before and after. Once you know these four areas, you can use the same workflow to import subscriptions, switch servers, and troubleshoot common problems.