V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wzxjohn
V2EX  ›  分享创造

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

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

    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   ·   实用小工具   ·   2799 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.