찾다

 >  Q&A  >  본문

ios - VPN配置连接失败,求解!

我用的是IKEv2的协议,用的共享密匙的方法,就是最后安装配置文件的之后会打印“error in __connection_block_invoke_2: Connection interrupted”,求大神搭救!

    self.vpnManager = [NEVPNManager sharedManager];
    [_vpnManager loadFromPreferencesWithCompletionHandler:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"Load config failed [%@]", error.localizedDescription);
            return ;
        }
        // config IPSec protocol
        NEVPNProtocolIKEv2 *p = _vpnManager.protocol;
        if (p) {
            
        }else{
            p = [[NEVPNProtocolIKEv2 alloc]init];
        }
        
        p.username = @"qlvpn";
        p.serverAddress = @"服务器地址";
        
        // get password persistent reference from keychain
        
         
        p.passwordReference = [self searchKeychainCopyMatching:@"kd2014@"];
        // If password doesn't exist in keychain, should create it beforehand.
        if (!p.passwordReference) {
            [self createKeychainValue:@"kd2014@" forIdentifier:@"kd2014@"];
             p.passwordReference = [self searchKeychainCopyMatching:@"kd2014@"];
        }
        p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;
        p.sharedSecretReference = [self searchKeychainCopyMatching:@"PSK"];
        if (!p.sharedSecretReference) {
            [self createKeychainValue:@"qlvpn_kd2014@" forIdentifier:@"PSK"];
            p.sharedSecretReference = [self searchKeychainCopyMatching:@"PSK"];
        }
//        p.serverCertificateIssuerCommonName
        //倒入p12证书
//        p.identityData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"client.cert" ofType:@"p12"]];
        //倒入p12密码
//        p.identityDataPassword = @"kd2014@";

        p.localIdentifier = @"qlvpn.client";
        p.remoteIdentifier = @"qlvpn.server";
        
        p.useExtendedAuthentication = YES;
        p.disconnectOnSleep = NO;
//        [_vpnManager setOnDemandEnabled:p];
        //z和
         _vpnManager.localizedDescription = @"IKEv2 Demo";
        _vpnManager.protocol = p;
       
        [_vpnManager saveToPreferencesWithCompletionHandler:^(NSError * _Nullable error) {
            NSLog(@"Save config faild[%@]",error.localizedDescription);
        }];
    }];

下面是存密匙的方法:

static NSString * const serviceName = @"qlvpn.vpn_config";

最后总是返回error in __connection_block_invoke_2: Connection interrupted。。。感觉整个人都不对了。。。

阿神阿神2803일 전3312

모든 응답(1)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-17 17:43:17

    저도 맞닥뜨려 머리가 아팠던 문제를 해결하셨나요? . . 문제가 해결되면 안내도 부탁드립니다. 감사합니다

    회신하다
    0
  • 취소회신하다