Перейти к содержанию

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

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

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


Включение режима TUN

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

[tun]
enabled = true

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

sudo rvpn -c ~/.config/rvpn/client.toml

Назначение IP-адреса и шлюза

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


Конфигурация

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

Поле По умолчанию Описание
enabled false Установите true для включения режима TUN.
interface_name (авто) Имя TUN-интерфейса. На macOS ОС назначает имя вроде utunN. На Linux по умолчанию rvpn0. Необязательно — omit для использования имени, назначенного ОС.
mtu 1420 MTU TUN-интерфейса. Меньшие значения уменьшают фрагментацию на каналах с высокой задержкой.
routes ["0.0.0.0/0"] Маршруты для отправки через туннель. По умолчанию маршрутизируется весь трафик. Укажите отдельные CIDR для раздельной маршрутизации.
[tun]
enabled = true
# interface_name = "rvpn0"  # необязательно, по умолчанию назначается ОС
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
]

Раздельное туннелирование в режиме TUN

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

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

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


Linux: Необходимые разрешения

На 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: Системное расширение

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

sudo rvpn -c ~/.config/rvpn/client.toml

Проверка туннеля

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

curl https://api.ipify.org

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

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

# macOS
ifconfig utun

# Linux
ip addr show rvpn0
ip route show