anyconnect 在 ios 上分流很爽,但安卓版本的 anyconnect 却不支持,怎么解?

2016-09-15 08:47:04 +08:00
 windhunter
同一台 server , ios 版 anyconnect 连上去境内外分流,
但我能找到的 android 机,版本从 4.2 到 6.0 ,用 anyconnect 后,流量却统统走 server 了。

各位安卓党是怎么解决这个问题的?
26098 次点击
所在节点    Android
48 条回复
wm5d8b
2016-09-16 17:37:58 +08:00
android 上的 openconnect 客户端是需要特殊配置吗?我试了几次,都是连上服务器后,什么网站都打不开。 anyconnect 就没有这个问题
Aquamarine
2016-09-16 18:42:23 +08:00
据说安卓的 AC ,分流要靠服务端
dreamtrail
2016-09-16 22:50:38 +08:00
我是用服务器做得分流,不管什么客户端连上去,效果都是一样的,缺点是要多消耗一点服务器流量
hagha
2016-09-16 23:30:12 +08:00
同安卓,折腾了好多方法都没成功
itiger88
2016-10-18 09:10:11 +08:00
@Vicer 由于个人 CiscoAnyConnect 的目的是为了移动端更好更快的接受境外好友的 Whatsapp 信息,又分析不错那么多的 Wahtsapp 的服务器,所以得用 no-route 比较好。我也遇到了这个用 no-route 对安卓手机无效得情况:
我的使用环境如下
1.CentOS7 mini cd 安装版
2.最新版本的 ocserv (centos7 yum install 安装的 ocserv-0.11.5-1.el7.x86_64 ),配置文件用的是网上找到的常用的 Centos7 一键脚本,采用默认的用户名密码认证方式
3.手机是华为 mate8 安卓 6 ,没有 root 过
4. 客户端软件是 Cisco AnyConnect 4.0.05057 (刚刚 google play 市场下载)或者 OpenConnect 1.11 (刚刚 google play 市场下载的)
5.使用 Cisco AnyConnect 看日志根本没有自定义 route 表的生成,但是使用 OpenConnect 时看到有 route 表生成的日志,但是实际没有生效,访问 www.ip138.com 显示的是我国外 VPS 的 IP ,走的全局路由到 VPS 。
------个人怀疑是因为我的手机是华为 mate8 (安卓 6.0 版本) 没有 root 的原因,因此无法在安卓系统中生成路由表,有这个动作但是系统没生效到。

我今天会继续测试下用证书方式看看能不能获得安卓手机的系统权限从而生成路由表。
-----------------
另外 Vicer 你能详细说下你在安卓下 no-route 表生效的环境吗?
1.手机型号 /安卓版本号? 有没有 root ?
2.服务器 VPS 的版本 是 CentOS 多少? 还是 Debian 几还是 Ubuntu 几?
3.使用 ocserv 版本 0.10.12 和其他新版本有没有对比过?为啥你前文那么推崇?
4.ocserv 0.10.12 是手工编译版吧?
5.使用的证书文件是自己生成的还是第三方例如 Wosign / StarSSL/Letsencrypt 生成的?---我感觉这点很关键,很可能是这个证书导致安卓系统有权限修改系统路由表
Vicer
2016-10-18 09:30:13 +08:00
1.Nexus 6 root
2.Debian 7.0
3.新版本,在 Debian7 上需要多安装很多东西。 0.10.12 是最后一个,不要那么多的,而且功能正常。稳定很久了。
4.手工编译。
5.AlphaSSL CA
itiger88
2016-10-18 09:55:31 +08:00
@Vicer 那我无法做到和你的环境一模一样了,手机不想 root ,日后给同事用这个 vpn 也不能要求对方 root 呀。
用电脑感觉这种 no-route 方式对我们来说是最好的,一上班电脑就拨好 vpn ,一般国内流量走国内,上 google 查资料 上 gmail 收邮件就走国外。

