说好的不需要客户端证书的 iOS 8 的 IKEv2 On-Demand VPN 教程来了

2014-10-08 18:05:28 +08:00
 wzxjohn
因为打字的电脑木有中文输入法,所以先写的英文然后一句句翻的。大家凑合看吧。

http://maoxian.de/2014/10/setup-ikev2-on-demand-vpn-on-ios-8-and-ikev2-ikev1-cisco-ipsec-vpn-with-strongswan/1220.html

其中顺便说明了通配符证书的情况。如果大家遇到什么问题欢迎在v2留言,博客留言,email提问。
顺便一说如果要转载的话麻烦加个链接~谢谢~
31097 次点击
所在节点    分享创造
154 条回复
emptyzone
2014-10-14 11:40:46 +08:00
@goodbest IPsec 是支持 SplitTunnel 的。IKEv1 也支持。你之前试的不行应该是因为 DNS 的问题,你可以看看这个 http://emptyzone.github.io/tech/2014/10/13/cross-fire-wall-on-ios8/
goodbest
2014-10-14 11:57:48 +08:00
@freeznet
一开始放了2K多个(从其他地方也找了一些),然后发现每次连接vpn都极慢。所以目前在做减法,目前是800多个还行,当然没观察过对电量是否有极大影响。

@emptyzone
我也十分怀疑dns的问题,我等会儿根据你的链接再试试吧。
wzxjohn
2014-10-14 12:00:06 +08:00
@emptyzone Orz完全不提我的文章也是醉了。。。明明如何使用SSL证书是我写的。。。不过这个方法还是挺好的,值得试一下,就是还要自己搭建DNS实在是太麻烦了。。。而且我觉得在墙外服务器搭建DNS还是无法避免墙的DNS投毒干扰啊。。。
emptyzone
2014-10-14 12:09:29 +08:00
@wzxjohn 啊,哈哈,ssl证书是你写的啊,我记混了。。。去改一下。

这个 DNS 配置已经过滤掉了 DNS 投毒常用的 IP,这块是参考 chinadns 做的。
g552656
2014-10-14 13:58:11 +08:00
我问个可能很愚蠢的问题,里面说的证书证书的,是需要单独购买还是直接按照步骤生成就行?
wzxjohn
2014-10-14 15:37:14 +08:00
@g552656 可以直接使用之前购买的SSL证书也可以按照步骤生成,推荐使用购买的SSL证书因为这样的话就不需要再单独下发证书给用户,也更安全。当然自签名的证书也是可以使用的,只不过需要手动将CA发给用户而已。
g552656
2014-10-14 16:10:01 +08:00
@wzxjohn 感谢,但是如果不使用域名直接使用ip的话,是不是就只能自己生成且必须用户手动添加证书,也就没办法自动配置或者无法完全自动配置了?
wzxjohn
2014-10-14 16:50:10 +08:00
@g552656 是的。必须手动生成证书。。。
g552656
2014-10-14 22:52:49 +08:00
@wzxjohn 那如果有多台服务器岂不是要申请好多ssl证书啊。。。通配符型的ssl好贵而且这样感觉设置好麻烦
wzxjohn
2014-10-14 23:19:35 +08:00
@g552656 是的,所以说你们这些多台服务器卖VPN的乖乖去买个通配符吧不贵!
g552656
2014-10-14 23:39:06 +08:00
@wzxjohn 感谢耐心解答:)在研究测试一下看看如果比现用的Cisco IPSec好的话就升级到IEKv2,原来是想解决iOS锁屏断线的问题,不过现在iOS8新系统锁屏也不断线了。
goodbest
2014-10-15 00:54:54 +08:00
@g552656
@wzxjohn
@cattyhouse


经过我的详细研究,在iOS8.02上的ikev1 ikev2对比如下:

一、 如果你就是想永远挂着vpn
那么ikev1基本完美,ikev2会出现 http://v2ex.com/t/138171 所提到的问题


二、 如果你想用来翻墙,而国内网站不走vpn的话
a. ikev2
1) 原生拥有Split tunneling,可以很方便的设置不走vpn的ip段。(这看起来很美)
但是!!!!注意但是!!! 一旦使用了Split tunneling,iOS目前无法使用远程DNS解析。
由于国内DNS污染,这会导致无法访问大部分被墙的网站。因此翻墙也就失效了。

2) 如果不使用Split tunneling,那么只有在.mobileconfig文件上面做手脚。比如设置访问某些国内域名的时候neverconnect vpn即可,但是域名多了以后就会十分影响性能。(参见73L)

b. ikev1
原生不支持Split tunneling,但是strongswan直接带了unity插件。
该插件的“28675”键值(UNITY_SPLITDNS_NAME)解决了上述不能使用远程dns解析的问题,因此不在有这个问题。
但是设置略复杂,请参考
https://wiki.strongswan.org/projects/strongswan/wiki/Attrplugin
http://emptyzone.github.io/tech/2014/10/13/cross-fire-wall-on-ios8/


综合一下:
目前还是用ikev1来得好。
ikev2协议本身很好,但是苹果还没有在iOS8上面把它实现的完美,苹果必须把iOS 8 ~ iOS8.1 这几个大bug修了才能真正用起来。
g552656
2014-10-15 01:33:32 +08:00
@goodbest 非常感谢,如果IKEv2不使用Ondemand或是Always on的话,它和IKEv1比起来在性能和速度或者稳定性等方面会有差别吗?或者说哪个更好?
wzxjohn
2014-10-15 08:16:27 +08:00
@goodbest 赞,爱钻研就是好~
goodbest
2014-10-15 09:41:43 +08:00
@g552656 这个我估计v1和v2的速度差距,远小于你连接国外服务器的延时吧..
gissimo
2014-10-25 19:15:37 +08:00
@riaqn 静态密钥是好,完全不受干扰。但是iOS手机上的OPENVPN无法用啊
gissimo
2014-10-25 19:17:16 +08:00
@goodbest 我用ikev1,也就是cisco ipsec,锁屏下还是会断线啊!!!ios 8.1
gissimo
2014-10-25 19:18:51 +08:00
@GPU Windows能不能在configure中加ikev2啊,直接编辑太头疼
riaqn
2014-10-25 19:19:42 +08:00
@gissimo 恩 我在国内搭了一台ipsec server + openvpn client.这样我在这个城市的时候,都是连的这个ipsec服务器.
gissimo
2014-10-25 19:26:39 +08:00
请教楼主,我是纯ip的DO,专门用来vpn,所以没绑域名。所以制作证书的时候是写入ip的,是不是就不能用你这套方法了啊?似乎必须要写入我自己生成的证书。

第二个问题:Windows下的configurator是不是没有ikev2选项?必须手写?

第三:我看到这里有详细的教程,貌似根据eap-chap认证和certificate认证有两种做法。我现在电脑端用的是eap-chap,连接很完美。ios端用这个conn可以吗https://wiki.strongswan.org/projects/strongswan/wiki/AppleIKEv2Profile

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/137653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX