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

请教如何科学地从 VPS 上搬文件下来

  •  
  •   lulitao1997 · 2017-11-28 16:11:24 +08:00 · 12948 次点击
    这是一个创建于 2551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 scp 经常在下载到 500mb 左右的时候断开连接,然后就 ssh 不上去了,大概持续几个小时,猜测是端口被封了?

    使用 python -m SimpleHTTPServer 也有这个问题

    62 条回复    2017-11-29 18:23:34 +08:00
    biglih
        1
    biglih  
       2017-11-28 16:18:38 +08:00
    sftp
    DoraJDJ
        2
    DoraJDJ  
       2017-11-28 16:19:12 +08:00
    一直用 sftp
    shiny
        3
    shiny  
       2017-11-28 16:20:54 +08:00
    文件尺寸达到几个 G 的时候用 http 接口速度会更快点。
    benjix
        4
    benjix  
       2017-11-28 16:22:25 +08:00 via iPhone
    跑个 Nginx 用 HTTP
    lulitao1997
        5
    lulitao1997  
    OP
       2017-11-28 16:23:48 +08:00
    @shiny 问题是经常下载到一半就断连了,之后就长时间无法重连
    dvbuzhidao1
        6
    dvbuzhidao1  
       2017-11-28 16:28:46 +08:00 via Android
    那你就分卷压缩再合并
    zgx030030
        7
    zgx030030  
       2017-11-28 16:29:40 +08:00
    用 sftp、安装 ftp
    lulitao1997
        8
    lulitao1997  
    OP
       2017-11-28 16:30:36 +08:00
    有无防止被封端口的方法?使用 ss 有效吗
    Wolther47
        9
    Wolther47  
       2017-11-28 16:31:18 +08:00 via iPhone
    如果经常要搬来搬去的话,我觉得装个 Resilio Sync 比较省事
    hello123vvv
        10
    hello123vvv  
       2017-11-28 16:31:43 +08:00
    简易 python web 服务,做下载文件用
    8012,用 python 登陆的网站目录,提供下载文件服务.使用后停止 python web 服务.

    from os import curdir,sep
    from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
    class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
    try:
    f=open(curdir+sep+self.path)
    self.send_response(200)
    self.send_header('Content-type','application/octet-stream')
    self.end_headers()
    self.wfile.write(f.read())
    f.close()
    except IOError:
    self.send_error(404, 'File Not Found: %s' % self.path)

    def main():
    try:
    server = HTTPServer(('',8012),MyHandler)
    print 'welcome to the ,machine...',
    print 'Press ^C once or twice to quit'
    server.serve_forever()
    except KeyboardInterrupt:
    print '^C received,shutting down server'
    server.socket.close()

    main()
    flyz
        11
    flyz  
       2017-11-28 16:32:07 +08:00 via Android   ❤️ 1
    http 然后用多线程下载工具,很带劲。
    cxh116
        12
    cxh116  
       2017-11-28 16:32:15 +08:00
    rsync 恢复了再继续同步
    blankme
        13
    blankme  
       2017-11-28 16:32:45 +08:00
    @lulitao1997
    一直用 rsync+ss 传文件,不担心断开,速度也快。
    tscat
        14
    tscat  
       2017-11-28 16:33:37 +08:00
    Resilio 同步下来就好
    lulitao1997
        15
    lulitao1997  
    OP
       2017-11-28 16:34:16 +08:00
    @blankme rsync 怎么走 ss 呢,能详细说说吗,谢谢。
    blankme
        16
    blankme  
       2017-11-28 16:36:26 +08:00   ❤️ 1
    @lulitao1997
    搜下 proxychains
    tinkerer
        18
    tinkerer  
       2017-11-28 16:38:01 +08:00
    @lulitao1997 cyberduck 使用 sftp, 设置代理
    nullen
        19
    nullen  
       2017-11-28 16:39:10 +08:00
    rsync
    jy02201949
        20
    jy02201949  
       2017-11-28 16:41:08 +08:00
    还是上 nginx 吧,fdm 多线程下载 http 才是最快最稳的搬运方式,还能断点续传
    czkwg8
        21
    czkwg8  
       2017-11-28 16:41:30 +08:00
    http 或 ftp
    zlfzy
        22
    zlfzy  
       2017-11-28 17:06:33 +08:00
    一次性下载? tar 打包 nginx 下载不就完了?
    lulitao1997
        23
    lulitao1997  
    OP
       2017-11-28 17:07:19 +08:00   ❤️ 1
    @blankme 试了下,这个方法可以防止被封端口,感谢
    CreSim
        24
    CreSim  
       2017-11-28 17:27:55 +08:00 via Android
    直接 caddy 也可以解决这个问题。。
    CEBBCAT
        25
    CEBBCAT  
       2017-11-28 17:37:11 +08:00
    Nginx,支持断点续传
    clino
        26
    clino  
       2017-11-28 17:37:59 +08:00
    rsync -P 可断点
    ZRS
        27
    ZRS  
       2017-11-28 17:38:02 +08:00
    nginx
    kmahyyg
        28
    kmahyyg  
       2017-11-28 17:38:49 +08:00 via Android
    我用的 caddy,他的 filemanager 很方便
    zzj0311
        29
    zzj0311  
       2017-11-28 17:40:23 +08:00 via Android
    内存够用上 Dropbox 啊~
    yearliny
        30
    yearliny  
       2017-11-28 17:49:25 +08:00 via Android
    可以在 VPS 上上传到国内网盘,然后从网盘下载
    odirus
        31
    odirus  
       2017-11-28 18:18:47 +08:00
    MEGA
    gamexg
        32
    gamexg  
       2017-11-28 18:20:24 +08:00
    备份用途,用的 rsync+crontab,没关注速度,反正是后台跑。
    DylanRing0
        33
    DylanRing0  
       2017-11-28 19:43:55 +08:00   ❤️ 2
    如果传输文件较小(单文件不超过 8GiB ):
    传输单文件,开个 webserver 用 aria2 之类的多线程下载工具拉下来
    然后使用这篇文章说的法子做校验 https://orzfly.com/html/repair-file-chunks-with-aria2.html
    传输多文件,开个 webserver 启用 index 用 IDM 抓取网页 + rsync 校验
    (写个脚本把文件下载链接和校验哈希都导出到 aria2 其实更快些)

    如果传输尺寸较大,或本地网络非常不稳定:
    Resilio Sync 或 自己生成种子文件用一般的 BT 工具传输
    (不用 rsync 是因为这东西传大文件对内存消耗极大,且传输极有可能中断,开了 append 又不会好好校验)
    huangunic0rn
        34
    huangunic0rn  
       2017-11-28 20:12:13 +08:00 via Android
    http Server..然后 wget -c 断点续传
    29EtwXn6t5wgM3fD
        35
    29EtwXn6t5wgM3fD  
       2017-11-28 20:26:06 +08:00 via iPhone
    caddy
    wengjin456123
        36
    wengjin456123  
       2017-11-28 22:33:12 +08:00
    我使用 scp 命令下载一些小文件,大的没尝试
    artandlol
        37
    artandlol  
       2017-11-28 22:44:22 +08:00 via iPhone
    改下内核参数
    Scp 的加个限速的 -l
    7DLNU56W
        38
    7DLNU56W  
       2017-11-28 23:06:22 +08:00
    科学的?正常下载就可以呀,用 FTP 或者 HTTP 的方法啦~
    dd99iii
        39
    dd99iii  
       2017-11-28 23:20:49 +08:00
    bbr + nginx
    dzxx36gyy
        40
    dzxx36gyy  
       2017-11-29 01:35:34 +08:00
    丢个 filemanager 上去,单文件无依赖,然后就随你怎么搞了
    inflationaaron
        41
    inflationaaron  
       2017-11-29 02:04:11 +08:00 via iPhone
    Node 装个 http-server 然后 aria2 下来。还可以试试用 UTP 协议
    Technetiumer
        42
    Technetiumer  
       2017-11-29 02:20:43 +08:00 via Android
    不要用 py 的 server

    http server 一定要用 Nginx
    Osk
        43
    Osk  
       2017-11-29 08:44:01 +08:00 via Android
    py 的 server 好像是单线程的(?),所以一旦中断就得等 server 超时关掉连接,不然连不上。
    直接配下 nginx,客户端随便找个支持多线程下载+续传的就很快了,直接跑 80 端口无所畏惧。敏感文件就 gpg 加密一下。
    备选:lighttpd,还能很容易的配个访问密码,防下误入的还是可以的。
    jasontse
        44
    jasontse  
       2017-11-29 08:48:15 +08:00 via iPad
    万不可用 SCP 传输大文件,会被当成 ssh 爬墙被封掉的。
    PopeyeLau
        45
    PopeyeLau  
       2017-11-29 09:03:41 +08:00 via iPhone
    直接用 Go 建一个 File Server.
    jingniao
        46
    jingniao  
       2017-11-29 09:12:12 +08:00 via Android
    bbr nginx,还得配 https,http 被劫持得太肆无忌惮了,然后用下载工具多线程下载
    skyfore
        47
    skyfore  
       2017-11-29 09:27:36 +08:00
    发邮件?发到国内邮箱怎么样?
    liuzhaowei55
        48
    liuzhaowei55  
       2017-11-29 09:59:48 +08:00
    rsync
    letuslinux
        49
    letuslinux  
       2017-11-29 10:05:17 +08:00
    nc
    Actrace
        50
    Actrace  
       2017-11-29 10:13:02 +08:00
    给你的 vps 的 ssh 挂个 vxtrans,满速拉回来。
    ilili
        51
    ilili  
       2017-11-29 10:17:07 +08:00
    装个 apache,然后 aria2 或者 idm 拖回来
    可选步骤:使用电信缓存服务器,http://yourvps/file 改成 http://ctcache/yourvps/file
    wekw
        52
    wekw  
       2017-11-29 10:45:05 +08:00
    Rsync 才是王道,实测好用,会自动断线续传,会自动对比内容并在文件末尾新增内容。
    xratzh
        53
    xratzh  
       2017-11-29 10:52:53 +08:00
    最快且方便的就是装 nginx,更方便的就是搭建宝塔这类面板,然后拖下来。速度慢上魔改 bbr 满速跑。
    isCyan
        54
    isCyan  
       2017-11-29 11:03:44 +08:00 via Android
    http 本身就支持断点重传,搞个 aria 或者 idm 就行
    sutra
        55
    sutra  
       2017-11-29 13:25:58 +08:00
    rsync --bwlimit=
    shenqi
        56
    shenqi  
       2017-11-29 13:32:41 +08:00
    http + 百度云 + 百度云客户端下载。
    yuriko
        57
    yuriko  
       2017-11-29 13:52:43 +08:00
    我想起以前推到 github 上再用本地下下来的操作……
    BlueFly
        58
    BlueFly  
       2017-11-29 14:27:35 +08:00
    @dzxx36gyy 正有需要,方便给一个吗?
    wangfei324017
        59
    wangfei324017  
       2017-11-29 17:08:59 +08:00
    我是装了 lnmp.org 一键安装了个 lnmp,然后自带的 pureftpd 起一下,配置下 ftp 账号,然后用 filezilla 或者其他 ftp 客户端就可以拖文件下来了。文件小或少就直接下载,文件多就 tar 压缩下在下载。
    8355
        60
    8355  
       2017-11-29 18:14:29 +08:00
    sftp 或者 rsync 如果特别大的文件最好是中转一下.
    hoyixi
        61
    hoyixi  
       2017-11-29 18:21:42 +08:00
    开个 https 服务,然后各种工具都可以上了,若是速度还是慢, 让迅雷离线,然后从迅雷下,不过需要迅雷离线 vip ~
    lyhiving
        62
    lyhiving  
       2017-11-29 18:23:34 +08:00 via Android
    HTTP 正解
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.