Quick start · First-time setup

v2rayN Setup Guide for macOS

Import a subscription, choose a proxy mode, and verify the connection in four steps. Start with the system proxy; leave TUN and custom DNS until the connection works.

Allow about 10 minutes for your first setup. Before you begin, get a valid subscription link or a complete server configuration from your service provider. The client reads configuration and forwards traffic; installing it does not provide a working server. Subscription links often contain access credentials. Don't post a full link in public forums or share screenshots that show links, QR codes, or account details.

If you haven't installed the client yet, go to the macOS downloads and choose the right installer. Open About This Mac in the Apple menu: choose Apple Silicon if it lists an Apple chip, or Intel if it lists an Intel processor. After installation, open v2rayN from Applications. If macOS can't verify the app's source, check the download source and app name, then follow the security options provided by macOS. Don't disable system-wide security protections. The steps below assume the client opens normally.

Step 1: Import a subscription

Open v2rayN and go to Subscription Groups, then choose the option to add a group. Give it a recognizable name and paste the full subscription link into the address field. The name is just for your own organization; use a provider or purpose that you'll recognize. The address field determines which source the client contacts when updating. Check for spaces, line breaks, or punctuation added by a messaging app, make sure the link hasn't been cut off, then save the group.

Saving a group doesn't import its server configuration. Return to the main window, update the subscription from the relevant menu, and make sure you select the group you just added. If you don't have a working proxy yet and the subscription URL is directly accessible on your current network, try Update subscription (without proxy) first. If your provider requires a proxy to access the subscription, establish a working connection before choosing the update-through-proxy option. Don't repeatedly try proxy-dependent updates before your first connection is working.

After the update, open the relevant group and check the server list. You should see selectable configurations, not just an empty group. Names, protocol types, and connection settings come from the subscription; a server's name alone doesn't tell you whether it works. If the update reports success but the list is empty, check that you selected the right group and cleared any search filters. Then confirm that the subscription hasn't expired and returned configurations the client can recognize.

If you have a single server share link rather than a subscription URL, use the server menu's clipboard import option. Don't paste it into the subscription update address field. Copy the entire link before importing, then confirm the client recognizes its protocol. When entering server details manually, match the address, port, user ID, transport, and TLS settings to the source. Check the provider's instructions for missing fields rather than guessing.

v2rayNG: Add the source, then update

In v2rayNG, open Subscription Group Settings, add a group, enter a name and subscription address, then save. Return to the main screen, choose Update subscription from the menu, and open the group to view its configurations. For a single share link, use the add option on the main screen to import it from the clipboard. Menu locations can change between versions, but saving the source and updating its contents are separate actions. Seeing the group name doesn't mean the servers have been imported.

At this point, just confirm that the list contains the server you plan to use; there's no need to test every entry yet. Select one server, then choose how traffic will reach the client. If the update failed, check the link's expiration, your device's date and time, and whether your current network can reach the subscription source. Don't change proxy, DNS, and transport settings all at once. For more help, see Subscription Update Failed: Fixes and Auto-Update Settings. This guide continues with a successfully imported subscription.

Step 2: Choose a proxy mode

After importing a subscription, distinguish between two settings: the system proxy determines which apps send requests to the client, while routing rules determine whether requests received by the client go direct or through the proxy. They control traffic entry and exit, respectively, and aren't interchangeable. For your first setup, use the system proxy and test with a browser that follows it. Leave Enable TUN off to avoid introducing extra permissions, a virtual network interface, and DNS interception all at once.

Find System Proxy at the bottom of the v2rayN main window or in the menu bar status menu, then choose Automatically configure system proxy. In the same menu, Clear system proxy removes the proxy settings applied by the client, while Do not change system proxy leaves the current settings as they are. Neither option means traffic is necessarily passing through v2rayN. After selecting an option, return to the main window and confirm that automatic configuration is shown. If the core isn't running yet, the browser may not load pages; check again after connecting in the next step.

Next, find the routing mode. For your first setup, choose Bypass mainland China or an equivalent split-routing rule in your version. Typically, requests matching direct rules connect directly, while other traffic follows proxy rules; the actual behavior depends on the rules loaded by the client. Global mode usually sends more requests through the proxy and can help with a quick comparison, but it doesn't mean every app on your system is being routed through it. Changing routing won't send an app through the client if that app doesn't use the system proxy.

There's no need to enter a remote DNS address or change multiple browser network settings yet. Keep the client's default configuration and limit your first test to one browser. If the browser has a separate proxy extension, pause it or set it to follow system settings. Quit other tools that modify the system proxy so they don't overwrite the same setting. If your work network is managed by your organization, check its existing proxy configuration and follow its requirements.

v2rayNG: Check routing and VPN mode

