Режим полного туннеля (TUN)
TUN-режим создаёт виртуальный сетевой интерфейс и направляет весь IP-трафик вашей машины через VPN — не только приложения с поддержкой SOCKS5. Это эквивалент традиционного VPN.
Замечание: TUN-режим требует прав root или администратора для создания сетевого интерфейса.
Включение TUN-режима
Заголовок раздела «Включение TUN-режима»TUN-режим включается через раздел [tun] в client.toml, а не через флаг командной строки:
[tun]enabled = trueПодключитесь обычной командой (флаг --tun не нужен):
sudo rvpn -c ~/.config/rvpn/client.tomlНазначение IP-адреса и шлюза
Заголовок раздела «Назначение IP-адреса и шлюза»IP-адрес клиента и IP шлюза назначаются сервером динамически через сообщение VirtualIp. Их не нужно указывать в конфигурации. Сервер также предоставляет DNS-серверы для использования в туннельном трафике.
Конфигурация
Заголовок раздела «Конфигурация»Раздел [tun] в client.toml поддерживает следующие поля:
| Поле | По умолчанию | Описание |
|---|---|---|
enabled | false | Установите true, чтобы включить TUN-режим. |
interface_name | (авто) | Имя TUN-интерфейса. Опустите, чтобы ОС назначила его — обычно utun0 на macOS и tun0 на Linux/FreeBSD. Задайте конкретное имя, если нужно для правил брандмауэра. |
mtu | 1420 | MTU TUN-интерфейса. Более низкие значения уменьшают фрагментацию на высоколатентных каналах. |
routes | ["0.0.0.0/0"] | Маршруты, направляемые через туннель. По умолчанию направляет весь трафик. Укажите отдельные CIDR для разделённой маршрутизации. |
[tun]enabled = true# interface_name = "vpn0" # optional, OS-assigned by defaultmtu = 1420routes = ["0.0.0.0/0"]Направлять только определённый трафик
Заголовок раздела «Направлять только определённый трафик»Вместо направления всего трафика вы можете направлять только определённые подсети:
[tun]enabled = trueroutes = [ "91.108.0.0/16", # Telegram "149.154.0.0/16", # Telegram "172.217.0.0/16", # Google]Раздельное туннелирование в TUN-режиме
Заголовок раздела «Раздельное туннелирование в TUN-режиме»Раздельное туннелирование работает так же, как в SOCKS5-режиме. С builtin_bypass_countries = ["CN"] китайские IP автоматически исключаются из маршрутов туннеля:
[split_tunnel]enabled = truebuiltin_bypass_countries = ["CN"]Это значит, что внутренний китайский трафик продолжает использовать ваше обычное подключение, а всё остальное идёт через VPN.
Linux: необходимые права
Заголовок раздела «Linux: необходимые права»На Linux бинарнику rvpn нужно создавать TUN-интерфейс и изменять таблицы маршрутизации. Либо запустите под root:
sudo rvpn -c /etc/rvpn/client.tomlЛибо предоставьте бинарнику нужные capabilities:
sudo setcap cap_net_admin+ep /usr/local/bin/rvpnrvpn -c ~/.config/rvpn/client.tomlmacOS: системное расширение
Заголовок раздела «macOS: системное расширение»На macOS создание TUN-интерфейса требует повышенных привилегий. Запустите с sudo или настройте LaunchDaemon:
sudo rvpn -c ~/.config/rvpn/client.tomlПроверка туннеля
Заголовок раздела «Проверка туннеля»Проверьте свой выходной IP:
curl https://api.ipify.orgВозвращённый IP должен быть IP-адресом вашего VPN-сервера.
Проверьте, что интерфейс поднят (точное имя зависит от системы):
# macOSifconfig utun0
# Linux / FreeBSDip -brief addr show # Linuxifconfig tun0 # FreeBSDip route show