VPS装了Ocserv、SS和LotServer,Lotserver的配置文件里accif="eth0 vpns0",对两个接口都进行加速,
但vpns0这个接口由Ocserv产生,但在anyconnect断开连接后就消失了,因此每次连接anyconnect,都得在服务器上重新加载Lotserver的配置文件,否则Lotserver不会对vpns0接口加速。
我对Linux不熟悉,有什么办法可以让vpns0接口固定下来?
1
jaleo OP 经过推特网友指点,终于搞定了Cisco anyconnect TCP加速。
1. 随便在某个目录下建一个脚本 比如ocserv-script,内容: #!/bin/sh /appex/bin/lotServer.sh reload 2. chmod +x ocserv-script 3. vi /usr/local/etc/ocserv/ocserv.conf 找到 #connect-script = /scripts/ocserv-script 修改为 connect-script = ocserv-script (此处填写脚本的实际路径) 4. systemctl stop ocserv systemctl start ocserv 5. vi /appex/etc/config 修改为 accif="eth0 vpns0" ok了。只要移动端的anyconnect连接上,就会自动执行脚本,重新加载Lotserver配置文件。 以上在Centos 7系统通过。 希望对大家有用。 现在的ipad上有越狱版的SS和anyconnect,单位100M电信下,youtube可以5MB/s。 |
2
hejiaxian 2015-02-25 20:55:23 +08:00
其实ac只要udp不出问题,都是用发的udp包,除非你在ocserv.conf下把udp端口注释掉。
|
3
jaleo OP @hejiaxian UDP端口没注释掉,这么说Lotserver对UDP也有效?不加速的话速度真的很慢,家里只有100-200KB/s,单位里最多500多KB/s,
|
4
hejiaxian 2015-02-25 22:25:37 +08:00
@jaleo 锐速只对tcp有效吧,虽然配置文件里面有个选项可以配置对udp加速,但是据说是没用的,我自己没试过。我锐速就对ac没效,同一台vps,我ss能跑60+mbps,但是ac就大概20Mbps左右。
|
5
jaleo OP @hejiaxian 有些服务器装了加速软件后,速度会变慢,按照网上的教程,把rsc="1"打开速度就快了。
关于加速软件为何可以对UDP有效,我也不清楚。但速度确实挺快的。 |
7
iCodex 2015-03-05 01:00:26 +08:00
接口写死是会出问题的。建议写多一个读取网卡接口的判断,比如下面这样,放到一个文件里,赋予执行权限
``` wanif=$(ip a|grep vpns|grep peer|awk '{print $NF}') sed -i "10s/^accif=.*$/accif=\"eth0 $(echo $wanif)\"/" /serverspeeder/etc/config sleep 1 /serverspeeder/bin/serverSpeeder.sh reload ``` connect-script = /usr/local/sbin/Speeder_reload.sh disconnect-script = /usr/local/sbin/Speeder_reload.sh 然后连接上的来执行一次,断开也执行一次 |
8
iCodex 2015-03-05 02:25:36 +08:00
后来才看到有一个更简单的办法。直接执行/serverspeeder/bin/setConfig.sh wanIf vpns0即可
|
9
jaleo OP @iCodex 谢谢你的建议,这个脚本不错。
我Linux新手,有几个问题不明白。 1、脚本里的wanif会获取所有的tun接口,对吗? 2、sed -i 的用法不熟悉,10s什么作用? -i 后为何是双引号?我在centos 7里测试,只能单引号成功,比如sed -i 's/accif="eth0"/accif="eth0 vpns0"/g' /appex/etc/config 3、cisco anyconnect断开后,vpns*接口会消失,这个disconnect脚本的执行是在接口消失之前还是之后? |
10
jaleo OP @iCodex 我把grep后面的peer改成inet,另外10s是不是第10行的意思?,我改成了s。
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 成功了,这样多人使用anyconnect客户端加速也没有问题了。 非常感谢。 |
12
jaleo OP @kkxxxxxxx 可以的,上面的脚本就是这个效果。在ocserv的配置里修改connect-script和disconnect-script的路径为脚本的路径即可。
|
13
kkxxxxxxx 2015-03-09 16:34:39 +08:00
@jaleo 我按你最后面这个内容建了个文件,chmod +x,然后 ocserv配置里添加路径。(放在哪里都不影响吧)。客户端重新连接anyconnect,再./lotServer status查看,还是只有eth0的信息。这样算执行了么
|
18
kkxxxxxxx 2015-03-10 09:10:44 +08:00
@jaleo 现在有个问题是运行一段时间lotserver就当掉了,启动报错:Device "vpns0" does not exist(有时候是vpns1...)
|
19
kkxxxxxxx 2015-03-10 09:13:45 +08:00
@jaleo 似乎是anyconnect客户端断开后,有时候没有执行脚本,/appex/etc/config里仍然保留了断开的端口,导致lotServer服务无法加载配置中止
|
22
jaleo OP @kkxxxxxxx 那不会呀,我在vultr里也装过了。你有没有在ocserv的配置文件里设置disconnect-script的脚本路径?
|
23
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 |
26
jaleo OP @kkxxxxxxx 我是用网上的centos 7 一键脚本,偶尔会发生你这种情况,一周出现一次,还在继续观察中。但像你这样频繁,估计有其它的问题了。
|
30
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启动无法正解执行脚本也无法正常连接. 不晓得分析得对不对 |
31
jaleo OP @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 "。 |
32
youngx 2015-06-01 02:30:28 +08:00
请教大神有什么用锐速能做到同时加速ss以及anyconnect呢?
开启锐速,SS速度飞快,anyconnect极慢 关闭锐速,SS比较慢,anyconnect极快。(Ocserv有用脚本,在连接和断开时候刷新ssserver配置) 想请问高人有没有两全其美的办法。 |
34
xy2938 2015-08-04 18:05:48 +08:00
想问一下,在disconnect的时候,脚本没有跑怎么办,锐速后台的log是显示appex down, appex del
|
36
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以及主函数是分开的,所以也可能他们会不愿意改,反正我是不想去看这么长的代码了,也看不懂。 |
37
jaleo OP @xy2938 这个情况和Linode的一样,当时我试过centos、ubuntu的不同版本,都有问题,可能与Linode的内核不兼容有关。在其它使用发行版内核的vps上都正常。
|
38
xy2938 2015-08-04 23:25:58 +08:00
@jaleo 你确定其他内核都可以?我这边装的是ubuntu14.04lts的,断开链接才有的问题,应该不是内核的关系吧,况且内核是可以换的,linode也支持换内核,还有官方的文档,你可以查一下断开没有问题的内核版本号,然后试一下更换内核会不会有问题?
用uname -r 查到的我的内核号: 3.13.0-24-generic,锐速的版本是3.10.61.0 |
39
TSOM 2016-03-08 11:05:45 +08:00
按照上面的脚本试了,没有加速效果。在 AnyConncet 连接以后手动添加网卡并重启锐速也没有用。请问各位的 Ocserv 加速现在正常吗?
|