At a glance

Choose the v2rayN Desktop installer for your Mac’s processor, then distinguish security blocks from launch failures and proxy connection issues. This guide walks first-time Mac users through app approval, quarantine checks, system proxy settings, and TUN permissions, from least to most disruptive—without recommending that you disable system security checks.

1. Choose a macOS installer: ARM64 or x64

On a Mac, choose the macOS installer for v2rayN Desktop—not the Windows WPF edition. Desktop uses a cross-platform UI framework, but executables for different operating systems are not interchangeable. If the filename says WPF or Windows, go back to the download page and choose the correct build.

Check your Mac’s chip under Apple menu → About This Mac. Choose ARM64 if it shows an Apple M-series chip, or x64 if it shows an Intel processor. Check the release notes for the minimum macOS version; matching the processor alone doesn’t guarantee the app will run on an older system.

Native ARM64 build

Recommended

For Apple silicon Macs, use the ARM64 build that matches the processor to avoid adding a translation layer to your startup troubleshooting. This recommendation applies to Apple silicon, not Intel Macs.

Best for: Macs with Apple silicon, including M1, M2, M3, and M4.

x64 installer

Intel Macs need the x64 build. Apple silicon Macs may require Rosetta 2 to run some x64 apps. Even if the interface opens, that doesn’t guarantee the bundled core and helper programs will work correctly.

Best for: Macs with an Intel processor.

2. Install from the DMG and launch the app

Copy the app to Applications, then launch it from there. Running it directly from the mounted DMG adds variables when troubleshooting updates, file access, and permissions. If reinstalling, make sure you aren’t opening an older copy from Downloads.

  1. Check your chip

    Open Apple menu → About This Mac, note your chip and macOS version, then choose the matching macOS installer from this site’s download center.

  2. Copy the app

    Double-click the DMG and drag v2rayN into Applications as instructed by the installer window. Once the copy finishes, eject the disk image. Don’t leave only an app shortcut on your desktop.

  3. Launch for the first time

    Open v2rayN from Finder → Applications. If macOS blocks it, note the exact alert, then follow the next section to approve it under Privacy & Security. Don’t keep double-clicking and hoping it works.

  4. Import your configuration

    In the client, open Subscription Group → Subscription Group Settings, add the subscription URL from your service provider, and save it. Then use the Subscription Group menu to update. Menu labels may vary by version; follow the labels in your current app.

  5. Test the regular proxy first

    Choose a server and test browser access with the system proxy. Once you’ve confirmed the core starts, you can try TUN. For a first install, avoid changing the core, routing, DNS, and traffic capture settings all at once.

A subscription URL provides server configuration; it isn’t an app installer or a place to enter your account password. If no servers appear after importing it, check the subscription response and update logs. If the app opens but the server list is empty, there’s no need to repeat the macOS security approval steps.

3. “Cannot verify developer”: approve the app in macOS settings

“Cannot verify developer” means macOS couldn’t confirm the app under its current security policy. It doesn’t mean macOS has determined that the file is damaged. First check the download source and file type. If you can’t verify where a copy came from, stop and download it again from a trusted source instead of approving it.

On macOS 13 and later, go to Apple menu → System Settings → Privacy & Security. After trying to open the app, look in the Security section for a record of the block and an “Open Anyway” button. Click it, authenticate if prompted, then choose Open in the confirmation dialog.

Still blocked after right-clicking and choosing Open?

Recent macOS versions may require explicit approval in System Settings → Privacy & Security. Right-clicking and choosing Open isn’t a reliable workaround on every version. Follow the instructions in the security alert you received.

No “Open Anyway” button in Privacy & Security?

Try launching the app again from Applications, then check the page immediately. If no approval option appears, check for an architecture mismatch, an unsupported macOS version, or device management restrictions.

The alert says the app will damage your computer. Can you still approve it?

Don’t treat this as a routine unverified developer warning. Stop, delete the suspicious copy, and verify its source. Don’t use Terminal commands to bypass a revoked signature or malware detection.

Do I need to disable Gatekeeper entirely?

No. Use macOS’s built-in approval process for the individual app. Don’t change global security settings to install one client, and don’t run one-click approval scripts from unknown sources.

On older systems, the equivalent setting is System Preferences → Security & Privacy → General. Managed Macs may prevent users from approving apps. Contact your device administrator rather than trying to remove management restrictions.

4. “App is damaged”: download again, then check quarantine attributes

“The app is damaged and can’t be opened” may indicate an incomplete download, a modified app bundle, a signing issue, or macOS quarantine handling. This alert alone doesn’t prove the file on disk is actually damaged, and it isn’t a reason to remove quarantine attributes immediately.

