# Interface

An interface is a logical output for steering app traffic. For example, a `0.0.0.0/0` route to a WireGuard L3VPN sends matching IPv4 traffic through that VPN. This is not a guarantee that all address families or system-excluded traffic are protected; check effective routing.

## L3VPN

Processes IP packets. WireGuard and AmneziaWG paths integrate with VPPRS without first reconstructing every packet into a proxy session. Version 2.0.0 also includes [experimental Tailscale](howtos/tailscale.md).

## L4PROXY

Processes TCP/UDP sessions in the Rust proxy runtime, connected to VPPRS through in-process bridges. Supports Shadowsocks (AEAD and 2022), VMess, AnyTLS, VLESS, Trojan, HTTP, and SOCKS5; transport, encryption, and UDP support depend on the protocol and settings.

## Direct (DIRECT)

Sends traffic through the current Wi-Fi or cellular network after applicable processing, without a remote VPN or proxy server. Available in Simple Mode or Rules Mode.

## REJECT

Rejects TCP connections with TCP RST so apps learn of failure quickly, useful for some ad-blocking rules. For UDP it behaves like DROP.

## DROP

Silently discards packets, also useful for ad blocking. Apps may have to wait for a timeout before recognizing failure.

See the [profile reference](profile.md) for supported protocol fields.
