V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  itiger88  ›  全部回复第 1 页 / 共 1 页
回复总数  16
@Balthild
问题是我都是同一台手机,同一个 4G 环境,唯一不同就是 strongswan 的版本,难道 5.3.5 和 5.4.0/5.5.0/5.5.1 对 AES-256 加密方式有所区别?
cat /usr/local/etc/ipsec.conf
-------------------------
config setup
uniqueids=never

conn iOS_cert
keyexchange=ikev1
fragmentation=yes
left=%defaultroute
leftauth=pubkey
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=pubkey
rightauth2=xauth
rightsourceip=10.31.2.0/24
rightcert=client.cert.pem
auto=add

conn android_xauth_psk
keyexchange=ikev1
left=%defaultroute
leftauth=psk
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightauth2=xauth
rightsourceip=10.31.2.0/24
auto=add

conn networkmanager-strongswan
keyexchange=ikev2
left=%defaultroute
leftauth=pubkey
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=pubkey
rightsourceip=10.31.2.0/24
rightcert=client.cert.pem
auto=add

conn ios_ikev2
keyexchange=ikev2
ike=aes256-sha256-modp2048,3des-sha1-modp2048,aes256-sha1-modp2048!
esp=aes256-sha256,3des-sha1,aes256-sha1!
rekey=no
left=%defaultroute
leftid=${vps_ip}
leftsendcert=always
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=eap-mschapv2
rightsourceip=10.31.2.0/24
rightsendcert=never
eap_identity=%any
dpdaction=clear
fragmentation=yes
auto=add

conn windows7
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
left=%defaultroute
leftauth=pubkey
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=eap-mschapv2
rightsourceip=10.31.2.0/24
rightsendcert=never
eap_identity=%any
auto=add
我今天继续测试,在 centos6.7 mini iso 安装环境下, yum install 安装二进制包 ( strongswan-5.4.0-2.el6 ), 发现这版本对安卓手机的 psk 方式都兼容性同样不行,能拨号成功,但是 ping 外网 ping 不通,当然就不能上网。
@Vicer 上网查了一番,终于成功在手机导入证书了,在 2 个软件界面各自不同的地方导入法。现在利用你给的测试 vpn 地址测试过,我的手机没 root 的情况下真的不支持 no route 指令。明天测试下 custom-header 看行不!
@Vicer 华为 mate8 手机导入你的 https://free.vicer.xyz:6619/no-UserVPN.p12 报错,文件管理器点击安装,报“安装失败,无法读取证书文件”。 而该证书导入 win10 的就没问题,而我中午自己生成的证书文件 .p12 也导入不进我的安卓手机,这是什么原因呢? 你有没有试过,还是直接在 OpenConnect 1.11 指定这证书文件就好?
@Vicer 我一直都是用管理员权限运行 AnyConect 的。刚刚用公司联通的专线(广州)测试你的 2 个服务器,都能成功拨入,就是得直接双击导入.p12 证书文件(直接双击是导入到 MMC 的“证书”中的“本地计算机中”的“个人”,),之前上面的做法是我以前 IKEv2 证书的导入方式(导入到的是 MMC 中“证书”中的“本地计算机中”的“受信任的根证书颁发机构”),后者能拨号 IKEv2 ,但是不能拨号 ocserv 。。。
刚刚困扰我半天自己服务器证书搭建后,用 win10+证书登录不上同样是这个原因,证书文件导入方式错误!
当时 ocserv 报错为: Oct 19 14:07:09 xxxx ocserv[7783]: GnuTLS error (at worker-vpn.c:595): Error in the certificate.
特此记录给有心搞证书登录的同好知道。

另外 Vicer ,我现在是在香港阿里云上租用最便宜那款主机 8 美金 /月 /2T 流量 /30M 峰值带宽,打算给公司同事用,我后来改了 ocserv.conf 中的 DNS ,加入阿里云内部 10.x.x.x 的 DNS 地址,这个 DNS 没有被污染,而且解释国内网站比较好,比起 8.8.8.8 少了几十毫秒的延时呀(从 vps 过去 DNS 才 0.0x 毫秒), 使用 no-route 模式配置,电脑端用起来很好的体验效果, 163.com 等打开都很快(分别验证 www.ip138.combgp.he.net 成功显示不同 IP ),比起我昨天用别的地区的服务器测试好多了,真的是专门的到 VPS 最快的无污染的 DNS 比较好。

等下有空继续测试证书方式下在安卓手机无 root 情况下能否支持 no-route 方式,网上有文说不行。如果不行再测试 custom-header = "X-CSTP-Split-Exclude:123.58.180.0/255.255.255.0" 这种别的文章提到的方式
@Vicer 我按照下面的做法导入证书对不对? 我的系统是 windows10 ( cn_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9057083.iso )没有之前版本 vpn 设置中修改不了默认路由那 bug 。

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

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

第三步:右键点击受信任的根证书颁发机构的证书--所有任务--导入,再点下一步,点击浏览选择在第一步中下载的证书文件,然后再点下一步,证书存储在“受信任的根证书颁发机构”,然后再点下一步完成。
@Vicer 必须拨了 vpn 之后才能解释到 free.vicer.xyz [104.206.136.190]
@Vicer 而且我电脑只能解释到 kms.vicer.xyz 为 138.128.217.164 ,解释不到 free.vicer.xyz
@Vicer 奇怪,我的华为 mate8 手机导入你的 https://free.vicer.xyz:6619/no-UserVPN.p12 报错,说安装失败,无法读取证书文件。 而该证书导入 win10 的就没问题,但是导入 win10 后用 CiscoAnyConnect 连接你的 2 个服务器都报错。 Connection attempt has failed 。 明天我回公司用公司网络再试下。
@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 那我无法做到和你的环境一模一样了,手机不想 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 由于个人 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 生成的?---我感觉这点很关键,很可能是这个证书导致安卓系统有权限修改系统路由表
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1107 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.