Перейти к содержимому

Режим полного туннеля (TUN)

TUN-режим создаёт виртуальный сетевой интерфейс и направляет весь IP-трафик вашей машины через VPN — не только приложения с поддержкой SOCKS5. Это эквивалент традиционного VPN.

Замечание: TUN-режим требует прав root или администратора для создания сетевого интерфейса.


TUN-режим включается через раздел [tun] в client.toml, а не через флаг командной строки:

[tun]
enabled = true

Подключитесь обычной командой (флаг --tun не нужен):

Окно терминала
sudo rvpn -c ~/.config/rvpn/client.toml

IP-адрес клиента и IP шлюза назначаются сервером динамически через сообщение VirtualIp. Их не нужно указывать в конфигурации. Сервер также предоставляет DNS-серверы для использования в туннельном трафике.


Раздел [tun] в client.toml поддерживает следующие поля:

ПолеПо умолчаниюОписание
enabledfalseУстановите true, чтобы включить TUN-режим.
interface_name(авто)Имя TUN-интерфейса. Опустите, чтобы ОС назначила его — обычно utun0 на macOS и tun0 на Linux/FreeBSD. Задайте конкретное имя, если нужно для правил брандмауэра.
mtu1420MTU TUN-интерфейса. Более низкие значения уменьшают фрагментацию на высоколатентных каналах.
routes["0.0.0.0/0"]Маршруты, направляемые через туннель. По умолчанию направляет весь трафик. Укажите отдельные CIDR для разделённой маршрутизации.
[tun]
enabled = true
# interface_name = "vpn0" # optional, OS-assigned by default
mtu = 1420
routes = ["0.0.0.0/0"]

Вместо направления всего трафика вы можете направлять только определённые подсети:

[tun]
enabled = true
routes = [
"91.108.0.0/16", # Telegram
"149.154.0.0/16", # Telegram
"172.217.0.0/16", # Google
]

Раздельное туннелирование работает так же, как в SOCKS5-режиме. С builtin_bypass_countries = ["CN"] китайские IP автоматически исключаются из маршрутов туннеля:

[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"]

Это значит, что внутренний китайский трафик продолжает использовать ваше обычное подключение, а всё остальное идёт через VPN.


На Linux бинарнику rvpn нужно создавать TUN-интерфейс и изменять таблицы маршрутизации. Либо запустите под root:

Окно терминала
sudo rvpn -c /etc/rvpn/client.toml

Либо предоставьте бинарнику нужные capabilities:

Окно терминала
sudo setcap cap_net_admin+ep /usr/local/bin/rvpn
rvpn -c ~/.config/rvpn/client.toml

На macOS создание TUN-интерфейса требует повышенных привилегий. Запустите с sudo или настройте LaunchDaemon:

Окно терминала
sudo rvpn -c ~/.config/rvpn/client.toml

Проверьте свой выходной IP:

Окно терминала
curl https://api.ipify.org

Возвращённый IP должен быть IP-адресом вашего VPN-сервера.

Проверьте, что интерфейс поднят (точное имя зависит от системы):

Окно терминала
# macOS
ifconfig utun0
# Linux / FreeBSD
ip -brief addr show # Linux
ifconfig tun0 # FreeBSD
ip route show