Install v2rayN on macOS: Fix “Unidentified Developer” Warnings and Grant Network Permissions

Learn how to install v2rayN on macOS, bypass Gatekeeper’s developer warning, configure the system proxy, and approve network extensions when needed.

At a glance

Choose the installer for your Mac’s processor, move the app to Applications, then address any Gatekeeper warning. For your first connection, verify the setup with the system proxy. Check TUN permissions only if you need to route traffic from apps that ignore the system proxy. App launch approval, system proxy changes, and network extension approval are separate steps; you may not encounter all of them.

Choose an Installer and Install the App

Open the Apple menu in the top-left corner and select “About This Mac.” If you see “Chip” followed by an Apple chip model, choose macOS ARM64. If you see “Processor” and an Intel model, choose macOS x64. Don’t guess the architecture from the installer’s file size, and don’t try to launch a Windows installer on macOS.

Before installing, note your macOS version in “About This Mac” and compare it with the installer’s minimum system requirements. An unsupported macOS version and a Gatekeeper block are different issues: “This application can’t be opened on this Mac” doesn’t necessarily mean you need to bypass a security restriction. Check the architecture and system requirements first, then read the full alert.

  1. Check Your Mac’s Architecture

    Open the Apple menu → “About This Mac” and choose ARM64 or x64 based on the chip information. Get the installer from the site’s download page.

  2. Open the Disk Image

    Double-click the downloaded DMG file, then locate the v2rayN app in the disk window. If the disk image won’t mount, download it again rather than changing your security settings.

  3. Move It to Applications

    Drag v2rayN into Finder’s “Applications” folder. Wait for the copy to finish, eject the disk image, then launch the app from “Applications.”

  4. Keep Installation Details

    Note the app version from its “About” page, your macOS version, and the installer architecture. Including these details in a bug report makes troubleshooting much easier than simply saying the app won’t open.

Don’t run the app indefinitely from a disk image or your Downloads folder. Keeping it in a consistent location helps with updates, permission checks, and login item management. Quit the old process before updating. If the old version has TUN enabled, turn it off and clear the system proxy before replacing the app.

How to Allow an “Unidentified Developer” App

Gatekeeper checks an app when you try to launch it. If the alert says the developer can’t be verified or the app can’t be checked for malicious software, the core usually hasn’t started listening on a port yet. Changing servers, subscriptions, or DNS won’t resolve a launch block.

  1. Try Launching the App

    In “Applications,” double-click v2rayN, read the warning, and close it. Continue only if you’ve confirmed the app’s source.

  2. Open Security Settings

    Go to Apple menu → “System Settings” → “Privacy & Security,” then scroll down to “Security” and find the record for the app that was just blocked.

  3. Allow This App to Open

    Confirm the app name in the record, click “Open Anyway,” authenticate as an administrator if prompted, then click “Open” in the confirmation dialog.

  4. Try Again

    Return to “Applications” and launch the app again. If there’s no matching record, trigger the warning once more and check again. On a managed device, contact your administrator.

Finder’s right-click → “Open” behavior varies across macOS versions, so it isn’t a reliable fix. Check for an explicit approval under “Privacy & Security” first. On a managed device, policy may disable “Open Anyway”; repeatedly entering an administrator password won’t override it.

System Proxy or TUN: Choose How to Route Traffic

Opening v2rayN doesn’t mean all your apps’ traffic is being proxied. The system proxy sets proxy details for the current network service, but whether an app uses them depends on the app. TUN routes traffic through a virtual network interface and also involves routing, DNS, and permissions. When troubleshooting for the first time, test these methods separately.

Verify the System Proxy First

Recommended

In the v2rayN main window or menu bar icon menu, find “System Proxy” and select “Set system proxy automatically.” This is a client menu action; it doesn’t mean you need to enter a PAC URL.

Best for: first-time setup, browser access, and separating connection issues from permission issues

Enable TUN Only If Needed

Once the system proxy is working, enable “Tun Mode” or “TUN Mode.” Depending on the version, this may require administrator authentication, a helper component, or another system approval. Don’t assume it will always install a network extension.

Best for: apps that ignore the system proxy and traffic that needs to be routed through a single tunnel

If the client asks to change network settings, approve only when you’ve just performed the corresponding action and the authentication dialog clearly identifies the app or a component you recognize. Configuring the system proxy doesn’t install a network extension, and connecting to the internet doesn’t require “Full Disk Access” or “Accessibility” permissions.

Identify Network Extensions and Other Network Permissions

