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

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

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

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

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

    62 回复  |  直到 2017-11-29 18:23:34 +08:00
        1
    biglih   2017-11-28 16:18:38 +08:00
    sftp
        2
    DoraJDJ   2017-11-28 16:19:12 +08:00
    一直用 sftp
        3
    shiny   2017-11-28 16:20:54 +08:00
    文件尺寸达到几个 G 的时候用 http 接口速度会更快点。
        4
    benjix   2017-11-28 16:22:25 +08:00 via iPhone
    跑个 Nginx 用 HTTP
        5
    lulitao1997   2017-11-28 16:23:48 +08:00
    @shiny 问题是经常下载到一半就断连了,之后就长时间无法重连
        6
    dvbuzhidao1   2017-11-28 16:28:46 +08:00 via Android
    那你就分卷压缩再合并
        7
    zgx030030   2017-11-28 16:29:40 +08:00
    用 sftp、安装 ftp
        8
    lulitao1997   2017-11-28 16:30:36 +08:00
    有无防止被封端口的方法?使用 ss 有效吗
        9
    Wolther47   2017-11-28 16:31:18 +08:00 via iPhone
    如果经常要搬来搬去的话,我觉得装个 Resilio Sync 比较省事
        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()
        11
    flyz   2017-11-28 16:32:07 +08:00 via Android   ♥ 1
    http 然后用多线程下载工具,很带劲。
        12
    cxh116   2017-11-28 16:32:15 +08:00
    rsync 恢复了再继续同步
        13
    blankme   2017-11-28 16:32:45 +08:00
    @lulitao1997
    一直用 rsync+ss 传文件,不担心断开,速度也快。
        14
    tscat   2017-11-28 16:33:37 +08:00
    Resilio 同步下来就好
        15
    lulitao1997   2017-11-28 16:34:16 +08:00
    @blankme rsync 怎么走 ss 呢,能详细说说吗,谢谢。
        16
    blankme   2017-11-28 16:36:26 +08:00   ♥ 1
    @lulitao1997
    搜下 proxychains
        18
    tinkerer   2017-11-28 16:38:01 +08:00
    @lulitao1997 cyberduck 使用 sftp, 设置代理
        19
    nullen   2017-11-28 16:39:10 +08:00
    rsync
        20
    jy02201949   2017-11-28 16:41:08 +08:00
    还是上 nginx 吧,fdm 多线程下载 http 才是最快最稳的搬运方式,还能断点续传
        21
    czkwg8   2017-11-28 16:41:30 +08:00
    http 或 ftp
        22
    zlfzy   2017-11-28 17:06:33 +08:00
    一次性下载? tar 打包 nginx 下载不就完了?
        23
    lulitao1997   2017-11-28 17:07:19 +08:00   ♥ 1
    @blankme 试了下,这个方法可以防止被封端口,感谢
        24
    CreSim   2017-11-28 17:27:55 +08:00 via Android
    直接 caddy 也可以解决这个问题。。
        25
    CEBBCAT   2017-11-28 17:37:11 +08:00
    Nginx,支持断点续传
        26
    clino   2017-11-28 17:37:59 +08:00
    rsync -P 可断点
        27
    ZRS   2017-11-28 17:38:02 +08:00
    nginx
        28
    kmahyyg   2017-11-28 17:38:49 +08:00 via Android
    我用的 caddy,他的 filemanager 很方便
        29
    zzj0311   2017-11-28 17:40:23 +08:00 via Android
    内存够用上 Dropbox 啊~
        30
    yearliny   2017-11-28 17:49:25 +08:00 via Android
    可以在 VPS 上上传到国内网盘,然后从网盘下载
        31
    odirus   2017-11-28 18:18:47 +08:00
    MEGA
        32
    gamexg   2017-11-28 18:20:24 +08:00
    备份用途,用的 rsync+crontab,没关注速度,反正是后台跑。
        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 又不会好好校验)
        34
    huangunic0rn   2017-11-28 20:12:13 +08:00 via Android
    http Server..然后 wget -c 断点续传
        35
    shengyu   2017-11-28 20:26:06 +08:00 via iPhone
    caddy
        36
    wengjin456123   2017-11-28 22:33:12 +08:00
    我使用 scp 命令下载一些小文件,大的没尝试
        37
    artandlol   2017-11-28 22:44:22 +08:00 via iPhone
    改下内核参数
    Scp 的加个限速的 -l
        38
    7DLNU56W   2017-11-28 23:06:22 +08:00
    科学的?正常下载就可以呀,用 FTP 或者 HTTP 的方法啦~
        39
    dd99iii   2017-11-28 23:20:49 +08:00
    bbr + nginx
        40
    dzxx36gyy   2017-11-29 01:35:34 +08:00
    丢个 filemanager 上去,单文件无依赖,然后就随你怎么搞了
        41
    inflationaaron   2017-11-29 02:04:11 +08:00 via iPhone
    Node 装个 http-server 然后 aria2 下来。还可以试试用 UTP 协议
        42
    Technetiumer   2017-11-29 02:20:43 +08:00 via Android
    不要用 py 的 server

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