ios - 如何在 ipv6 环境中使用 NEPacketTunnelProvider
问题描述
我的应用程序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)
解决方案
newSettings.ipv4Settings = NEIPv4Settings(addresses: [ip], subnetMasks: [subnet])
只有一个ipv4Settings
用于 newSettings
您应该添加这些行:
let ipv6Settings = NEIPv6Settings.init(addresses: ["fe80:1ca8:5ee3:4d6d:aaf5"], networkPrefixLengths: [64])
newSettings.ipv6Settings = ipv6Settings
但是我的demo的UDPSessionsetReadHandler
没有涉及
推荐阅读
- python - 如何根据数据框中的列条件应用函数
- javascript - 我需要将表格中输入的数据捕获为角度的 JSON
- javascript - 无法从 React-Native-Firebase(v6) Firestore 获取数据:未定义不是函数(在 '...this._firestore.native.collectionGet...' 附近)
- javascript - 角度库导入 *
- python - 从 requirements.txt 中安装车轮
- arrays - NullReferenceException vb 数组
- git - 数据工厂发布管道问题
- android - 从 imageView 分享 GIF 到 Whatsapp
- aws-cdk - 使用 CDK 创建 AWS EC2 实例后如何获取公共 DNS?
- python - 在矩阵的对角线上添加所有单词的迭代