说好的不需要客户端证书的 iOS 8 的 IKEv2 On-Demand VPN 教程来了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wzxjohn
V2EX    分享创造

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

  •  5
     
  •   wzxjohn 2014-10-08 18:05:28 +08:00 32027 次点击
    这是一个创建于 4023 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为打字的电脑木有中文输入法,所以先写的英文然后一句句翻的。大家凑合看吧。

    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提问。
    顺便一说如果要转载的话麻烦加个链接~谢谢~
    第 1 条附言    2014-10-08 21:04:39 +08:00
    所谓的On Demand就是说在检测到网络变化后,如果你访问了特定的URL系统就会自动连接VPN,基本等同于Always On。
    第 2 条附言    2014-10-08 22:57:02 +08:00
    10/8/2014 22:40 更新了一下Gist,加入了少许注释,帮助大家理解这个配置文件。
    更新了一下文章,添加了对证书的一些解释和注意事项。
    更新一个测试用配置文件,仅限V2EXer使用,服务器在国内,所以没有翻越功能,只是用来测试体验。
    http://maoxian.de/v2ex.mobileconfig
    第 3 条附言    2014-10-09 15:22:31 +08:00
    9/10/2014 15:20 更新了一下文章说了一下关于纯IP的服务器的可能处理方法。因为没有试过所以不能给出完整的解决方案。毕竟这年头没有域名的人太少了,个人感觉没必要为了这个去折腾一些。。。
    更新了一下给mobileconfig文件签名的方法。同时放出一个已签名的配置文件给大家试试:
    http://maoxian.de/v2ex_signed.mobileconfig
    第 4 条附言    2014-10-10 13:59:23 +08:00
    10/10/2014 14:00
    感谢@cattyhouse的测试。文章更新了纯IP的服务端的配置注意事项,现在已经可以搭建没有域名的服务器了。同时感谢他对On Demand配置的修改,之前确实是我偷懒了懒得测试,其实只需要把Action设置为Connect即可无条件连接VPN,效果等同于Always On。Gist已经更新,同时两个测试配置文件已经更新,大家可以通过
    http://maoxian.de/v2ex.mobileconfig
    http://maoxian.de/v2ex_signed.mobileconfig
    来感受一下。
    第 5 条附言    2014-10-12 13:09:31 +08:00
    12/10/2014 13:10 更新文章增加VPN服务的调试方法,教你打开详细的日志。如果遇到无法解决的问题可以尝试打开Level 2的日志,然后一般就能看出问题出在哪了。
    第 6 条附言    2014-10-12 16:19:11 +08:00
    12/10/2014 16:20
    感谢@GPU 的测试,增加了从源码编译时的主意事项,增加了在Debian系统上安装的时候的注意事项。注意在Debian系统上安装的时候请不要使用ufw而是用自带的iptables。
    154 条回复    2015-12-15 13:18:00 +08:00
    1  2  
    Yien
        1
    Yien  
       2014-10-08 18:45:15 +08:00
    感谢分享!
    xream
        2
    xream  
       2014-10-08 19:07:32 +08:00
    IKEv2 可以实现国内国外路由区分 大大研究下造福群众吧?

    https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#Split-Tunneling-with-IKEv2
    wzxjohn
        3
    wzxjohn  
    OP
       2014-10-08 19:11:57 +08:00 via iPhone
    @xream 想法不错但是总觉得把配置文件弄成几百行太不划算了。。。
    xream
        4
    xream  
       2014-10-08 19:28:29 +08:00
    @wzxjohn 用全局的vpn太蛋疼了...我现在用分流的 Cisco AnyConnect
    goodbest
        5
    goodbest  
       2014-10-08 20:33:21 +08:00
    rightid=*@every.string.you.want

    不太理解这句话的意思
    GPU
        6
    GPU  
       2014-10-08 20:35:28 +08:00
    等你很久了。 。 感谢。
    GPU
        7
    GPU  
       2014-10-08 20:44:06 +08:00
    @wzxjohn ufw reload 没有这个命令 。
    1nt
        8
    1nt  
       2014-10-08 20:48:26 +08:00
    感谢教程。
    iKEv2 速度虽然快,可是不能 always on,
    所以还是继续用超级慢的 anyconnect...
    GPU
        9
    GPU  
       2014-10-08 20:48:57 +08:00
    @wzxjohn 上面的设置搞点了 ,这个服务器域名 应该去哪里设置的?
    wzxjohn
        10
    wzxjohn  
    OP
       2014-10-08 20:51:52 +08:00 via iPhone
    @goodbest 意思是后面写啥都可以,但是要跟配置文件中写的一样。
    wzxjohn
        11
    wzxjohn  
    OP
       2014-10-08 20:52:11 +08:00 via iPhone
    @GPU 你是ubuntu么?
    wzxjohn
        12
    wzxjohn  
    OP
       2014-10-08 20:52:58 +08:00 via iPhone
    @1nt 你仔细看看标题。。。这里的On Demand就是类似于Always On,不然也不用这么麻烦了。。。
    wzxjohn
        13
    wzxjohn  
    OP
       2014-10-08 20:53:49 +08:00 via iPhone
    @GPU 在IPSec.conf文件里。那个rightid
    yxjxx
        14
    yxjxx  
       2014-10-08 21:02:20 +08:00
    在windows phone上一直用IKEv2来科学上网呢
    wzxjohn
        15
    wzxjohn  
    OP
       2014-10-08 21:05:36 +08:00 via iPhone
    @yxjxx 是的,而且我发现用Linux搭建IKEv2比按照微软的教程用Windiws弄方便多了。。。
    GPU
        16
    GPU  
       2014-10-08 21:06:21 +08:00
    @wzxjohn 我是debian ufw 没有找到的问题我解决了。apt-get 直接安装了。

    然后关于证书问题 ,貌似有点说得不明白 。

    vpnHostKey.pem 与 /etc/ipsec.d/private/server.pem 这两个问题是不是一样的 ?

    vpnHostKey.pem 这个问题是应该放在什么地方呢?


    还有就是 /etc/ipsec.secrets 文件里

    ``` : PSK yourpskhere ```

    这个是什么东西?
    GPU
        18
    GPU  
       2014-10-08 21:10:56 +08:00
    @wzxjohn 上面的 "问题" --->>> "文件"
    1nt
        19
    1nt  
       2014-10-08 21:13:23 +08:00
    @wzxjohn

    我知道啊,因为我有买 12vpn 家的服务,
    必须得访问配置文件里面特定的 url 才能触发 VPN。
    而因为网络环境问题,我需要无时无刻保持 VPN 加密发送所有流量,
    而不是单纯的为了翻墙,所以 On Demand 比较麻烦,
    我想等有空了重新刷成被监督的设备,这样应该就可以真正的 Always On 了,
    AnyConnect 毕竟还是太慢。
    wzxjohn
        20
    wzxjohn  
    OP
       2014-10-08 21:38:43 +08:00 via iPhone
    @1nt 你可以设置一个你最常访问的URL这样效果就跟Always区别不大了啊。。。如果能刷监督设备的话那就按照我的方法直接Always的IKEv2即可~
    @GPU 不是一样的。我记得我说了要放哪啊。。。
    server.pem是证书,也就是公钥,一般在设置域名SAL的时候我们叫SSL.crt
    vpnHostKey.pem是证书私钥,一般我们叫它SSL.key
    私钥放在/etc/ipsec.d/private/中。
    PSK是给CiscoIPSec用的,可以不设置,如果你不准备用的话。如果要用直接设置成你想要的值即可。我们一般叫它预共享密钥。
    wzxjohn
        21
    wzxjohn  
    OP
       2014-10-08 21:39:59 +08:00 via iPhone
    @GPU 还有,server.pem是放在 /etc/ipsec.s/certs/中,不是private中。
    xream
        22
    xream  
       2014-10-08 21:42:53 +08:00
    @1nt

    <key>IPSec</key>
    <dict>
    ...
    </dict>
    里的OnDemand那一段改成
    <key>OnDemandEnabled</key>
    <integer>1</integer>
    <key>OnDemandRules</key>
    <array>
    <dict>
    <key>Action</key>
    <string>Connect</string>
    </dict>
    </array>
    就是 always on 了
    wzxjohn
        23
    wzxjohn  
    OP
       2014-10-08 21:45:42 +08:00 via iPhone
    @xream 不要异想天开,这个选项的作用只是安装完配置文件之后On Demand选项是否默认开启。你可以实测一下也可以看看苹果的文档。
    xream
        24
    xream  
       2014-10-08 21:47:13 +08:00
    @wzxjohn 额 我想当然了...我真没试过 IKEv2... 但是 IPsec(Cisco) VPN 可以用...
    riaqn
        25
    riaqn  
       2014-10-08 22:04:23 +08:00
    能不能问下,strongswan(ipsec)和openvpn哪个好一点呢?小弟最近在配置openvpn,用途主要就是翻墙。希望能保证安全的情况下快一点。另外希望一台已越狱ios 7也能分流翻墙(只对于国外流量走vpn)。
    谢谢啦~
    wzxjohn
        26
    wzxjohn  
    OP
       2014-10-08 22:12:10 +08:00
    @riaqn OpenVPN现在被干扰的很严重,所以强烈建议不要使用OpenVPN。。。
    riaqn
        27
    riaqn  
       2014-10-08 22:18:59 +08:00
    @wzxjohn 额 换端口,用udp也无济于事吗……
    那我用strongswan好了……就是听说速度上不如openvpn快……
    wzxjohn
        28
    wzxjohn  
    OP
       2014-10-08 22:35:20 +08:00
    @riaqn strongswan的速度我觉得已经差不多了。。。OpenVPN我记忆中是协议问题导致流量容易被识别出来,然后直接被干掉。
    riaqn
        29
    riaqn  
       2014-10-08 23:09:48 +08:00
    @wzxjohn 我刚上网查了一下,好像用静态密钥,可能可以防止被识别。
    http://www.chinagfw.org/2012/12/openvpngfw.html
    这样,从握手开始就加密了,没有特征。
    wzxjohn
        30
    wzxjohn  
    OP
       2014-10-08 23:12:02 +08:00 via iPhone
    @riaqn 看来有人研究出了对策,你可以试试~自从这玩意被强烈干扰之后我就再也没用过了。。。
    riaqn
        31
    riaqn  
       2014-10-08 23:25:20 +08:00
    @wzxjohn ios 上貌似还是ipsec的方案更加成熟一点,我还是转strongswan吧~
    谢谢帮助 :-)
    GPU
        32
    GPU  
       2014-10-09 01:31:28 +08:00 via iPhone
    @wzxjohn 要更新系统才能用最新版的apple configurator ,直接编辑完全不懂
    wzxjohn
        33
    wzxjohn  
    OP
       2014-10-09 08:11:21 +08:00
    @GPU 。。。原来你还没在用Yosemite啊。。。快装吧。。。别犹豫了。。。
    jiangeiie
        34
    jiangeiie  
       2014-10-09 08:57:26 +08:00
    感谢强尼

    原先卡在wildcard证书这块,现在完美结局了,好顶赞
    goodbest
        35
    goodbest  
       2014-10-09 10:11:06 +08:00
    我想请问一下:
    如果使用自签名的证书(而不是去证书服务商那里申请),需要特殊的设置么?

    我已经在配置文件里加入了自签名ca文件,但是总是auth fail
    goodbest
        36
    goodbest  
       2014-10-09 10:15:09 +08:00
    补充一下35L的问题:

    自签的ca证书的CN、serverCert和serverKey的CN、leftid的都已经设置的完全一致了。

    而且这套证书在实现apache的https访问已经完全没问题(当然事先本机需手动导入ca根证书)
    wzxjohn
        37
    wzxjohn  
    OP
       2014-10-09 10:23:42 +08:00
    @goodbest 自签名证书需要在苹果的mobileconfig文件中添加证书,必须使用Apple Configurator添加证书。
    顺便我写这个教程的目的就是尽量简化设置,所以强烈不建议使用自签名证书。同时自签名证书还有可能带来很严重的安全隐患,最好还是用已有的SSL证书吧。
    jiangeiie
        38
    jiangeiie  
       2014-10-09 10:28:37 +08:00
    补充一个
    使用startssl的童鞋, 需要把startssl ca和class1或者class2的pem拷贝到/etc/ipsec.d/cacerts/

    如果出现证书错误,请把
    /etc/ipsec.d/cacerts/
    /etc/ipsec.d/private/
    /etc/ipsec.d/certs/
    下面无用的证书都删掉,不然容易有各种各样的问题
    goodbest
        39
    goodbest  
       2014-10-09 10:30:41 +08:00
    @wzxjohn 我已经添加了证书,一直都是验证失败,不知道错在了哪一步。
    主要是申请ssl证书真麻烦,之前去startssl申请被reject了一次...
    wzxjohn
        40
    wzxjohn  
    OP
       2014-10-09 10:36:59 +08:00
    @jiangeiie 这个我还真没试过,一会更新一下文章说明一下。
    @goodbest 你的Apple设备上添加了证书吗?那应该不会错误了才对。。。去搞个GitHub送的免费证书吧。
    fuck010bj
        41
    fuck010bj  
       2014-10-09 13:41:41 +08:00
    server name in cert "server.pem" 这里用的是服务器的IP,不是域名,咋办啊
    wzxjohn
        42
    wzxjohn  
    OP
       2014-10-09 13:51:29 +08:00 via iPhone
    @fuck010bj 如果我没记错只有IP的必须签发自签名证书,然后把CA加到设备描述文件中。
    fuck010bj
        43
    fuck010bj  
       2014-10-09 13:56:06 +08:00
    @wzxjohn 这样的话你的那个配置文件还适用不?该修改哪些?
    wzxjohn
        44
    wzxjohn  
    OP
       2014-10-09 14:00:12 +08:00 via iPhone
    @fuck010bj 适用,不过我没有实际测试过。应该是要改或者删除leftid和在下发给设备的配置文件中添加CA证书。具体的测试一下就知道了。
    fuck010bj
        45
    fuck010bj  
       2014-10-09 14:15:07 +08:00
    @wzxjohn 配置文件中具体怎么添加CA证书呢,手机已安装了server.pem和clientCert.pem
    wzxjohn
        46
    wzxjohn  
    OP
       2014-10-09 14:20:17 +08:00
    @fuck010bj 手机似乎是不需要安装server.pem的。用Apple Configurator来添加证书啊~
    fuck010bj
        47
    fuck010bj  
       2014-10-09 14:32:38 +08:00
    @wzxjohn 说错了,安装cacert.pem和clientCert.pem是之前cisco ipsec用的;添加证书直接是打开邮件附件的,没用Apple Configurator啊
    wzxjohn
        48
    wzxjohn  
    OP
       2014-10-09 15:19:33 +08:00
    @fuck010bj 那应该也是可以的。提示什么错误?
    goodbest
        49
    goodbest  
       2014-10-09 15:39:25 +08:00
    给lz反馈一下:
    经过我测试,可能openvz的vps不支持。(其实l2tp在openvz也类似)

    同样的操作换了一台DO的机器就OK了...
    wzxjohn
        50
    wzxjohn  
    OP
       2014-10-09 15:42:08 +08:00 via iPhone
    @goodbest OpenVZ基本啥都不支持。。。我加个注明不要用这类VPS好了。
    fuck010bj
        51
    fuck010bj  
       2014-10-09 16:57:34 +08:00
    @wzxjohn 连不上,到这就不行了
    [IKE] received proposals inacceptable
    Oct 9 16:51:05 localhost charon: 01[ENC] generating IKE_SA_INIT response 0 [ N(NO_PROP) ]
    wzxjohn
        52
    wzxjohn  
    OP
       2014-10-09 17:00:56 +08:00 via iPhone
    @fuck010bj 你这似乎不是证书的问题吧。。。挺奇怪的。。。没遇到过。。。
    GPU
        53
    GPU  
       2014-10-09 18:44:26 +08:00
    root@(none):~# in /etc/rc.local
    -bash: syntax error near unexpected token `in'
    wzxjohn
        54
    wzxjohn  
    OP
       2014-10-09 18:48:54 +08:00
    @GPU 大哥,那是一整段话。。。in是介词。。。
    GPU
        55
    GPU  
       2014-10-09 18:54:14 +08:00
    @wzxjohn 这只是解释吧?
    GPU
        56
    GPU  
       2014-10-09 18:55:23 +08:00
    正在纠结 在哪里有最新版Yosemite 下载 .没有白苹果 ,只能虚拟装一个黑苹果
    wzxjohn
        57
    wzxjohn  
    OP
       2014-10-09 18:59:29 +08:00
    @GPU
    Then put
    然后将下面两行
    iptables-restore < /etc/iptables.up.rules
    ufw reload
    in /etc/rc.local
    写入/etc/rc.local
    一行英文一行中文,那句是解释。。。
    那就没办法了。。。这东西必须用Yosemite运行。。。
    GPU
        58
    GPU  
       2014-10-09 19:02:08 +08:00
    @wzxjohn
    iptables-restore < /etc/iptables.up.rules
    ufw reload

    还是把这两行加了背景颜色更好吧。
    wzxjohn
        59
    wzxjohn  
    OP
       2014-10-09 19:03:02 +08:00
    @GPU 发现这个问题了,已改。
    goodbest
        60
    goodbest  
       2014-10-09 20:28:26 +08:00
    @xream
    @wzxjohn
    回一下2L
    试了下把leftsubnet=0.0.0.0/0 改成国外的一些ip段,但是发现不行。
    我不知道是我的问题,还是因为ios还没实现(前者可能性更大...)
    “While the protocol supports split-tunneling, whether it can actually be used depends on the client”
    wzxjohn
        61
    wzxjohn  
    OP
       2014-10-09 20:39:52 +08:00
    @goodbest 估计是iOS的实现问题,还是等等好了。。。
    GPU
        62
    GPU  
       2014-10-10 00:39:04 +08:00 via iPhone
    @wzxjohn 有空能帮忙建一个配置文件么?yosemite b1安装的时候提示“停止供货了”,只能等正式版出了再装。
    wzxjohn
        63
    wzxjohn  
    OP
       2014-10-10 01:52:30 +08:00 via iPhone
    @GPU 请安装B2
    goodbest
        64
    goodbest  
       2014-10-10 10:08:39 +08:00
    关于60L说的。
    考虑到ios可能对路由条目数量有限制,所以加了这个。一个别人ios anyconnect正在用的配置。

    leftsubnet = 103.0.0.0/8,106.0.0.0/8,107.0.0.0/8,108.0.0.0/8,141.0.0.0/8,153.0.0.0/8,160.0.0.0/8,166.0.0.0/8,17.0.0.0/8,173.0.0.0/8,176.0.0.0/8,178.0.0.0/8,184.0.0.0/8,194.0.0.0/8,198.0.0.0/8,199.0.0.0/8,203.0.0.0/8,204.0.0.0/8,205.0.0.0/8,208.0.0.0/8,209.0.0.0/8,210.0.0.0/8,216.0.0.0/8,3.0.0.0/8,4.0.0.0/8,31.0.0.0/8,46.0.0.0/8,50.0.0.0/8,54.0.0.0/8,61.0.0.0/8,64.0.0.0/8,67.0.0.0/8,68.0.0.0/8,69.0.0.0/8,70.0.0.0/8,72.0.0.0/8,74.0.0.0/8,75.0.0.0/8,76.0.0.0/8,77.0.0.0/8,79.0.0.0/8,8.0.0.0/8


    结果推特、dropbox、youtube等都无法访问,但奇怪的是谷歌完全没问题。

    所以我现在也搞不清到底是谁出了问题
    wzxjohn
        65
    wzxjohn  
    OP
       2014-10-10 12:34:31 +08:00
    @goodbest 会不会推特和DB等是DNS的问题?这个我还真没法测试。。。因为我人在墙外,只能靠你们了!
    cattyhouse
        66
    cattyhouse  
       2014-10-10 13:26:20 +08:00 via iPhone
    @wzxjohn 下面这段代码的意思就是无论任何条件只要连接3G,Wifi网络设备(注意,不一定是能上网),vpn都自动连接,等于always on,请自行阅读apple官网文档。我目前就是用这段代码,已经验证,无论ikev1,还是v2,vpn都是自动连接。

    key>OnDemandEnabled</key>
    <integer>1</integer>
    <key>OnDemandRules</key>
    <array>
    <dict>
    <key>Action</key>
    <string>Connect</string>
    </dict>
    </array>
    wzxjohn
        67
    wzxjohn  
    OP
       2014-10-10 13:54:34 +08:00
    @cattyhouse 我非常确信这段代码期中OnDemandEnabled= 1的含义是是否在安装时默认开启On-Demand选项,这个请明知。还有这段代码确实可以实现类似与Always On的功能,但是这并不是Always On VPN。或者说其实On-Demand是Always On的高级版本,可以根据域名来选择。
    GPU
        68
    GPU  
       2014-10-10 22:45:56 +08:00
    @wzxjohn Beta 2 搞了一晚上也是无法安装。停止供货了。
    wzxjohn
        69
    wzxjohn  
    OP
       2014-10-11 00:24:30 +08:00 via iPhone
    @GPU 我说错了,现在是Beta5 GM2了
    GPU
        70
    GPU  
       2014-10-11 00:39:16 +08:00
    @wzxjohn 貌似Beta5 GM2没有完整的包
    GPU
        71
    GPU  
       2014-10-11 19:18:34 +08:00
    @wzxjohn email 了一个邮件发了配置文件给你 ,麻烦帮忙看看是不是有问题 。谢了。
    GPU
        72
    GPU  
       2014-10-12 16:23:29 +08:00
    @wzxjohn
    wget http://download.strongswan.org/strongswan-5.2.0.tar.bz2
    tar xjvf strongswan-5.2.0.tar.bz2; cd strongswan-5.2.0
    ./configure --prefix=/usr --syscOnfdir=/etc --enable-eap-mschapv2 --enable-eap-identity --enable-eap-peap --enable-openssl --enable-md4
    make & make install

    以上是strongswan 最新版完整的编译命令 .
    如果使用apt-get 默认的源 版本是4.6的 ,官方最新是5.2.0
    goodbest
        73
    goodbest  
       2014-10-12 18:33:40 +08:00
    看到lz把基于domain的ondemand rule改为了类似always on的connect


    于是我本人使用ikev2的主要目的还是翻墙,所以还是需要考虑让某些国内网址不走代理。
    否则等vpn自动连接了以后,访问国内网站还要手动关vpn才行,可能稍有不便。
    而我60L的方法又测试失败了。


    于是目前我考虑这样设置:
    http://pastebin.com/X1h0fJXS

    其中的第一大块是被墙的网址,如果访问的话就自动连接vpn。

    第二大块网址是即使当前已经连接了vpn,但这些网址也会不走vpn的。这里适合设置成国内视频站之类的网址。(我这里设置成了看自己ip的站点,方便测试。)
    这一块网址我打算借用一下现有的轮子,比如这里https://github.com/linusyang/MobileShadowSocks/blob/master/MobileShadowSocks/auto.pac


    另外我打算马上打算测试一下通配符网址能否用,如果可以的话就可以直接bypass *.cn
    zlbruce
        74
    zlbruce  
       2014-10-13 23:08:59 +08:00
    @goodbest 请问,测试结果怎样呢?
    goodbest
        75
    goodbest  
       2014-10-13 23:25:52 +08:00
    @zlbruce *.cn可用
    但如果rule加太多域名会拖慢速度...几百个应该是极限了
    zlbruce
        76
    zlbruce  
       2014-10-13 23:28:02 +08:00
    @goodbest 多谢
    wzxjohn
        77
    wzxjohn  
    OP
       2014-10-13 23:36:23 +08:00 via iPhone
    @goodbest 可以自动断开VPN并在需要的时候重连么?就算网络没有变化?
    goodbest
        78
    goodbest  
       2014-10-13 23:40:05 +08:00
    @wzxjohn 访问第二段里面的网站,vpn的标志还在(也就是vpn并未断开),但实际上流量没走vpn(访问ip138看ip就能看出来,通过页面加载速度也能感觉出来)。
    wzxjohn
        79
    wzxjohn  
    OP
       2014-10-14 00:13:12 +08:00 via iPhone
    @goodbest 哦?还有这种功效?我要试试。。。
    emptyzone
        81
    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
        82
    goodbest  
       2014-10-14 11:57:48 +08:00
    @freeznet
    一开始放了2K多个(从其他地方也找了一些),然后发现每次连接vpn都极慢。所以目前在做减法,目前是800多个还行,当然没观察过对电量是否有极大影响。

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

    这个 DNS 配置已经过滤掉了 DNS 投毒常用的 IP,这块是参考 chinadns 做的。
    g552656
        85
    g552656  
       2014-10-14 13:58:11 +08:00
    我问个可能很愚蠢的问题,里面说的证书证书的,是需要单独购买还是直接按照步骤生成就行?
    wzxjohn
        86
    wzxjohn  
    OP
       2014-10-14 15:37:14 +08:00
    @g552656 可以直接使用之前购买的SSL证书也可以按照步骤生成,推荐使用购买的SSL证书因为这样的话就不需要再单独下发证书给用户,也更安全。当然自签名的证书也是可以使用的,只不过需要手动将CA发给用户而已。
    g552656
        87
    g552656  
       2014-10-14 16:10:01 +08:00
    @wzxjohn 感谢,但是如果不使用域名直接使用ip的话,是不是就只能自己生成且必须用户手动添加证书,也就没办法自动配置或者无法完全自动配置了?
    wzxjohn
        88
    wzxjohn  
    OP
       2014-10-14 16:50:10 +08:00
    @g552656 是的。必须手动生成证书。。。
    g552656
        89
    g552656  
       2014-10-14 22:52:49 +08:00
    @wzxjohn 那如果有多台服务器岂不是要申请好多ssl证书啊。。。通配符型的ssl好贵而且这样感觉设置好麻烦
    wzxjohn
        90
    wzxjohn  
    OP
       2014-10-14 23:19:35 +08:00 via iPhone
    @g552656 是的,所以说你们这些多台服务器卖VPN的乖乖去买个通配符吧不贵!
    g552656
        91
    g552656  
       2014-10-14 23:39:06 +08:00
    @wzxjohn 感谢耐心解答:)在研究测试一下看看如果比现用的Cisco IPSec好的话就升级到IEKv2,原来是想解决iOS锁屏断线的问题,不过现在iOS8新系统锁屏也不断线了。
    goodbest
        92
    goodbest  
       2014-10-15 00:54:54 +08:00   1
    @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
        93
    g552656  
       2014-10-15 01:33:32 +08:00
    @goodbest 非常感谢,如果IKEv2不使用Ondemand或是Always on的话,它和IKEv1比起来在性能和速度或者稳定性等方面会有差别吗?或者说哪个更好?
    wzxjohn
        94
    wzxjohn  
    OP
       2014-10-15 08:16:27 +08:00
    @goodbest 赞,爱钻研就是好~
    goodbest
        95
    goodbest  
       2014-10-15 09:41:43 +08:00
    @g552656 这个我估计v1和v2的速度差距,远小于你连接国外服务器的延时吧..
    gissimo
        96
    gissimo  
       2014-10-25 19:15:37 +08:00
    @riaqn 静态密钥是好,完全不受干扰。但是iOS手机上的OPENVPN无法用啊
    gissimo
        97
    gissimo  
       2014-10-25 19:17:16 +08:00
    @goodbest 我用ikev1,也就是cisco ipsec,锁屏下还是会断线啊!!!ios 8.1
    gissimo
        98
    gissimo  
       2014-10-25 19:18:51 +08:00
    @GPU Windows能不能在configure中加ikev2啊,直接编辑太头疼
    riaqn
        99
    riaqn  
       2014-10-25 19:19:42 +08:00
    @gissimo 恩 我在国内搭了一台ipsec server + openvpn client.这样我在这个城市的时候,都是连的这个ipsec服务器.
    gissimo
        100
    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
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2753 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 15:09 PVG 23:09 LAX 08:09 JFK 11:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86