而且我觉得 IkeV2 其实在国内来说,在移动端的兼容性不好:
1. 各个市不同而不同,广州这边的移动 4G 会封 IkeV2 ( strongSwan )的认证,珠海移动也会封,但是肇庆移动不会封,感觉和各个市自己的基站出口设备设置有关系;
2.中国电信的 3G 没有封 IkeV2.
2. 同时各种宽频对 IkeV2 支持度不同,例如我家的 E 家宽( ip138.com 显示的中国电信出口)就不支持 IkeV2 的认证,导致家里 WiFi 不能用 IkeV2 ,但是支持 IkeV1 。我相信长城宽带这种也同样。但是单位的联通专线 /电信 100 兆企业光纤(虚拟拨号方式)就支持 IkeV2 。
各种环境的变化,导致移动端使用的 vpn 会断来断去,必须人手切换不同的 vpn 连接方式, IkeV2 / IkeV1/PPTP/L2TP ,好麻烦,而且最重要的是家里的 E 家宽是会封 UDP 包传输,一旦发现有 UDP 传输到某个固定 IP 超过 3 分钟 40 秒,就会禁止访问这 VPS 的 IP 2 分钟,第二次发现而封 IP 的时间会更短。没法子只能使用纯 TCP 方式的 VPN 方式......我笔记本正常用的 OpenVPN 方式对移动端来说兼容性太差了(其实是没有移动端),试验了一段时间,最后下决心落实采用的是 ocserv 的纯 TCP 方式( 443 端口).......能加好友吗?多向你请教
Vicer
2016-10-18 10:43:11 +08:00
@itiger88 你的这个问题,曾经遇到过,你需要的是一个国内的 DNS
itiger88
2016-10-18 14:32:41 +08:00
@Vicer 你说的国内 DNS 是什么意思? 要自建一个没有受到污染而且返回国内网址比较快地址解释吗?

刚刚我试过一个问题就是 无论是 采用 no-route 方式 还是 route 方式,拨号上去之后访问 www.163.com 都访问不了, 8.8.8.8 解释 www.163.comopthw.xdwscache.speedcdns.com [203.189.130.40]
必须采用全局路由指向 VPS 的方式才能访问到 www.163.com 不知你会不会这样?
而且在 ocserv 全局路由这种情况下,我在 IE 地址栏输入要访问的网址例如 www.taobao.com ,按了回车之后,浏览器足足要等 2-3 秒才会显示出内容(如果直接 ping 那网址不超过 100ms ),比不拨号时速度明显慢了,你会不会有这种现象?
Vicer
2016-10-18 16:21:21 +08:00
@itiger88 我给你测试一下我搭建的。

http://bbs.wfun.com/thread-953425-1-1.html
Vicer
2016-10-18 16:23:18 +08:00
@itiger88 你把所有设置还原,直接用我的试试。
ip.cnip138.com 或者 ipip.net
Vicer
2016-10-18 16:30:08 +08:00
Vicer
2016-10-18 17:34:17 +08:00
@itiger88 测试完告诉我,是不是你理想中的那样
itiger88
2016-10-18 22:44:57 +08:00
@Vicer 奇怪,我的华为 mate8 手机导入你的 https://free.vicer.xyz:6619/no-UserVPN.p12 报错,说安装失败,无法读取证书文件。 而该证书导入 win10 的就没问题,但是导入 win10 后用 CiscoAnyConnect 连接你的 2 个服务器都报错。 Connection attempt has failed 。 明天我回公司用公司网络再试下。
itiger88
2016-10-18 22:51:55 +08:00
@Vicer 而且我电脑只能解释到 kms.vicer.xyz 为 138.128.217.164 ,解释不到 free.vicer.xyz
itiger88
2016-10-18 22:52:38 +08:00
@Vicer 必须拨了 vpn 之后才能解释到 free.vicer.xyz [104.206.136.190]
Vicer
2016-10-18 23:43:54 +08:00
@itiger88 android 用 OpenConnect,AnyConnect 会有这个问题,所以不推荐。难道我的域名被墙了?
Vicer
2016-10-18 23:44:59 +08:00
@itiger88 PC 要用管理员权限运行,证书要导入到本地计算机。
itiger88
2016-10-19 12:36:19 +08:00
@Vicer 我按照下面的做法导入证书对不对? 我的系统是 windows10 ( cn_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9057083.iso )没有之前版本 vpn 设置中修改不了默认路由那 bug 。

第一步:下载你给的 CA 证书( no-UserVPN.p12 ),将证书存放在可以找到的任意位置,然后管理员权限运行命令"mmc"

第二步:点击文件--添加或删除管理单元,在可用管理单元中选择“证书”,点击添加,再选择“计算机帐户”,再点“本地计算机” 和“完成”按钮,最后点击“确定”按钮。

第三步:右键点击受信任的根证书颁发机构的证书--所有任务--导入,再点下一步,点击浏览选择在第一步中下载的证书文件,然后再点下一步,证书存储在“受信任的根证书颁发机构”,然后再点下一步完成。
Vicer
2016-10-19 13:40:42 +08:00
不是直接双击?然后,选择导入本地计算机?删除证书需要到 MMC 里删除。
AnyConnect 需要管理员权限运行,如果开机自启,先退出。

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

https://www.v2ex.com/t/306383

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

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

© 2021 V2EX