Ocserv 的 TCP 加速问题

2015-02-23 13:41:15 +08:00
 jaleo

VPS装了Ocserv、SS和LotServer,Lotserver的配置文件里accif="eth0 vpns0",对两个接口都进行加速,
但vpns0这个接口由Ocserv产生,但在anyconnect断开连接后就消失了,因此每次连接anyconnect,都得在服务器上重新加载Lotserver的配置文件,否则Lotserver不会对vpns0接口加速。
我对Linux不熟悉,有什么办法可以让vpns0接口固定下来?

2434 次点击
所在节点    VPS
43 条回复
kkxxxxxxx
2015-03-10 10:17:47 +08:00
@jaleo Vultr JP
jaleo
2015-03-10 10:56:43 +08:00
@kkxxxxxxx 那不会呀,我在vultr里也装过了。你有没有在ocserv的配置文件里设置disconnect-script的脚本路径?
kkxxxxxxx
2015-03-10 17:10:22 +08:00
@jaleo 开和关路径都有添加。中午的时候不知怎么的VPS直接PING不到了,服务器后台查看好好的,以为IP被墙,马上又去开通了台,弄好新的后,随手把旧的重启下居然又恢复了。。。
我把我设置的步骤写下你帮我看下哪错了。

1.vi /etc/ocserv/ocserv-script
#!/bin/sh
wanif=$(ip a|grep vpns|grep inet|awk '{print $NF}')
sed -i "s/^accif=.*\$/accif=\"eth0 $(echo $wanif)\"/" /appex/etc/config
/appex/bin/lotServer.sh reload

2.chmod +x /etc/ocserv/ocserv-script

3.vi /etc/ocserv/ocserv.conf
connect-script = /etc/ocserv/ocserv-script
disconnect-script = /etc/ocserv/ocserv-script

4.systemctl restart ocserv
jaleo
2015-03-10 20:57:10 +08:00
@kkxxxxxxx 频繁吗?每天都会发生?
kkxxxxxxx
2015-03-10 23:02:22 +08:00
@jaleo 使用lotServer加速VPNS0的话,AnyConnect经常掉线后没连上去
jaleo
2015-03-11 16:40:47 +08:00
@kkxxxxxxx 我是用网上的centos 7 一键脚本,偶尔会发生你这种情况,一周出现一次,还在继续观察中。但像你这样频繁,估计有其它的问题了。
kkxxxxxxx
2015-03-12 11:28:35 +08:00
@jaleo 我也是一键脚本...好吧,我慢慢折腾配置去
kkxxxxxxx
2015-03-20 01:01:54 +08:00
@jaleo 你的Anyconnect是否只有一个用户在使用
jaleo
2015-03-20 09:52:24 +08:00
@kkxxxxxxx 有2个人使用,我自己也测试过 更多的人数用 我没有试过 你的服务器用的人很多?
kkxxxxxxx
2015-03-20 11:26:47 +08:00
@jaleo
脚本是在AnyConnect启动的时候触发lotServer 添加vpns0加速更新配置,
关掉AnyConnect再次触发lotServer取消vpns0加速再更新一次配置.
(看不懂脚本,不晓得是AnyConnect开关来触发,还是vpns0的出现消失来触发.)

iOS设备在锁屏VPN掉线的情况下,查询服务器状态,vpns0也是跟着消失的.
iOS解锁恢复vpn连接,,vpns0出现。

那么,在第一个iOS设备掉线的情况下,第二台iOS设备账号启动AnyConnect,
会生成vpns1,然后更新lotServer配置,因此时配置中已保留对vpns0的加速,但vpns0因锁屏掉线并不存在,
导致lotServer配置报错无法启动.AnyConnect启动无法正解执行脚本也无法正常连接.

不晓得分析得对不对
jaleo
2015-03-20 15:32:43 +08:00
@kkxxxxxxx

