Answer one question at a time

Confirm that the core starts and the local port is listening, then compare an explicit proxy request with the failing application. Locate the failing layer before changing DNS, nodes, ports and TUN together.

1. Preserve a useful failure record

Record the client version, core name and version, OS, capture method, routing profile, time and a reproducibly failing target. Distinguish all-site failure from one application or one domain. Note whether the problem followed an update, network change or TUN activation.

The official FAQ distinguishes client logs from core logs. UI and update problems commonly involve guiLogs; connection and configuration failures also require the core output shown in the main interface.[1] Save relevant evidence before clearing or isolating old logs, then reproduce once so unrelated errors from earlier days do not obscure the result.

2. Check core startup and the local listener

DNS changes rarely repair a core that cannot start. First look for configuration parsing errors, missing binaries, permissions and port conflicts. In Windows PowerShell, inspect the expected listener. Replace the example port 10808 with the value shown in your client.

Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess

No matching object means this check did not find a listener. If a listener exists, verify that its process belongs to the intended core. Do not terminate an unfamiliar process blindly, especially a managed application, VM component or system service.

On macOS or Linux with lsof installed, use the following. Linux users can also inspect listeners with ss -ltnp; process details may require additional permissions.

lsof -nP -iTCP:10808 -sTCP:LISTEN

3. Run a controlled proxy comparison

Disable TUN first so it does not change the meaning of the comparison. Keep the same node and target. On macOS or Linux, replace curl.exe with curl in these Windows examples.

curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com/
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

The first command disables curl's application-level proxy use. It does not bypass a remaining TUN, VPN or network gateway. The second explicitly uses the local SOCKS proxy and delegates target resolution to it.[2] Repeat both against the actual failing hostname; success at the demonstration site does not establish success at your work service.

Remove -I if the target rejects HEAD requests. For a 403 or 429 response, determine whether it came from the destination, proxy or an intermediate gateway. An HTTP error response is different from an inability to establish a connection and should not automatically be labeled a dead node.

4. Investigate observations rather than guesses

Observation Investigate first Next evidence
Connection refused at the local proxy port Core not running, wrong port or different bind address Startup log and listening process
Core startup fails for multiple profiles Configuration compatibility, binary or port conflict First explicit error and core version
Explicit proxy works but the browser fails System proxy, extension or application overrides Whether a fresh request reaches the core
Only one domain fails Its routing, DNS, TLS or server response Domain-specific connection log and response
Failure begins only with TUN Interface, DNS, permissions or route conflict The TUN-off baseline and the changed behavior
Failure follows an update Client/core compatibility or migrated settings Release notes and an isolated old-setup comparison

These are investigation priorities, not one-to-one diagnoses. A timeout can occur at several stages and needs both logs and a controlled comparison.

5. Separate system DNS from proxy-side resolution

On Windows, query A and AAAA records separately to look for differences in the system resolver path:

Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type AAAA

These results describe that system query, not every resolver used by the proxy. A browser may use encrypted DNS, SOCKS may resolve remotely and a core may select a resolver through its own policy. Record which path each test actually exercises.

If failure appears limited to an IPv6-related path, capture the answers, core logs and outbound capabilities before running a focused comparison. Do not permanently disable IPv6 system-wide without evidence. If custom DNS was changed, save it and compare against the current version's defaults. Xray and sing-box DNS settings do not have identical meanings.[3]

6. Treat TLS failures as evidence to investigate

Expired certificates, hostname mismatches, a wrong system clock, missing trust chains and incorrect protocol parameters can all affect a handshake. TLS handshake timeout can also mean the connection did not complete that stage in time; it does not by itself prove a particular cause or a blocked server.

Check the system clock, server name and parameters supplied by the configuration provider. Newer Xray versions changed support for legacy allowInsecure settings, which the project maintainers explain separately.[4] Skipping verification is not a general repair. Do not blindly trust a fingerprint obtained from the failing connection itself. Certificate pinning needs a trusted source for the expected value and a plan for certificate renewal.

7. Submit a reproducible report

Keep the exact error text, but remove subscription tokens, UUIDs, passwords, private keys and addresses that should remain private. A complete configuration can contain credentials and should not be pasted into a public discussion simply because it is convenient for diagnosis.

Client / core versions:
OS and package:
Capture mode and routing profile:
Change immediately before failure:
Target and reproduction steps:
Expected / actual behavior:
Explicit-proxy test result:
TUN-off comparison:
Relevant sanitized log excerpt:

If another node works, is the problem solved? It is a useful control, but still identify whether the difference is the original server, protocol or routing behavior. Recording the difference makes the next incident easier to diagnose.

Should I reset everything? Consider that only after backing up and understanding the cost. Preserve evidence and establish a minimal working configuration first so that the result remains explainable.

YouTube research references

The public titles, descriptions and chapter indexes informed topic selection and UI context. These articles are original guides, not video transcripts. Technical details are checked against the official sources below.

Official sources and scope

Reviewed on 2026-10-26. Menu names and capabilities vary with client, core and operating-system versions. The checklists are suggested procedures, not published performance benchmarks.

  1. Official v2rayN FAQ and log guidance
  2. Official curl proxy and DNS options
  3. Official v2rayN UI and settings guide
  4. v2rayN maintainer guidance on legacy TLS verification settings

Continue the series