远程启动另一台计算机下载的方式

远程启动另一台计算机下载的方式

我正在寻找代理和之间的解决方案wget,因为它们都不能完全解决我想要解决的问题。

我想从远程位置(通过智能手机、网络浏览器等)将文件下载到我家用机器(Linux 服务器 - 仅命令行)上的特定目录中。这听起来像是一个解决方案wget,但我要下载的许多文件来自通过 AJAX/Javascript 为您创建特殊下载“会话”的来源(例如 Uploaded.net、Mega.nz)。

我想在此过程中的某个时候我必须使用代理,但我根本不想让下载数据传到我的远程设备,因为那会浪费带宽。但是,使用代理访问网站并创建会话对我来说是可行的。

因此,不起作用的解决方案(至少是开箱即用的):

  • 远程桌面:仅限 Windows
  • VNC:我只能通过命令行访问;而且,对智能手机等不太友好
  • wget:下载链接通常只存在于一个“会话”中;很难为网站模拟 AJAX 环境
  • 代理:将所有数据发送到远程客户端;安装远程目录将导致数据经过三跳(站点到代理、服务器/代理到客户端、客户端到远程目录)。我正在寻找直接(站点到远程目录)的下载路径。

在我的理想世界中,我设想通过代理浏览网站,但当浏览器将某些内容归类为下载时,它只会下载到远程目录(甚至打开文件保存对话框并让我选择在远程服务器上保存它的位置)。解决方案不必达到这种简单程度,但希望这有助于澄清我的问题的主旨。

答案1

wget 有保存和加载 cookie 的选项。有时,根据网站的情况,如果您使用 wget 加载链接所在的网页并告诉它保存 cookie,然后对实际文件发出另一个请求并让它加载 cookie,它就会起作用。

这是一个两步过程:

wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt http://domain.com/page_with_link.html
wget --referer=http://domain.com/page_with_link.html --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt http://domain.com/some_file_to_download.zip

答案2

为了满足我的需求,我决定下载器,一个开源 Java 应用程序,用于处理来自各个站点的下载,包括直接 HTTP 下载。它处理页面等待计时器,并在我需要解决验证码时向我显示验证码。

它有一个漂亮的 GUI,但我有它无头运行(没有 GUI)在我的服务器上并通过JDownloader 的 Web 界面或者Android 应用程序,这意味着我可以从任何浏览器甚至我的手机开始下载。

它在某些网站上仍然无法完美运行,但总体而言对我来说效果很好。我认为 Android 应用程序的界面比浏览器网站更好。

答案3

导航到地址并使用下载文件链接通过 SSH 连接。GNU 屏幕也可用于在 SSH 连接未打开的情况下完成下载。

答案4

另一种可能性(除了可能自定义修改 ziproxy 以添加“本地保存这些类型”选项)是使用 X 服务器。

有适用于智能手机的 X 服务器,也有适用于 Windows 的 X 服务器。这个答案暗示了HTTP 客户端 X 服务器

因此,在你的典型 Android 智能手机上,你可以安装 Android X 服务器,在 Linux 机器上,为小显示屏提供简单的 Firefox 浏览器主题。现在,您在远程进程上拥有一个本地屏幕,并且任何下载都将在远程进行。与 VNC 非常相似,但对智能手机更友好。

在大屏幕设备上您仍然可以启动 X 服务器,但这次启动的是普通的 Firefox 实例。

相关内容