On Android, v2rayNG usually receives app traffic through a local VPN interface, so you don't need to copy the desktop system proxy menu steps. Open Settings and check the routing options; for your first setup, use the default rules or the split-routing mode you need. If per-app proxying is enabled, make sure the browser you're testing is included. Proxy selected apps and bypass selected apps do the opposite, so read the setting carefully before saving.

When you're done, note the current setup: one server, one routing mode, and one test browser. That makes it easier to tell whether a later problem is a failed connection or an app that isn't using the proxy. TUN can help with apps that don't follow the system proxy, but it isn't required for your first connection. For more on how system proxy settings, TUN, routing rules, and DNS work together, see the cross-platform setup guide. Don't enable everything at once before testing the connection.

Step 3: Connect and check the client status

Return to the v2rayN server list and set your chosen entry as the active server. Depending on your version, you can use Set as active server in the server's right-click menu. Confirm that the active marker appears next to the intended entry. Clicking a row may only select it, not make it active, so check the active status rather than the row highlight. The client will usually apply the configuration and start or reload the proxy core.

Next, check the log panel. Focus on whether the configuration loaded, the core is still running, and a local listener is active; don't look for one exact success message. Log wording varies by core and version, so a different message doesn't necessarily mean something failed. If errors keep appearing, start with the first message related to this launch rather than later repeats. After changing a setting, distinguish new log entries from earlier ones.

If a local port is already in use, check whether another client instance or proxy tool is still running. Quit the conflicting program and apply the current configuration again; don't change a series of ports at random. If you do need to change the listening port, save the setting in the client and reapply the system proxy so it points to the new port. If the log says a configuration field isn't recognized, check whether the client and core support the subscription's settings rather than deleting fields you don't understand.

Once the core is running, confirm that the system proxy is still set to Automatically configure system proxy. On macOS, if you close the main window, also check that the menu bar icon is still running; closing a window doesn't always quit the app. Keep the main window open during your first test so you can monitor the status. You can use the client's connection test as a supplementary check, but it only reflects that test method and doesn't replace the browser test in the next step.

v2rayNG: Start the local VPN connection

Select the target configuration on the v2rayNG main screen and tap Connect. The first time, Android displays a VPN connection request. Confirm that v2rayNG initiated it before approving. A VPN icon in the status bar usually means local traffic interception is active, but it doesn't confirm that the remote server is reachable. If another VPN app is connected, disconnect it before starting v2rayNG to avoid conflicts.

If the connection times out, check the system date and time, confirm that the server is still valid, then look for the specific error in the logs. A mismatch in TLS settings, server name, or transport path can prevent a connection. Check these settings against the configuration source; disabling certificate verification isn't a recommended fix. For help diagnosing complex errors, see Node Timeouts and Connection Failures: Troubleshooting Steps. At this stage, the active configuration should be clear, the core should keep running, and the traffic entry should be enabled.

Step 4: Verify that the proxy is working

Keep the client running. In a browser that follows the system proxy, open a new tab and visit a page you haven't opened before that should use the proxy under your current rules. Don't just refresh a page that's already loaded: cached content may still appear even when the network is down. First confirm that the page loads, then open another page on the same site and check that requests still work. Also test a familiar site that should connect directly to make sure split routing hasn't affected regular browsing.

Then return to the client and check the logs for the requests you just made. If the current log level includes access or routing details, check whether the request reached the client, which rule matched, and which outbound was used. If no request appears, first check whether your log settings include that information; don't assume the proxy failed. A running status in the client or a response time from a connection test alone doesn't prove that your browser used the proxy.

To check whether your network exit has changed, you can compare results on a network information site you trust, but interpret them in light of your routing rules. If the site is routed directly, seeing your local network's exit is expected. First check which outbound the request should use, then review the result. Don't submit subscription links, account credentials, or full configurations to unfamiliar test sites; a regular page request is enough to verify connectivity.

If the client's test works but the browser can't open pages, check whether another tool changed the system proxy or a browser extension overrides system settings. Then check that the local listening port matches the system proxy destination, followed by routing and DNS. Change one thing at a time, open a new page to test, and note the original settings. For a full walkthrough, see the Connected but No Internet: Troubleshooting Checklist. Avoid turning a working configuration into a harder-to-diagnose problem.

When you're done: Restore proxy settings before quitting

When you finish using v2rayN on macOS, choose Clear system proxy in the client, then quit it completely. Open a regular webpage afterward to confirm that your system isn't still sending requests to a local port that's no longer listening. Putting your computer to sleep, closing the window, or force-quitting the process may leave the system proxy settings in place. If no webpages load the next time you connect, check this first instead of reinstalling the client.

In v2rayNG, tap Disconnect, confirm that the VPN icon has disappeared, then check regular network access. If the connection only drops when the screen turns off, first confirm that it works in the foreground, then check Android's battery and background activity restrictions for v2rayNG. Don't treat background restrictions as a subscription problem. Your first setup is complete when the subscription updates, the chosen server runs, webpages load as expected, and your regular connection works again after you quit.

Download the V2Ray client