我的应用程序使用IPv4
实现了NEPacketTunnelProvider
隧道。隧道系统可以完美运行,但在IPv6中无法正常运行。
我正在尝试使VPN
应用适应ipv6
环境,但是我不知道如何开始,请告诉我怎么做。
这是我的代码:
let newSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1")
let ip = "32.432.53.1"
let subnet = "10.3.21.1"
newSettings.ipv4Settings = NEIPv4Settings(addresses: [ip], subnetMasks: [subnet])
newSettings.mtu = 1432
newSettings.ipv4Settings?.includedRoutes = [NEIPv4Route.default()]
newSettings.ipv6Settings?.includedRoutes = [NEIPv6Route.default()]
newSettings.dnsSettings = NEDNSSettings(servers: ["8.8.8.8"])
let endPoint = NWHostEndpoint(hostname: "12.432.55.22", port: 9090)
var session = self.createUDPSession(to: endPoint, from: nil)
self.session?.writeDatagram(newData, completionHandler: { (error) in
})
self.session?.setReadHandler({ (newPackets: [Data]?, error: Error?) -> Void in
}, maxDatagrams: NSIntegerMax)
答案 0 :(得分:0)
newSettings.ipv4Settings = NEIPv4Settings(addresses: [ip], subnetMasks: [subnet])
newSettings只有ipv4Settings
您应该添加以下行:
let ipv6Settings = NEIPv6Settings.init(addresses: ["fe80:1ca8:5ee3:4d6d:aaf5"], networkPrefixLengths: [64])
newSettings.ipv6Settings = ipv6Settings
但是我的演示的UDPSession setReadHandler
没有涉及