Whether you use v2rayN or something else, whatever you type into the interface ends up being translated into a config.json that is handed to the core. Knowing the skeleton of that file saves a lot of blind guessing when things break.

inbounds: where traffic enters

The local listeners. On the client side this is usually one socks and one http entry — the 10808 / 10809 pair. On a server it is the vless or vmess listener instead, with its port and TLS settings attached.

SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodes

outbounds: where traffic leaves

The first element of the array is the default outbound: anything not caught by a routing rule leaves through it. Besides the one pointing at your node, configs normally carry a freedom outbound (direct) and a blackhole outbound (drop), each with a tag that routing rules can reference.

routing: who goes where

Rules are evaluated top to bottom and the first match wins. That makes ordering a more common source of mistakes than the rules themselves — put "ad domains to blackhole" after "everything to proxy" and the ad rule can never fire. The usual match fields are domain, ip, port and protocol; outboundTag decides the destination.

dns and log

dns controls which side resolves hostnames. Get it wrong and you end up connected to a node with no pages loading — see DNS leaks. In log, loglevel accepts debug, info, warning, error and none. Switch to debug while you investigate and switch back afterwards, otherwise the log file grows quickly.

v2rayN lets you import a full json through its custom configuration option. Once you do, the routing and rule settings in the interface no longer apply to that entry — the json is the single source of truth.