Only consider checking the app’s extended attributes if you’ve verified its source, downloaded it again, and still encounter a quarantine-related block—and you understand the risks. These commands assume the app is located at /Applications/v2rayN.app. If its name or location differs, use the actual path; you can also drag the app from Finder into Terminal to enter its path.

# Read-only check: see whether the app has a download quarantine attribute
xattr -p com.apple.quarantine "/Applications/v2rayN.app"

# Optional: remove the quarantine attribute only from this verified app bundle
xattr -r -d com.apple.quarantine "/Applications/v2rayN.app"

5. System proxy permissions and local port checks

The system proxy routes requests from apps that respect macOS proxy settings through the local client. It doesn’t configure the remote server’s port. Seeing the v2rayN interface doesn’t mean the proxy core is listening successfully, or that every app will use the system proxy.

10808
Local listening port used in the examples below
443
HTTPS test destination port
2 types
Check HTTP and SOCKS proxy protocols separately

The examples below use 127.0.0.1:10808; not every version uses the same port. First check the actual local listener settings in v2rayN under Settings → Parameter Settings. Some older configurations use separate HTTP and SOCKS ports, so don’t enter a SOCKS-only port in the HTTP proxy field.

Where to checkWhat to doWhat to look for
Client system proxy menu Choose “Set system proxy” and approve any macOS prompt that appears. This updates the system proxy settings; it doesn’t automatically configure domain-based routing.
Current macOS network service Go to System Settings → Network → your current Wi-Fi or Ethernet connection → Details → Proxies. The server address, port, and enabled options must match the client’s listening protocol.
Client logs Check the core’s startup output for listener failures, address conflicts, or permission errors. If you see address already in use, identify the process using the port before changing your subscription.

If the proxy settings still aren’t applied after approval, check whether you’re using Wi-Fi or Ethernet and whether device management policies apply. Don’t enable Full Disk Access for this: it isn’t needed to update network proxy settings.

# Check system proxy status without changing settings
scutil --proxy

# Check whether a process is listening on the example port; change it to match your setup
lsof -nP -iTCP:10808 -sTCP:LISTEN

# Test only if this port supports HTTP proxy connections
curl -I --connect-timeout 10 --proxy http://127.0.0.1:10808 https://example.com/

An HTTP response means this request connected through the proxy at least once. A timeout doesn’t necessarily indicate a permissions issue; the node, DNS, or remote connection could also be failing. If the port supports SOCKS, test it with curl -I --connect-timeout 10 --proxy socks5h://127.0.0.1:10808 https://example.com/. With socks5h, the proxy resolves the destination hostname.

6. TUN, network extensions, and local network permissions

TUN and the system proxy are different ways to route traffic. TUN typically uses a virtual network interface, routes, and DNS settings to capture traffic, and may require elevated permissions. The implementation depends on the client version and selected core, so not every TUN startup involves installing a macOS network extension.

When troubleshooting TUN, quit other tools that are routing traffic, then test with only one traffic capture method enabled. If the system proxy works but TUN doesn’t, check permissions, interfaces, routes, and DNS before reinstalling the client or replacing all your servers. FakeDNS isn’t required for installation and shouldn’t be enabled just to fix an app that won’t open.

7. Verify the installation and restore your settings

After installation, verify the setup with a repeatable test instead of relying only on a “Connected” status. The client interface, proxy core, system traffic routing, and remote server each have a different role, so check them one at a time.

  1. App: Launch it from Applications without a security block. Quit and reopen it to confirm you’re using the same copy.
  2. Configuration: Confirm the subscription populated the server list and the selected VMess or VLESS profile matches your provider’s requirements. Don’t guess or change protocol, transport, or TLS settings.
  3. Core: Check that startup logs show no recurring crashes or listener failures and that the local port belongs to the expected process. Don’t run multiple client instances that compete for the same port.
  4. Traffic routing: Test the system proxy first, then TUN separately. Change one setting at a time and note the results before and after.
  5. Restore settings: Turn off TUN before quitting, then set the system proxy to “Clear system proxy.” After an unexpected exit, check the Proxies page for your current macOS network service for leftover settings.

If no websites load after you quit the client, macOS may still be pointing to a local port that is no longer listening. Clear the leftover proxy settings and try a direct connection; don’t delete the entire network service. Back up any needed configuration before reinstalling. Before sharing logs, redact subscription URLs, server credentials, and account details.

A practical troubleshooting order is: choose the right build, copy it to your Mac, approve the app individually, confirm the core is listening, check the system proxy, and then address TUN permissions. This helps pinpoint launch problems without confusing them with server connection issues.

Download the macOS client for your Mac’s processor

Choose the ARM64 or x64 v2rayN Desktop installer in the download center. For first-time setup, see the guides to importing a subscription and choosing a proxy mode.