V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
opumps
V2EX  ›  问与答

请教:如何绕过宽带商内部的文件缓存

  •  
  •   opumps · 2016-04-18 23:45:57 +08:00 · 4002 次点击
    这是一个创建于 3168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如长宽:你下载一个*****.zip 它会给你自动加 10.0.0.1/*****.zip 结果这个文件是老版本的,或者已损坏的? 请问怎么才能解决?

    14 条回复    2016-04-19 23:51:05 +08:00
    htfy96
        1
    htfy96  
       2016-04-18 23:48:47 +08:00 via Android
    .zip?time=xxx
    maskerTUI
        2
    maskerTUI  
       2016-04-18 23:50:47 +08:00
    vpn
    aprikyblue
        3
    aprikyblue  
       2016-04-18 23:55:48 +08:00 via Android
    1l+1 ,如果按参数不同缓存的话。
    或者别让他知道 url 不就行了,各种方式,挂个代理之类,包括 fq 的也可以用上。。
    yeyeye
        4
    yeyeye  
       2016-04-19 00:35:54 +08:00
    忘记谁家的下载地址是这样的
    完美防止缓存

    xxx.com/xxx/3.4/proram.exe

    xxx.com/xxx/3.5/proram.exe
    lessate2
        5
    lessate2  
       2016-04-19 03:31:00 +08:00 via Android
    马克一下
    看看之后有木有解决办法
    gamexg
        6
    gamexg  
       2016-04-19 08:16:53 +08:00   ❤️ 1
    防运营商 HTTP 劫持功能
    https://github.com/GameXG/TcpRoute2

    拆包反劫持功能

    通过拆分 http 请求到多个 tcp 包来实现简易 http 反劫持功能,只能应付简单的 http 劫持。 通过 SplitHttp 选项开启,默认关闭。 注意:部分杀毒软件、防火墙会重组 http 请求 tcp 包,造成这个功能无效。

    基本不会造成性能损耗。

    实现原理:当目标端口是 80 时,发出的请求一旦包含 GET 、 POST 、 HTTP 、 HOST 则会被拆分到多个 TCP 包发送。

    ttl 反劫持功能

    ttl 反劫持是独立的程序,需要单独启动 ttl 反劫持程序,并将直连线路的 sleep 设置为 10 至 50 之间的值。

    实现原理:当发现 http 连接建立时,将会发送错误数据、连接重置命令混淆 http 连接。通过设置 ttl 值使得错误数据、重置命令不会到达目标网站,只会在网络中传递,经过并干扰可能存在的 http 劫持系统。

    sleep 的目的是建立连接后不立刻发送数据,而是等待 ttl 反劫持程序发送混淆内容后再发送实际数据。 一般 ttl 反劫持程序发送混淆数据的耗时为 10-30 毫秒, sleep 设置为大于这个值即可。

    ttl 反劫持程序地址: https://github.com/GameXG/ProxyClient/tree/master/ttl
    Love4Taylor
        7
    Love4Taylor  
       2016-04-19 08:27:21 +08:00 via Android   ❤️ 1
    @yeyeye 但是这玩意防不了损坏,第一次缓存的如果有问题那就惨了.所以全局代理才是王道
    yeyeye
        8
    yeyeye  
       2016-04-19 08:58:55 +08:00   ❤️ 1
    @Love4Taylor 如果是网站方 那你用 https 吧 没人能劫持 也不能强制跳转 如果是用户方 除了代理没办法了
    shiny
        9
    shiny  
       2016-04-19 09:03:58 +08:00   ❤️ 1
    记得 Kernel Panic 里讲,长宽的缓存是根据主机名 + 文件名的方式缓存的。
    可以考虑用 https 或者文件名加版本号(不要用 ?)
    clino
        10
    clino  
       2016-04-19 09:13:02 +08:00   ❤️ 1
    https 不就行了吗?

    @yeyeye 为什么这样的 url 能防缓存?
    yeyeye
        11
    yeyeye  
       2016-04-19 09:21:31 +08:00
    @clino 因为不加密 就可以篡改中间的数据

    心情好帮你改成缓存文件 心情不好把你密码全部记下来存起来

    心情好的时候给你一个损坏的文件 心情不好的时候把你的信用卡信息记起来

    所以说加密很重要
    clino
        12
    clino  
       2016-04-19 09:56:04 +08:00
    @yeyeye 你没回答我的问题
    不过我大概了解你的意思 你的意思其实不是防缓存而是防止楼主出现的这种问题吧
    zingl
        13
    zingl  
       2016-04-19 11:48:44 +08:00
    客户端的事情和服务器端的事情不要搅在一起
    yeyeye
        14
    yeyeye  
       2016-04-19 23:51:05 +08:00
    @clino
    对方缓存文件 必然是根据网址来缓存的 但是有的下载地址是一直不变的 版本更新了 官方网址还是以同一个地址作为更新地址 那么服务商可能缓存了那个文件 用户就会下载到旧版本的 我这个方式其实和换一个文件名意义是一样的 网址变了 就算缓存 也是缓存当前的这个版本 不会下载到旧版本 也不会下载到其他版本 嗯 这样还不用改文件名 体验友好 当然了 也可以一个 IP 一个网址用网址重写功能重写一下都指向同一个文件就可以了

    https 既能防止服务商劫持 也能防止服务商缓存 两全其美
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 09:26 · PVG 17:26 · LAX 01:26 · JFK 04:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.