For desktop users who can already import subscriptions into v2rayN but have servers from multiple sources mixed together. First separate subscription sources from server use cases, then distinguish list searches from update-time filtering, and finally set an update schedule for each source. The steps focus on v2rayN’s subscription group settings; there’s no need to add group fields to the core JSON. Menu labels may vary by version, so this guide also explains what the settings mean and how to verify them.
1. Subscription Groups, Server Lists, and Routing Rules: What’s the Difference?
A subscription URL fetches a set of servers. A subscription group tracks the source and its update options, while the server list displays the imported connections. Renaming a group from “Source A” to “Everyday” won’t change any server address, port, protocol, or transport—and it won’t automatically route any websites through that group.
Routing is a separate layer. The core matches rules based on domains, IP addresses, ports, and other conditions, then selects an outbound. Subscription groups are application-level data that v2rayN uses to manage servers. Don’t put a group name directly in routing.rules[].outboundTag: that field references an outbound tag in the generated configuration, not a group name shown in the interface.
- Subscription groups: Answer “Where did these servers come from, when should they update, and which names should be kept on import?”
- List search: Answers “Which rows in the current list should be shown?” It usually doesn’t change saved servers.
- Active server: Determines which server the current proxy connection uses. Switching list groups doesn’t switch the active server.
- Routing rules: Determine which outbound handles different requests. Check rule order and outbound settings separately.
VMess and VLESS are connection protocols, not source labels. A subscription can contain multiple protocols; whether they work also depends on whether the selected core can parse the server fields. Organize sources first, then troubleshoot protocol compatibility to avoid mistaking an import issue for a connection problem.
2. Create a Group for Each Subscription Source
In the v2rayN main window, open “Subscription Group” → “Subscription Group Settings,” add a record, and enter a note or alias along with the subscription URL. Some versions label this entry “Subscription Settings.” Look for the window with fields for the URL, update enablement, and update interval. When adding subscriptions, register one source first and confirm it updates successfully before adding another. That makes it easier to identify the source of any errors.
- Create a “Source A - Everyday” group and paste the full subscription URL from Source A into the URL field. Check for leading or trailing spaces, line breaks, or unintended punctuation.
- Leave the filter field blank for now. Save the group and update that subscription. If the interface only offers an option to update all subscriptions, first check whether updates are enabled for the other groups.
- Check the update log to confirm the request succeeded and servers were parsed. Then open the group and review server names, protocols, and ports.
- Create a separate record for Source B; don’t combine two sources in one URL field. Two groups with different names but the same URL won’t become separate upstream sources automatically.
- Note each group’s purpose and update interval. Manage manually added, long-term configurations in a separate local group to keep them out of the subscription update replacement scope.
The setup below is a suggested organization plan, not a software default. Enter intervals in minutes if that’s the unit used in the settings window; if the current interface uses another unit, convert the values first. Group names are for local reference only, and the examples don’t include real subscription URLs.
Source A - Everyday
- Number of sources
- 1 subscription URL
- Enable updates
- On
- Update interval
- 1,440 minutes
- Initial filter
- Leave blank until the full import is confirmed
For everyday use; save a filter only after validating the rule.
Source B - Backup
- Number of sources
- 1 subscription URL
- Enable updates
- On
- Update interval
- 2,880 minutes
- Naming strategy
- Keep upstream server names
Use as a backup source; check the update results and connection status before using it.
Subscription URLs often contain access tokens, so treat them like credentials. Remove the full URL and any sensitive parameters before sharing screenshots, logs, or configuration backups. Don’t paste URLs into public online regex testers or subscription converters just to test a filter expression.
3. Use Keyword Search and Subscription Filters for Different Tasks
To find a server temporarily, use the search or filter box in the main window’s server list. Select the target group, then enter a short term that appears in the server name, such as Hong Kong or HK. If there are no results, clear the search and check the original names before deleting a group. Search scope, case sensitivity, and searchable columns vary by version, so don’t assume the box supports regular expressions.
| Action | When it takes effect | Use case | How to undo |
|---|---|---|---|
| Server list search | As you type | Temporarily find servers whose names include a region | Clear the search and select the group again |
| Subscription name filter | When the subscription is fetched and processed again | Limit which servers are imported long-term | Clear the filter field, then update the subscription |
| Delete a server manually | After confirming deletion | Remove local entries you’re sure you no longer need | Subscription servers may reappear on the next update |
If you want to keep only certain regions long-term, return to Subscription Group Settings and look for a field labeled “Filter” or “Regex Filter.” Confirm whether it keeps matching entries or excludes them; don’t assume the same behavior across different versions or fields. After saving, update the subscription again. Switching groups alone won’t reapply update-time filtering to already imported servers.
Regular Expressions: Test with Positive Matches First
If the field explicitly supports regex, use the expression below to match names containing “Hong Kong” or the standalone letter code “HK.” It ignores letter case. The letter boundaries help prevent matching those letters inside unrelated words. If the upstream uses names like HK01, this expression will match those too, since digits aren’t included in the English-letter boundaries.
(?i)(香港|(?<![A-Za-z])HK(?![A-Za-z]))
香港-01: Matches the Chinese region name.HK-02andhk01: Match the letter code, regardless of case.Tokyo-01: No match.- Using just
香港|HKis easier to read, but broadens the matches. Whether that’s appropriate depends on the upstream’s actual naming conventions.
Choose one name that should match and one that should be excluded, then check the results after updating. If the results are reversed, check whether the field is an exclusion filter. If everything disappears, clear the rule and update again to restore the full list. Don’t pile on several complex conditions before you’ve isolated the problem.
A reliable approach: search by name first, then move the condition into subscription filtering
Only save conditions you’ll use repeatedly. If a temporary search finds the server but subscription filtering doesn’t, check the match behavior and update log before assuming the upstream removed it.
4. Set Update Intervals by Source, Not by Server Count
Automatic updates fetch subscription content again; they don’t run scheduled speed tests, and a shorter interval won’t improve connection speed. As a starting schedule, update everyday sources once a day and backup sources once every two days. Follow the provider’s minimum request interval if one is specified. These figures are time conversions for the plan in this guide, not performance measurements or software defaults.
In Subscription Group Settings, check “Enable updates” and “Automatic update interval” for each group. Don’t guess what a blank value or 0 means; if you need to disable scheduled updates, use an explicit toggle when available. Scheduled updates usually depend on v2rayN running, so don’t assume subscriptions continue to be fetched in the background while the client is closed.
- Just changed a filter? Update manually and check the results right away instead of waiting for the next scheduled run.
- Resumed after sleep? Check the latest update log. Don’t assume an update finished just because enough time has passed.
- The upstream announced a configuration change? Update the affected source manually, then check whether the active server is still available.
- Updates keep failing? Keep the logs and check the network and URL. Don’t shorten the interval and generate even more failed requests.
Also distinguish between “Update subscription” and “Update subscription through proxy.” The latter requires a working proxy connection; if the active server is down, the same server may block the update request. Choose an update method that suits your local network, but don’t keep switching network settings before checking the URL and request path.
5. Troubleshoot Duplicates, Empty Lists, and Update Failures
A shorter server list doesn’t necessarily mean the provider has removed servers, and a longer one doesn’t automatically mean an update went wrong. Clear the list search first, select the right group, then check the subscription update log. Logs may contain sensitive URLs; note the error rather than publishing the full raw output.
| Symptom | Check first | Next step |
|---|---|---|
| No servers in a group | Is a list search still active? Is the name filter too restrictive? | Clear the search, remove the filter, and update that source again |
| Update returns 401 or 403 | Has the URL token expired? Have account permissions or access policies changed? | Check the latest URL and account status provided by the service |
| Update returns 429 | Have you been updating manually too often, or are multiple devices making requests at once? | Stop retrying, wait as directed by the upstream, and increase the interval |
| Request succeeds, but no servers are parsed | Is the response a login page, notice page, or unsupported format? | Check the subscription format, client parsing log, and intended use of the URL |
| Duplicate server names | Was the subscription added twice? Do the same-named servers belong to different sources? | Compare groups first, then check the connection parameters |
| Server imports but won’t connect | Core support, server status, and transport settings | Troubleshoot using the connection log instead of changing group names |
Don’t identify duplicates by display name alone. Two servers named “Hong Kong-01” may use different addresses, ports, user IDs, or transport paths; different ports on the same address may also point to different services. Conversely, an upstream may assign multiple labels to the same connection. Delete a duplicate only after confirming that its connection parameters and purpose are the same.
When removing an old source, distinguish between “Remove subscription record” and “Delete servers in group.” Read the confirmation dialog to see what will actually be removed. Switch to a working active server first, then delete only the data you no longer need. Don’t clear all servers just to hide one source.
6. Post-Organization Checklist
After creating groups, run a full update to verify the maintenance workflow instead of checking only whether the list looks tidy. You should be able to trace each source, undo filters, understand update logs, and switch servers without repeatedly changing subscription settings.
- Source check: Each subscription record has a clear, distinguishable source name, and sensitive URLs aren’t visible in public screenshots.
- Filter check: Keep a known matching name for comparison, and confirm that a name that shouldn’t match hasn’t been included by mistake.
- Update check: A manual update completes, update settings and intervals match each group’s purpose, and the log shows no persistent request errors.
- Connection check: Select an imported server, check the system proxy or proxy mode you use, and verify the connection in an actual application.
- Recovery check: Know how to clear searches, remove filters, and update again. Back up any local configurations you need before making changes.
For ongoing maintenance, adjust a group only when its source, server names, or update status changes. Handle protocol, DNS, and routing issues in their respective configuration layers. For more details on settings, see the Complete Configuration Guide. For initial system proxy setup and importing servers, follow the Quick Start Guide.