V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
wonpn
V2EX  ›  VPS

同一 vps,为什么 ss 和 http 的速度差异好大,

  •  1
     
  •   wonpn · 2016-09-08 11:51:38 +08:00 · 2268 次点击
    这是一个创建于 2990 天前的主题,其中的信息可能已经有所发展或是发生改变。
    同一 vps ,搭建 ss 和 nginx ,
    随便甩一文件用 nginx 做服务器下载,速度至少 2MB/s
    但 ss 代理,无论下载还是 YouTube ,也就几百 KB/s
    什么原因?
    1 ,浏览器 http 下载多线程?
    2 , ss 服务器或 ss local 有一方性能差?
    3 , socks5 代理 http 比纯 http 本身有带宽损耗?
    4 , gfw ?
    5 ,其他思路?
    41 条回复    2016-09-10 17:58:47 +08:00
    DearTanker
        1
    DearTanker  
       2016-09-08 12:35:52 +08:00
    同样想知道。
    extreme
        2
    extreme  
       2016-09-08 12:42:33 +08:00   ❤️ 1
    加密解密损耗。
    解析性语言与编译性语言损耗。
    数据包封装损耗。
    daya
        3
    daya  
       2016-09-08 12:45:55 +08:00 via Android
    @extreme 语言那个可以忽略, ss local 和 ss server 都有 c 语言版的。
    defia
        4
    defia  
       2016-09-08 12:49:49 +08:00
    上面的答案都不对.我来告诉楼主,是因为 qos
    你可以试试用 ss 走 80(当然,这样你要关掉 nginx),443,25 等常用端口,立马快
    ivyswen
        5
    ivyswen  
       2016-09-08 12:52:43 +08:00 via Smartisan T1
    希望真是楼上说的那样。
    xiningxiao
        6
    xiningxiao  
       2016-09-08 12:55:47 +08:00
    @defia qos 是啥
    ShunYea
        7
    ShunYea  
       2016-09-08 13:11:21 +08:00 via Android
    不是说功夫网检测到无法解密的数据包( ss )就干扰嘛,即时有 2m 的速度也给你干扰成几十 k ,人为的。
    wonpn
        8
    wonpn  
    OP
       2016-09-08 13:12:36 +08:00 via Android
    @defia 就是走的 443 的端口, 80nginx 用
    wonpn
        9
    wonpn  
    OP
       2016-09-08 13:16:07 +08:00 via Android
    @ShunYea 我觉得有可能, youtube 到 vps ,速度十几 MB,vps 随便得文件到本地,也至少 2,3MB 。但 ss 一代理 YouTube 就不行了, google play 也不行,几百 M
    wonpn
        10
    wonpn  
    OP
       2016-09-08 13:16:53 +08:00 via Android
    @ShunYea 几百 K ,打错了
    wonpn
        11
    wonpn  
    OP
       2016-09-08 13:21:20 +08:00 via Android
    也有可能是线路的问题,手机联通 4G 一样轻松上 M ,但是联通的宽带就不行
    wonpn
        12
    wonpn  
    OP
       2016-09-08 13:25:51 +08:00 via Android
    @extreme ss local 是在 openwrt 上的,按说负载从来没到 0.1 ,我有空用电脑端试试
    Zao233
        13
    Zao233  
       2016-09-08 13:35:23 +08:00 via Android
    移动能跑满带宽
    arphone
        14
    arphone  
       2016-09-08 13:57:06 +08:00
    糟糕的网络体验,从 GFW 开始
    GhostFlying
        15
    GhostFlying  
       2016-09-08 14:26:45 +08:00 via Android
    Qos ,不仅是因为端口
    rockyou
        16
    rockyou  
       2016-09-08 14:46:10 +08:00
    Qos ,跟端口无关,协议内容识别的
    daya
        17
    daya  
       2016-09-08 15:09:45 +08:00 via Android
    @wonpn 跟端口无关吧,我以前用过 443 端口,速度跟用其他端口没有区别。
    csvw
        18
    csvw  
       2016-09-08 15:28:24 +08:00
    ls 的 ls 已经说了,比较低级的 qos 是根据端口,更高级的 qos 是根据内容识别,当然实际应该是混合搭配使用的
    TangMonk
        19
    TangMonk  
       2016-09-08 16:04:29 +08:00
    关注
    firstrealme
        20
    firstrealme  
       2016-09-08 16:15:40 +08:00 via Android
    搭建那么多没见过这样差距的 建议搞搞优化、试试其他加密方式、用混淆协议等
    arrow2015
        21
    arrow2015  
       2016-09-08 19:57:05 +08:00 via Android
    @wonpn 北京联通, ss 20-100kb/s. 强烈关注楼主的问题
    lairdnote
        22
    lairdnote  
       2016-09-08 21:39:42 +08:00
    改加密算法。 然后 看看 cpu 是不是 intel 的 支持 aes 吗
    看看是什么版本的 fast_open 开启了吗
    sysctl.conf 调整一下
    lairdnote
        23
    lairdnote  
       2016-09-08 21:40:20 +08:00
    ss 是加密的。。所以 Qos 很难识别
    diguoemo
        24
    diguoemo  
       2016-09-08 21:55:17 +08:00 via Android
    ss 在我的 panabit 流控里面识别到的都是未知流量或者未知 tcp 应用
    mxalbert1996
        25
    mxalbert1996  
       2016-09-08 22:33:14 +08:00 via Android
    @lairdnote 加密不等于没有特征,另外它只要识别出它可以放过的内容就行了。
    rtyurtyu
        26
    rtyurtyu  
       2016-09-08 22:44:06 +08:00
    @mxalbert1996
    多上点学不要张嘴就来, SS 当初建立的目的就是反特征识别
    为此不惜把连接都给去掉了
    任意时刻发出的包都是不带状态的,你给我特征一个看看
    wonpn
        27
    wonpn  
    OP
       2016-09-09 00:17:39 +08:00 via Android
    意思是 gfw ?或 isp 把我 ss 的部分包丢了?所以速度慢?
    mxalbert1996
        28
    mxalbert1996  
       2016-09-09 00:29:35 +08:00
    @rtyurtyu 说出这种话只能说明你的水平不够。。。丢个链接你自己看吧: https://github.com/breakwa11/shadowsocks-rss/issues/38 ,如果你能看得懂的话。
    rtyurtyu
        29
    rtyurtyu  
       2016-09-09 08:20:51 +08:00
    @mxalbert1996 这文章狗屁不通,简直让人笑掉大牙
    他说的那些情况是需要解密后才能判断出的
    然后他说对一个字节穷举 256 种可能。。。无语
    后面一堆人都在打他的脸,你居然拿这种白痴文来给我看
    你拿个不知道你哪儿钻出来的三脚猫水平的文章当真理,你不会就是那个 breakwa11 吧?
    懂不懂什么叫块加密?密钥通过其他信道分配你当是摆设?
    哪有给你穷举的可能,一个字节本来就 256 种状态,还 tm 穷举 256 种可能,逻辑都不通的狗屁东西
    稍微看一分钟 clowwindy 的原版代码都不会发出这种白痴言论
    你这种水平也敢来发言,简直有点不要脸

    东西都是摆在台面上的,让大家来评判好了
    mxalbert1996
        30
    mxalbert1996  
       2016-09-09 12:12:24 +08:00
    @rtyurtyu 东西就在那里,你自己不看我也没办法。
    rtyurtyu
        31
    rtyurtyu  
       2016-09-09 13:03:01 +08:00   ❤️ 1
    @mxalbert1996 我看了才回帖驳斥你的好吗,浪费我的时间
    而且你谈话的逻辑都没有?
    你 25f 说的是“放过的内容”,整个楼一直在谈的是流量检测,从抓的包里检测出包的类型
    你给我看的那篇文章不说思想错误,写的根本就不是流量检测,那 tm 是主动探查,抓的包在哪儿呢?
    不是一个层面的东西你也发,胡搅蛮缠是吗?
    我现在就问你给你一个 ss 包你把它的特征给我指出来?

    人没文化不要紧,但是没有逻辑就真的不可救药了
    没有逻辑的话别人无法跟你沟通,只能当你说话是放屁
    wonpn
        32
    wonpn  
    OP
       2016-09-09 13:33:41 +08:00 via Android
    @rtyurtyu 我试了各种加密,对速度基本没有影响。大神给个思路?只要走 ss ,最多 1MB 。 http 轻松 6MB 。
    wonpn
        33
    wonpn  
    OP
       2016-09-09 13:44:51 +08:00 via Android
    @rtyurtyu ss server 或 ss local 吞吐量不够?运营商的 Qos ?
    rtyurtyu
        34
    rtyurtyu  
       2016-09-09 14:18:15 +08:00
    @wonpn 我估计最有可能的原因是 socket 编程模型的问题
    ss 毕竟是个小众软件,编程者水平参差不齐,很多用 python 编写, python 里封装的 socket api 是易用性最高但是性能最差的 WSAAsyncSelect 模型,天然的无法达到带宽上限
    nginx 是受众极广的专业级 http server , c 开发,里面一定用上了完成端口,这是专业级软件不二之选,内核级传输也保证了带宽使用率
    这个差别就在这里

    你可以找找看有没有 c 开发的 ss server 用 IOCP 或者重叠 IO 模型的,那才能完全发挥出 server 端的实力
    Aniark
        35
    Aniark  
       2016-09-09 20:13:40 +08:00
    @rtyurtyu 也就是说, sslibev 速度能比 python 版 ss 要更好?
    wonpn
        36
    wonpn  
    OP
       2016-09-09 20:21:14 +08:00
    @Aniark 我测试->c 比 python 要快
    rtyurtyu
        37
    rtyurtyu  
       2016-09-09 21:03:03 +08:00
    @Aniark 编译型比解释型快是必然,但不是重点
    重点还是 socket 编程模型,这个区别是很大的,几倍的差距
    datocp
        38
    datocp  
       2016-09-10 06:45:52 +08:00 via Android   ❤️ 1
    qos 没有想象中那么复杂,它可以简单到有个 ip 地址 就可以构建一条 qos 限速,所以这个特征简单到只知道 ip 地址就够了,根本不需要关注 ss 到底是看起来像 http 还是 ssl 流量,一条规则就限速完毕。甚至有各种动态流量限速。
    按照 net speed 作者的描述电信线路的流量变化是由于线路太长 tcp 重发之类的问题,目前的 kcptun 就是来解决这些问题,相关描述太专业大家还是自己上作者主页看。
    放到实际环境电信+gfw 到底会出现什么问题?
    1 , linode 的测速 ip ,访问一次电信就能瞬间丢来 13 个 tcp reset ,这种情况说明电信有针对特定 ip 限制。
    2 ,同样将 socks5 端口应用在 tcp 53 ,敏感词就不会有 tcp reset 现象。
    3 ,出国流量比较神奇下行 100kb/s 不到,上行却可以全速 300kb/s ,这个问题到底是电信造成的,还是搬瓦工造成的不得而知,显然掌握 qos 技术是可以让有限的流量应用在更多的用户,它可以带来直接的经济效益。用电信经常是全速下载过会儿就 100kb/s 左右。看起来这个动态限速大家都差不多只有 100kb/s 。
    4 ,目前一些像 openvpn 之类的基本还是狂丢 tcpreset 。
    5 , udp 流量确实能带来相对 tcp 的高速感觉,像 ocserv , softether 。但是一旦安装在 openwrt 就需要实际测试,在 mtk7620 openwrt 15.0 cc 上, ocserv 的流量远远不如 softether 快,同样经过加密的 kcptun 也远远不如不加密的,这个可能主要还是受制 mips 那可怜的 cpu 性能。

    电信铁定有 qos 的存在, qos 也没有那么复杂它简单到只需要知道 ip 地址就足够了,至于现阶段的 kcptun 能用到多久还不知道,它也是目前最好的直接可以安装在 openwrt mtk7620 直接通过搬瓦工看 1080p 的。
    想安全就用 stunnel ,三张基于 pki 证书验证可以有效的防止线路中间人,想看 youtube 就用 kcptun 。 ss 的存在还是因为它有移动客户端吧。
    wonpn
        39
    wonpn  
    OP
       2016-09-10 12:32:50 +08:00
    @datocp 感谢这么详细的回复,
    我是联通哈,电信什么情况不知道了。
    openwrt (网件 R6100)上 ss 测试比 pc ss 要慢,当然 pc ss 也跑不满带宽,一半都不到
    我这应该没有基于 ip 限速的 qos ,因为 pc 上 wget VPS 上的文件,速度跑满宽带( openwrt 上 wget 又慢了,估计走 ss 了)
    我去努力看看各种协议和 ss 源码吧
    ShunYea
        40
    ShunYea  
       2016-09-10 15:38:40 +08:00 via Android
    @wonpn 看过一个所谓的内部人士透露的,反正我是信了。
    wonpn
        41
    wonpn  
    OP
       2016-09-10 17:58:47 +08:00 via Android
    @ShunYea what
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2704 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:25 · PVG 20:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.