Ошибка сетевого расширения iOS при создании интерфейса TUN/TAP Ошибка SIOCGIFMTU: устройство не настроено

В настоящее время работаю над сетевым расширением, которое позволяет мне установить соединение с помощью VPN с использованием файла .ovpn с помощью OpenVPNadapter библиотека. Я правильно сохранил свою конфигурацию в настройках системы, и при запуске расширения для выполнения отладки статус моего расширения изменяется с отключенного, некоторое время остается в подключении, а затем отключается. Дальнейшая проверка журналов консоли для устройства и фильтрации по сетевому расширению я получаю три основных сообщения об ошибках.

Сообщение журнала от провайдера: Ошибка TUN: невозможно получить сокет интерфейса tun

Ошибка SIOCGIFMTU: устройство не настроено

NEVirtualInterfaceAdjustReadBufferSize: ошибка interface_get_mtu (6), по умолчанию установлено максимальное значение mtu

Я не знаю, куда теперь идти, так как отлаживаю сетевое расширение с помощью консоли с устройства.


person javierdemartin    schedule 20.08.2019    source источник


Ответы (1)


Хорошо, мне удалось решить это самостоятельно. Я создал сетевое расширение пакетного туннеля, и в моем классе PacketTunnelProvider возникли проблемы. Он не вылетал, поэтому настраивать отладчик в этом классе не стоило. Я запустил свою цель, запустил свое приложение и установил несколько NSLogs в функциях, чтобы я мог видеть в консоли устройства, что происходит. Моя проблема заключалась в том, что я пытался установить нулевое значение в словаре для ключа, тем самым прервав расширение. Это сообщение о сбое можно легко увидеть в консоли.

Проблема была при расширении PacketTunnelProvider с OpenVPNAdapterDelegate в функции настройки туннеля

func openVPNAdapter(_ openVPNAdapter: OpenVPNAdapter, configureTunnelWithNetworkSettings networkSettings: NEPacketTunnelNetworkSettings?, completionHandler: @escaping (OpenVPNAdapterPacketFlow?) -> Void) {
    networkSettings?.dnsSettings?.matchDomains = [""];
}

Раньше у меня был networkSettings.dnsSettings?.matchDomains = [""];, поэтому networkSettings был развернут, а nil приводил к сбою расширения, и туннель не мог подключиться.

person javierdemartin    schedule 20.08.2019