“Network extension,” “VPN configuration,” “Local Network,” and administrator authentication are different permission types. Check the wording of the system alert, then open the relevant settings. Different v2rayN releases and run modes may use different traffic-routing methods; if you’re using only the system proxy, it’s normal not to see a network extension prompt.

Network Extension Prompt

When it appears
The installed component actually uses a network extension
Settings in recent macOS versions
“General” → “Login Items & Extensions” → “Network Extensions”
Settings in other macOS versions
Check for a blocked item under “Privacy & Security”
What to check
The component name and developer shown in the prompt

Approve only a component that matches this installation. Follow the system prompt and the instructions for your macOS version to find the right setting.

Local Network Prompt

When it appears
The app requests permission to discover or access devices on your local network
Where to find the setting
“Privacy & Security” → “Local Network”
What to check
The v2rayN toggle in the app list
How to decide
Whether local network access is actually needed

Local Network permission doesn’t grant internet access, and it doesn’t replace system proxy or TUN settings.

If macOS asks to “Add VPN Configurations,” check the app name before deciding whether to allow it. You can search for “VPN” in System Settings afterward to review the entry. Don’t weaken app launch security to troubleshoot a regular proxy connection. If your connection drops after enabling TUN, turn TUN off, clear the system proxy, and confirm your regular network works again. Then check the client logs for permission, routing, or DNS errors.

Check Your Connection After the First Launch

Once permissions are sorted out, import a configuration you know works. In v2rayN, open “Subscription Groups” → “Subscription Group Settings,” add a name and subscription URL, and save. Then open the “Subscription Groups” menu and update the group. Menu labels may vary slightly by version; the important steps are to save the group first, then fetch its contents. Saving a URL alone doesn’t confirm that any servers were imported.

VMess and VLESS are protocol names used in configurations, not macOS permission types. A subscription URL fetches a list of configurations; an individual share link describes one configuration. Use the appropriate import option for each. Preserve the TLS, SNI, transport, and path values provided by the subscription rather than changing them to troubleshoot installation.

  1. Check the list first: After updating, you should see configuration entries. If the list is empty, check the subscription response, group filters, and update logs. Don’t start by approving a network extension.
  2. Then check the core: Select a configuration and set it as the active server. Check the logs for core startup failures, missing files, or a port conflict. A running status in the interface isn’t a substitute for checking the logs.
  3. Check the listening port: Go to “Settings” → “Parameter Settings” and check the local listening port options, then compare them with the system network proxy page. The 10808 in the command below is only an example; replace it with the actual port before running the command.
  4. Test access: First, use the system proxy to visit an HTTPS site you normally use, then check for a matching connection log. A successful latency test doesn’t mean every app is using the proxy.
lsof -nP -iTCP:10808 -sTCP:LISTEN
scutil --proxy

The first command checks whether a process is listening on the TCP port. The process name and PID in the output can help identify it. If there’s no output, verify the port number first, then check whether the core is running. The second command reads the current system proxy settings. Look for fields that are actually present, such as HTTPEnable, HTTPSProxy, and HTTPSPort. Don’t rely on a setting being 1 alone; make sure the address and port are both correct.

Common Installation and Permission Questions

I clicked “Open Anyway.” Why won’t the app launch?

Make sure you’re launching the same copy from “Applications,” not another copy in Downloads or on the mounted disk image. Then check the chip architecture, system requirements, and the full text of the new alert. If the error now points to a core startup failure, check the client logs instead of repeating the security approval steps.

Websites open in my browser, but other apps can’t connect. Why?

First check whether the app has its own proxy settings and whether it needs to restart to pick up the system proxy. The system proxy doesn’t force all connections through it. If you need to route other traffic, test TUN separately and check whether its routing rules cover that traffic.

There’s no network extension toggle. Did I install the wrong version?

Not necessarily. Check whether your version and run mode actually use a network extension. System proxy mode usually doesn’t need one, and TUN may use a different implementation. Follow the system prompt and logs; don’t install an extension from an untrusted source to add a permission you assume is missing.

My network stopped working after I quit v2rayN. What should I do?

Go to “System Settings” → “Network” → your current connection → “Details” → “Proxies” and check for a proxy still pointing to your Mac. Clear the entries set during this session and try again. If the issue continues, check for a leftover VPN connection. Don’t delete network settings managed by your organization.

What should I do if a permission prompt appears again after updating the app?

First make sure the old copy is closed and the new app is still in “Applications.” Check the identity of the app or component named in the prompt, then approve it using the appropriate settings. Back up your subscriptions and custom routing rules; deleting all your configuration shouldn’t be the first step when troubleshooting a permission issue.

Download the ClientChoose the installer for your platform