【问题标题】:iOS Network Extension error creating TUN/TAP interface SIOCGIFMTU failed: device not configurediOS 网络扩展错误创建 TUN/TAP 接口 SIOCGIFMTU 失败:设备未配置
【发布时间】:2019-08-20 07:42:02
【问题描述】:

目前正在开发一个网络扩展,它允许我使用.ovpn 文件和OpenVPNAdapter 库建立使用VPN 的连接。我已将我的配置正确保存到系统设置中,并且在运行扩展程序以执行调试时,我的扩展程序状态从断开连接更改,保持连接一段时间然后断开连接。通过网络扩展进一步检查设备和过滤的控制台日志,我收到三个主要错误消息。

来自提供者的日志消息:TUN 错误:无法获取 tun 接口套接字

SIOCGIFMTU 失败:设备未配置

NEVirtualInterfaceAdjustReadBufferSize:interface_get_mtu 失败 (6),默认为 max mtu

我现在不知道去哪里,因为我正在使用设备上的控制台调试网络扩展。

【问题讨论】:

    标签: swift vpn networkextension


    【解决方案1】:

    好的,我自己设法解决了这个问题。我创建了一个 Packet Tunnel 网络扩展,在我的 PacketTunnelProvider 类中出现了问题。它没有崩溃,因此在该类中设置调试器是不值得的。我运行了我的目标并启动了我的应用程序并在函数中设置了几个 NSLog,这样我就可以在设备的控制台中看到正在发生的事情。我的问题是我试图在字典中为一个键设置一个 nil 值,从而终止扩展。可以在控制台中轻松看到该崩溃消息。

    问题是在函数中使用OpenVPNAdapterDelegate 扩展PacketTunnelProvider 以配置隧道时

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

    以前我有networkSettings.dnsSettings?.matchDomains = [""];,所以networkSettings 被解包,它是nil,使它崩溃扩展并且隧道无法连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2018-12-09
      • 2016-09-19
      • 2014-01-26
      • 2016-09-19
      相关资源
      最近更新 更多