我测试了,是这样的:
1、IOS-1连接anyconnect,tun接口有vpns0。lotserver修改配置accif="eth0 vpns0 "。
2、IOS-1锁屏,anyconnect断开,vpns0消失,lotserver修改配置accif="eth0 "。
3、IOS-2连接anyconnect,tun接口生成vpns0。lotserver修改配置accif="eth0 vpns0 "。
4、IOS-1解锁后,再次连接anyconnect,tun接口有vpns0 vpns1。lotserver修改配置accif="eth0 vpns0 vpns1 "。
youngx
2015-06-01 02:30:28 +08:00
请教大神有什么用锐速能做到同时加速ss以及anyconnect呢?
开启锐速,SS速度飞快,anyconnect极慢
关闭锐速,SS比较慢,anyconnect极快。(Ocserv有用脚本,在连接和断开时候刷新ssserver配置)

想请问高人有没有两全其美的办法。
jaleo
2015-07-12 22:40:31 +08:00
@youngx 有这样的问题?下次我试试看
xy2938
2015-08-04 18:05:48 +08:00
想问一下,在disconnect的时候,脚本没有跑怎么办,锐速后台的log是显示appex down, appex del
jaleo
2015-08-04 22:27:16 +08:00
@xy2938 是什么主机 linode吗?linode的vps 执行disconnect脚本有问题
xy2938
2015-08-04 23:02:33 +08:00
ultravps廉价鸡KVM,不过应该是一样的,connect的时候应该是上去了,速度能跑满带宽。
但是当要断线的时候,会提示unregister_netdevice: waiting for ocserv-vpn0 to become free. Usage count = 1, ocserv-vpn0是我起的设备名,然后把ocserv的LOG开起来,看到的是

Aug 4 14:04:55 ocserv[10140]: worker[phone]: x.x.x.x sent periodic stats (in: 151753, out: 3025091) to sec-mod
Aug 4 14:04:55 kernel: [13136.276119] appex: is down
Aug 4 14:04:55 ocserv[10105]: main[phone]: x.x.x.x:61259 command socket closed
Aug 4 14:04:55 ocserv[10105]: main[phone]: x.x.x.x:61259 user disconnected
Aug 4 14:04:55 ocserv[10105]: main[phone]: x.x.x.x:61259 sending msg sm: session close to sec-mod

感觉应该是脚本根本跑不到,锐速的内核直接崩了,去看了代码,应该是ocserv把worker的相关网卡结构先释放了,然后才跑脚本;但是锐速在还没有跑脚本之前,就认为这个网卡down了,结果后面不会去跑这个脚本里面的东西。
但是如果这个时候我在命令行直接运行这段脚本,锐速立马就正常了,所以我估计是锐速的执行卡住了,不知道有没有大侠能去ocserv那边反馈一下"比如说一开始接收到client的断开请求就执行脚本,而不是先释放虚拟网卡"。不过看情况好像他们是说安全模块(sec-mod)、worker以及主函数是分开的,所以也可能他们会不愿意改,反正我是不想去看这么长的代码了,也看不懂。
jaleo
2015-08-04 23:08:55 +08:00
@xy2938 这个情况和Linode的一样,当时我试过centos、ubuntu的不同版本,都有问题,可能与Linode的内核不兼容有关。在其它使用发行版内核的vps上都正常。
xy2938
2015-08-04 23:25:58 +08:00
@jaleo 你确定其他内核都可以?我这边装的是ubuntu14.04lts的,断开链接才有的问题,应该不是内核的关系吧,况且内核是可以换的,linode也支持换内核,还有官方的文档,你可以查一下断开没有问题的内核版本号,然后试一下更换内核会不会有问题?
用uname -r 查到的我的内核号: 3.13.0-24-generic,锐速的版本是3.10.61.0
TSOM
2016-03-08 11:05:45 +08:00
按照上面的脚本试了,没有加速效果。在 AnyConncet 连接以后手动添加网卡并重启锐速也没有用。请问各位的 Ocserv 加速现在正常吗?
jaleo
2016-03-08 11:41:11 +08:00
@TSOM
7 月 12 日更新后的脚本 我一直是有效的 只在 centos 7.x 上试过

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

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

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

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

© 2021 V2EX