V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cattyhouse
V2EX  ›  iPhone

最近研究 iOS Ondemand 或者 Always ON IPSec VPN 的成果,目前使用中,非常满意已经抛弃了 Anyconnect 了。

  •  1
     
  •   cattyhouse · 2014-09-23 22:41:44 +08:00 · 26813 次点击
    这是一个创建于 3740 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的是Strongswan搭建服务器,然后Apple Configurator配置,并且参考了Apple官方文档和其他博客做了手动修改配置文件,现在很爽的使用中。无论网络如何切换,VPN都自动拨号。
    Anyconnect很好,但是速度上不去,iOS8下面尤其明显,最高没超过2Mbps,也就是256KBps,即便在我的30M带宽下面。

    欢迎测试,希望方便有需要的朋友们。

    https://medium.com/@cattyhouse/ios-ondemand-ipsec-vpn-setup-ebfb82b6f7a1?source=latest&
    第 1 条附言  ·  2014-09-23 23:57:26 +08:00
    各位看着读,具体应用的时候不要直接copy然后。。。 这个网站Medium把代码格式全部打乱了。。。我改时间换个地方放置。
    第 2 条附言  ·  2014-09-24 00:25:44 +08:00
    原来Medium.com支持代码的,Ctrl+6 (windows)或者 Ctrl+Option+6 (mac)就能插入代码了。已经重新修改格式化了文章。
    第 3 条附言  ·  2014-09-24 00:28:16 +08:00
    吐槽一下,很多人在卖VPN服务,比如什么黑科技什么东哥的,但没人写详细的配置方法。。。
    101 条回复    2015-03-28 22:08:49 +08:00
    1  2  
    goodbest
        1
    goodbest  
       2014-09-23 22:44:08 +08:00
    一直在默默关注中,既然lz搞好了,就赶紧来学学...
    Perry87
        2
    Perry87  
       2014-09-23 22:54:29 +08:00 via iPad
    多谢,楼主这个方式是全局翻?AnyConnect 可以下发路由表还蛮有用的。
    wzxjohn
        3
    wzxjohn  
       2014-09-23 23:00:18 +08:00
    楼主为啥要用英文发。。。
    wzxjohn
        4
    wzxjohn  
       2014-09-23 23:05:29 +08:00
    顺便一说楼主的方法只适用于个人使用,不太适用于多人环境。
    cattyhouse
        5
    cattyhouse  
    OP
       2014-09-23 23:13:12 +08:00
    @Perry87 全局翻墙。我也喜欢anyconnect,但是目前为止,Anyconnect的服务器端还是一个兼容的ocserv创建的。现在我出现这种速度慢的现象无法搞定,研究了很久也搞不定。所以只有这样了。
    cattyhouse
        6
    cattyhouse  
    OP
       2014-09-23 23:13:57 +08:00
    @wzxjohn 为什么不适合多人的环境?iPhone配置文件可以下发给无数人,然后服务端可以创建无数账户。
    wzxjohn
        7
    wzxjohn  
       2014-09-23 23:18:23 +08:00
    @cattyhouse 因为你的证书需要每人生成一份。。。你这个配置指定了那一份证书。
    cattyhouse
        8
    cattyhouse  
    OP
       2014-09-23 23:23:16 +08:00
    @wzxjohn 证书为什么需要每人一份呢?我这个证书可以用在任何不限制数量的iOS设备上的啊。你在调查调查再发言把。
    GPU
        9
    GPU  
       2014-09-23 23:26:32 +08:00
    @wzxjohn +1 球中文版 。英文版看两行就觉得看不下去了。
    cattyhouse
        10
    cattyhouse  
    OP
       2014-09-23 23:29:36 +08:00
    @GPU 因为研究的时候看文章都是英文的,所以就写了英文的了。看不下去你也就不用弄了,直接买别人的服务把。
    cattyhouse
        11
    cattyhouse  
    OP
       2014-09-23 23:33:09 +08:00
    @wzxjohn 至少我的配置文件已经在我的Macbook和iPhone上都安装可用了,再多一台或者n台设备也无妨吧。证书跟IPSec Xauth的用户名和密码是不相关连的。Apple Configurator上用证书的时候是需要填入用户名和密码的,使用过程中是无需干扰的自动连接。
    lovelinghan
        12
    lovelinghan  
       2014-09-23 23:38:07 +08:00
    Mark
    ooxxcc
        13
    ooxxcc  
       2014-09-23 23:38:49 +08:00
    @cattyhouse 我确认一下,是一份证书用来验证第一层,然后第二层用xauth(PSK)对吧……我去折腾一下,之前实验后忘了出了啥问题,总之后来抛弃这个方法没用折腾APNP去了,原来要手动修改文件……

    https://work.ooxxcc.com/tools/cisco-vpn-with-strongswan/
    lovelinghan
        14
    lovelinghan  
       2014-09-23 23:40:57 +08:00
    Strongswan搭建ipsec 每天都要重启的才能用的 感觉不是很兼容
    cattyhouse
        15
    cattyhouse  
    OP
       2014-09-23 23:44:31 +08:00
    @lovelinghan 每天需要重启是因为你的ipsec.conf配置上有问题,因为iPhone经常切换网络,切换网络vpn就会断开,然后在服务器端有个死链接,需要服务器快速的结束这个死链接,所以导致你再次连接的时候就无法连接,这是一个之前困扰我的问题,在ipsec.conf设置 dpdtimeout = 5s 就解决了。你也可以设置更短的时间。
    mutinux
        16
    mutinux  
       2014-09-23 23:45:05 +08:00
    您这第一句英文就有语法问题。。。
    cattyhouse
        17
    cattyhouse  
    OP
       2014-09-23 23:45:52 +08:00
    @ooxxcc openswan不是已经被抛弃了吗?现在叫libreswan吧,我没用过。对的,ondemand必须手动修改*.mobileconfig文件。
    cattyhouse
        18
    cattyhouse  
    OP
       2014-09-23 23:47:49 +08:00
    @mutinux 那里有语法问题?focus on 内容吧。。。先生。。。
    goodbest
        19
    goodbest  
       2014-09-23 23:48:07 +08:00
    @cattyhouse 换个地方放code吧,那个地方把代码格式字符全毁了
    cattyhouse
        20
    cattyhouse  
    OP
       2014-09-23 23:49:13 +08:00
    @goodbest 唉。。。 不行搬到 blogspot上去。。。但没时间搞了。
    ooxxcc
        21
    ooxxcc  
       2014-09-23 23:52:54 +08:00
    @cattyhouse 后来改成strongswan了,标题没改。。。。
    ooxxcc
        22
    ooxxcc  
       2014-09-23 23:55:46 +08:00
    @cattyhouse 另外似乎ios不支持*.xxx.com这样的wildcard证书?每个服务器要一套证书实在太蛋疼了
    cattyhouse
        23
    cattyhouse  
    OP
       2014-09-23 23:59:37 +08:00
    @ooxxcc 恩,证书是per服务器的,这些证书不能复制到别的服务器上用的。但是可以下发给任何用户。这些用户都会连接到这个服务器。
    zqqf16
        24
    zqqf16  
       2014-09-24 00:10:02 +08:00
    哈哈,目前的工作和 lz 研究的是一个东西~
    ooxxcc
        25
    ooxxcc  
       2014-09-24 00:12:04 +08:00
    @cattyhouse 恩,我需要弄5~6套这玩意,想起来就蛋疼不想弄了……
    wzxjohn
        26
    wzxjohn  
       2014-09-24 00:26:23 +08:00 via iPad
    @cattyhouse 你果然没理解我的意思。。。如果你把同样的证书发给所有人那么如何区分这些用户呢。。。
    cattyhouse
        27
    cattyhouse  
    OP
       2014-09-24 00:26:32 +08:00
    @zqqf16 我纯粹业余爱好。。。我是做销售的。。。
    cattyhouse
        28
    cattyhouse  
    OP
       2014-09-24 00:27:27 +08:00
    @wzxjohn 区分用户用用户名和密码。。。创建iPhone的配置的时候是需要填入服务器上设置的Xauth账户的。。。
    wzxjohn
        29
    wzxjohn  
       2014-09-24 00:28:08 +08:00 via iPad
    @cattyhouse 我为了这个东西也跟你一样折腾了好久,而且也跟你邮件交流过,所以千万不要认为我啥都没做就在这臆测哦。。。
    cattyhouse
        30
    cattyhouse  
    OP
       2014-09-24 00:29:05 +08:00
    @wzxjohn 现在折腾好了。。。你可以直接用了 :)
    wzxjohn
        31
    wzxjohn  
       2014-09-24 00:30:06 +08:00 via iPad
    @cattyhouse 嗷,第一次看你的代码是被完全打乱的,没注意到你还开了第二重认证。那么,其实你这样就完全不需要证书了。。。为何多此一举呢。。。
    cattyhouse
        32
    cattyhouse  
    OP
       2014-09-24 00:31:30 +08:00
    @wzxjohn 不是我要开二重认证。。。是Apple Configurator在配置的时候即使你选择了证书,你依然需要输入服务器上配置的Xauth的账户,也就是 /etc/ipsecs.secrets里面的。
    wzxjohn
        33
    wzxjohn  
       2014-09-24 00:31:42 +08:00 via iPad
    @cattyhouse 我大概4天前已经折腾好了,只是跟你的方法稍有差别,不过感觉更方便,可以zhijie省掉证书。虽然说证书似乎也没啥大影响。
    wzxjohn
        34
    wzxjohn  
       2014-09-24 00:32:21 +08:00 via iPad
    @cattyhouse 所以你直接把证书关掉开EAP即可啦~
    cattyhouse
        35
    cattyhouse  
    OP
       2014-09-24 00:33:35 +08:00
    @wzxjohn 没有证书你可以 ondemand? 你根本无法开启这个选项。。。
    cattyhouse
        36
    cattyhouse  
    OP
       2014-09-24 00:34:51 +08:00
    @wzxjohn 只有证书模式才能开启 Ondemand,注意我这里重点是要VPN Ondemand,如果不需要这个功能我何必折腾IPSec?一个PPTP不就搞定了?
    wzxjohn
        37
    wzxjohn  
       2014-09-24 00:34:53 +08:00 via iPad
    @cattyhouse 要不要我发我的配置文件给你试试啊~没成功的话我会乱说么~
    cattyhouse
        38
    cattyhouse  
    OP
       2014-09-24 00:36:11 +08:00
    @wzxjohn 发个mobileconfig文件给我看看,去掉敏感信息的。。。你确定没有配置可以自动连接VPN?包括切换网络包括待机恢复的时候?
    wzxjohn
        39
    wzxjohn  
       2014-09-24 00:47:28 +08:00
    @cattyhouse 配置文件在我的Mac上,现在懒得开了,发两张iPad的截图
    https://www.dropbox.com/s/u3kq6oho1b67lwe/Photo%209-24-14%2C%2000%2038%2049.png?dl=0
    这张说明了我的配置文件只有一个证书也就是CA,并没有用户证书,证明我的验证中并没有开启证书
    https://www.dropbox.com/s/igzmb7nh4jiucc9/Photo%209-24-14%2C%2000%2038%2057.png?dl=0
    这张证明了我的配置文件成功开启了On Demand。不过我现在不用VPN所以直接关了。经过测试,打开On Demand后,只要访问了指定的URL就会自动开启VPN,完全达到要求。
    dd99iii
        40
    dd99iii  
       2014-09-24 00:50:17 +08:00
    @wzxjohn 没有证书就赞了
    cattyhouse
        41
    cattyhouse  
    OP
       2014-09-24 00:50:48 +08:00
    @wzxjohn 你用的IKEv2啊?我这个配置方法文件用的IKEv1 ...
    cattyhouse
        42
    cattyhouse  
    OP
       2014-09-24 00:53:19 +08:00
    @wzxjohn 你有空写个IKEv2的服务器和iOS配置方法吧,谢谢了。
    wzxjohn
        43
    wzxjohn  
       2014-09-24 00:54:39 +08:00
    @cattyhouse IKEv1。。。好吧。。。我记得你之前发帖的时候标题是:
    iOS 8 支持 Always On 和 IKE2 VPN 了
    。。。。。。。。。为啥换了。。。
    IKEv2还是挺赞的,主要是WP用户原生支持啊!//虽然我不是WP用户。。。
    @dd99iii 其实就算是不要证书还是需要Profile,这个是必须的。因为系统中没有IKEv2 VPN这个选项。倒是CA证书其实也是可以省掉的,如果直接用SSL证书来代替的话。
    wzxjohn
        44
    wzxjohn  
       2014-09-24 00:56:22 +08:00
    @ooxxcc 我觉得可能是支持通配符证书的,不过我没有试过,明天有时间试一下吧。因为iOS 8在校验证书的时候应该也是按照标准方法来进行校验,这样的话应该是支持通配符证书的。
    wzxjohn
        45
    wzxjohn  
       2014-09-24 00:57:14 +08:00
    @cattyhouse 肯定会写,但是恐怕要到国庆了。。。
    ooxxcc
        46
    ooxxcc  
       2014-09-24 01:14:51 +08:00
    @wzxjohn 反正老版本是有bug不支持通配符的,ios8不知道怎么样……不过我的肾4也和ios8无缘了
    ooxxcc
        47
    ooxxcc  
       2014-09-24 01:15:25 +08:00
    另外所谓黑科技加速是另外一个东西。。和你写的这些无关。。。。
    Actrace
        48
    Actrace  
       2014-09-24 07:52:10 +08:00
    AC不慢啊,楼主,速度这个问题大部分是因为水管小造成的,特别是部分垃圾VPS,夜间速度很烂的.我的AC可以稳定上50M啊.
    延迟高的线路最好就别用UDP模式传输数据了,线路利用率很低的.
    cattyhouse
        49
    cattyhouse  
    OP
       2014-09-24 08:22:40 +08:00 via iPhone
    @Actrace 小水管?我企业30M上下对等的电信宽带,日本linode服务器,还是只能跑2Mbps也就是250KBps。
    你是iOS8吗?我的Mac上Anyconnect没问题的。
    lovelinghan
        51
    lovelinghan  
       2014-09-24 08:31:15 +08:00
    @cattyhouse dpdtimeout =3s 我的 还是照样没人要ipsec restart
    wzxjohn
        52
    wzxjohn  
       2014-09-24 09:22:11 +08:00
    @ooxxcc
    @cattyhouse 实验成功!事实证明通配符证书是可以使用的,同时你给网站申请的SSL证书是可以直接作为服务器证书使用的!比如说我现在下发给iPhone的配置文件里面就没有证书,只有账号信息!
    Apollo520
        53
    Apollo520  
       2014-09-24 10:13:02 +08:00
    @wzxjohn 求配置文本
    Perry87
        54
    Perry87  
       2014-09-24 10:29:28 +08:00
    @wzxjohn @cattyhouse

    你们真棒,哈哈
    wzxjohn
        55
    wzxjohn  
       2014-09-24 10:36:57 +08:00 via iPhone
    @Perry87 为了这个熬夜几天啊。。。
    ooxxcc
        56
    ooxxcc  
       2014-09-24 10:37:00 +08:00
    @wzxjohn 求详情
    wzxjohn
        57
    wzxjohn  
       2014-09-24 10:55:59 +08:00 via iPhone   ❤️ 2
    @ooxxcc 等我国庆时候写个博客,现在太忙了。。。
    ooxxcc
        58
    ooxxcc  
       2014-09-24 11:39:48 +08:00
    @wzxjohn 大概问一下

    1.客户证书用自己的ca证书生成,服务器证书用ssl证书?
    2.ios7可用?
    3.ikev1?

    //自己重新看了一遍是客户端无证书+ios8+ikev2……没法用不开心……
    wzxjohn
        59
    wzxjohn  
       2014-09-24 11:53:11 +08:00
    @ooxxcc
    1. 不需要任何CA,因为SSL证书的CA默认是被iOS信任的,之所以之前要装证书是因为自签名的证书默认不会被信任
    2. 不可用。IKEv2是iOS 8才有的新特性。但是IKEv1(Cisco IPSec) iOS 7可用。
    3. 如2,IKEv2
    wzxjohn
        60
    wzxjohn  
       2014-09-24 18:11:59 +08:00
    @ooxxcc 你是准备销售VPN服务么。。。不然为啥要这么多服务器。。。。。。Orz
    ooxxcc
        61
    ooxxcc  
       2014-09-24 18:23:54 +08:00
    @wzxjohn 自用+朋友,其实基本用的就是Linode东京机房的两台,其他都是备用
    wzxjohn
        62
    wzxjohn  
       2014-09-24 18:43:32 +08:00
    @ooxxcc 嗯。
    @cattyhouse 话说我在研究一次性把IKEv2和Cisco IPSec也就是IKEv1都配置好。现在Cisco IPSec也可以了,很快应该就能搞定了。
    wzxjohn
        63
    wzxjohn  
       2014-09-24 22:44:31 +08:00
    @cattyhouse 我发现我的证书有点小问题,在WIFI下随便切换VPN会重连没问题,但是如果从WIFI断开连到移动数据VPN就不会自动重连了。你有这个问题么?
    cattyhouse
        64
    cattyhouse  
    OP
       2014-09-24 23:02:35 +08:00
    @wzxjohn 我没有这个问题啊。你是IKEv2还是v1?
    wzxjohn
        65
    wzxjohn  
       2014-09-25 08:29:47 +08:00
    @cattyhouse 可以发一份你的Profile给我看看么?我觉得是Profile的问题。。。我的是IKEv2
    cattyhouse
        66
    cattyhouse  
    OP
       2014-09-25 10:41:49 +08:00 via iPhone
    @wzxjohn 我的profile是ikev2,我就加了 action connect,其余都是按照我教程上写的做的。
    cattyhouse
        67
    cattyhouse  
    OP
       2014-09-25 10:42:17 +08:00 via iPhone
    @wzxjohn sorry,ikev1
    GPU
        68
    GPU  
       2014-09-25 20:56:41 +08:00
    @wzxjohn 我也配置不到。楼主第一步的 ca.sh 第一台命令就一直停着了
    wzxjohn
        69
    wzxjohn  
       2014-09-25 21:10:33 +08:00 via iPhone
    @GPU 你这是啥问题。。。你是什么系统?CentOS这类红帽系的不能用。
    GPU
        70
    GPU  
       2014-09-25 21:34:50 +08:00
    @wzxjohn debian 7 系统。
    cattyhouse
        71
    cattyhouse  
    OP
       2014-09-25 21:37:36 +08:00
    @GPU CentoOS就会这样。。。 我也不知道为什么。 据说是/var/random的数据不够。所以我说了,debian makes it easier。
    cattyhouse
        72
    cattyhouse  
    OP
       2014-09-25 21:38:33 +08:00
    @GPU debian 7不至于的,你可以一条一条的执行,估计你卡在第一条上了。
    GPU
        73
    GPU  
       2014-09-25 21:48:40 +08:00
    @cattyhouse 我是一条一条的执行也是不行。
    GPU
        74
    GPU  
       2014-09-25 21:49:27 +08:00
    @cattyhouse 就是第一次不行。
    GPU
        75
    GPU  
       2014-09-25 21:53:41 +08:00
    @GPU 等了很多分钟终于可以了。
    1nt
        76
    1nt  
       2014-09-25 22:54:36 +08:00
    @wzxjohn 非常期待你的 IKEv2 教程,等不急啦。。。
    1nt
        77
    1nt  
       2014-09-25 22:58:01 +08:00
    在 MAS 里面下的 Apple Configurator 1.6,打开没反应,
    过了很久弹出这个:



    点击确认以后 Apple Configurator 就自动退出啦
    求教是为什么
    gissimo
        78
    gissimo  
       2014-10-12 20:51:53 +08:00
    请教楼主,我已经搭建好ipsec了。现在是不是要在配置文件中加入dpdtimeout = 5s

    然后请教手机端能不能直接用默认的Cisco,再改个文件?
    cattyhouse
        79
    cattyhouse  
    OP
       2014-10-12 21:03:26 +08:00 via iPhone
    @1nt 卸载重装
    cattyhouse
        80
    cattyhouse  
    OP
       2014-10-12 21:04:03 +08:00 via iPhone
    @gissimo 不需要加。手机客户端直接可以用。
    gissimo
        81
    gissimo  
       2014-10-12 21:06:57 +08:00
    @cattyhouse 手机端我是在系统的vpn里添加的。是不是就不能断线重连了?一定要在配置文件改?
    gissimo
        82
    gissimo  
       2014-10-12 21:13:39 +08:00
    @cattyhouse 还有啊,Windows的版本下,找不到导入证书那两栏诶
    cattyhouse
        83
    cattyhouse  
    OP
       2014-10-12 21:30:06 +08:00 via iPhone
    @gissimo 是的。一定要通过配置文件。

    往下拉,有证书payload,不是有大概10几种配置类型?找证书,加入证书先。

    其实不用证书也可以自动按需,只要加入我说的那段代码,就行。
    gissimo
        84
    gissimo  
       2014-10-12 21:34:40 +08:00
    @cattyhouse 恩,导入了证书。请问Windows下能用txt编辑配置文件吗?我改好后导入,点安装没反应啊
    cattyhouse
        85
    cattyhouse  
    OP
       2014-10-12 21:48:02 +08:00
    @gissimo 导出的时候不要给配置文件签名;最好不要用txt编辑,用notepad++也好。。。 没反应那一定是你的配置文件有问题。
    gissimo
        86
    gissimo  
       2014-10-12 21:52:52 +08:00
    @cattyhouse 恩。我txt编辑但是把换行换成几个空格。导入成功。在测试啦。

    请问下锁屏是不会断VPN?还是锁屏断VPN会自动连接?还是解屏的action会触发他自动连接啊?
    cattyhouse
        87
    cattyhouse  
    OP
       2014-10-12 22:18:03 +08:00
    @gissimo 手机待机vpn自动断开。只要试图联网,它就拨号。
    gissimo
        88
    gissimo  
       2014-10-13 00:08:22 +08:00 via iPhone
    @cattyhouse 可是我这上面完全没这个效果啊?按照你的制作配置文件的步骤制作出来导入的诶
    emptyzone
        89
    emptyzone  
       2014-10-14 11:51:52 +08:00
    emptyzone
        90
    emptyzone  
       2014-10-14 11:53:29 +08:00
    IKEv1 也是支持 SplitTunnel 的。在配合上自己的抗污染DNS。连接速度也不错。

    @cattyhouse 看看我写的这个能满足你的需求吗。

    http://emptyzone.github.io/tech/2014/10/13/cross-fire-wall-on-ios8/
    wangqj
        91
    wangqj  
       2014-10-17 15:40:41 +08:00
    @emptyzone server_key.sh 的内容是client_key.sh 麻烦检查一下,谢谢!
    emptyzone
        92
    emptyzone  
       2014-10-18 09:37:41 +08:00
    @wangqj 已更新,谢提醒!
    debiansid
        93
    debiansid  
       2014-11-22 20:03:58 +08:00 via iPhone
    Any connect 没有自动重连。怎么破
    cattyhouse
        94
    cattyhouse  
    OP
       2014-11-23 00:47:37 +08:00 via iPhone
    @debiansid who told you?
    debiansid
        95
    debiansid  
       2014-11-23 01:56:19 +08:00
    @cattyhouse 自己的手机看到的情况啊
    debiansid
        96
    debiansid  
       2014-11-23 20:53:31 +08:00
    @cattyhouse ipsec 配置折腾好几天了,发现是openwrt的默认规则好像阻止进来的udp,用3G上网可以连
    debiansid
        97
    debiansid  
       2014-11-24 21:24:37 +08:00 via iPhone
    能否配置为连到特定的ssid 不拨vpn?
    debiansid
        98
    debiansid  
       2014-11-24 21:26:12 +08:00 via iPhone
    @emptyzone 如果想指定某些网站走vpn有什么方法?
    debiansid
        99
    debiansid  
       2014-11-24 21:41:32 +08:00 via iPhone
    @cattyhouse 多人用同一证书但是必须用不同账户才可以,对么?
    zjgood
        100
    zjgood  
       2015-03-28 22:07:18 +08:00 via Android
    @Actrace 看了v友的发言有那么几个问题,都是关于anyconnect ,希望能够不吝赐教。
    1. anyconnect 如何关闭udp 传输?在高延迟下注释掉udp-port 吗?
    2. v友是用的哪儿的vps 啊?线路这么好。
    3. v友怎么优化的anyconnect呀?求共享配置文件
    4.我们是不是之前讨论过anyconnect优化?囧:)看到你的昵称好熟悉
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:21 · PVG 23:21 · LAX 07:21 · JFK 10:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.