リモートサーバーをプロキシとして使用してファイルをダウンロードするには?

リモートサーバーをプロキシとして使用してファイルをダウンロードするには?

アクセスできないいくつかのhttpファイルリンクがありますが、そのリンクにアクセスできるリモートサーバーがあります。

このファイルをマイコンピュータにダウンロードするには、リモートサーバーを「プロキシ」として使用します。これが私がしたことです:

  1. sshリモートサーバーへ
  2. リモートサーバーでコマンドを実行してwgetファイルをダウンロードする
  3. scpダウンロードしたファイルをコマンドでマイコンピュータに転送します。

これを達成するより便利な方法があるかどうか尋ねたいです。良い:

some_command root@server http://xxxxx/file.zip ~/Desktop/

ありがとうございます:)

答え1

SSH便利なTCP SOCKS5プロキシモードとその機能を提供します。-D/動的配信オプション(デフォルトのSOCKSポート:1080を使用します。後で設定で参照されている限り、すべてのポートを使用できます):

ssh -D 1080 someuser@server

代わりに実行できますSSHコマンドはバックグラウンドで実行されるため、引き続き使用でき、後で使用するために端末にアーカイブする必要はありません。

ssh -f -o ExitOnForwardFailure=yes -D 1080 someuser@server

残念ながら、wgetデフォルトではSOCKSプロトコルをサポートしていません。curl次のいずれかの方法を使用できます。

export http_proxy=socks5h://localhost:1080/ https_proxy=socks5h://localhost:1080/
curl -o ~/Desktop/file.zip http://xxxxx/file.zip

それ以外の場合:

curl --socks5-hostname localhost:1080 -o ~/Desktop/file.zip http://xxxxx/file.zip

必要に応じてwgetラッパーを使用してください。例えばproxychainsこれは次のように異なります。LD_PRELOAD傍受(次のような他の方法もあります。ダンテ~のsocksifyクライアントラッパーも同様に動作します。redsocksそれ自体はブロックのための特別なファイアウォール設定に依存します。

mkdir ~/.proxychains
(echo strict_chain; echo proxy_dns; echo '[ProxyList]'; echo socks5 127.0.0.1 1080) > ~/.proxychains/proxychains.conf

proxychains wget http://xxxxx/file.zip ~/Desktop/

答え2

リモートコンピュータにHTTPプロキシ(squidApache httpdの一部の構成など)がある場合は、そのプロキシを介して要求できます。 env http_proxy=http://server:3128/ wget http://xxxxx/file.zip

リモートコンピュータにSOCKSまたはSOCKS5プロキシがある場合は、そのプロキシを介して要求できますが、必要な場合がありますwget

SSHログインがきれいであれば、次のことができます。

ssh -n user@server wget -O- http://xxxxx/file.zip >~/Desktop/file.zip

個人的に私は主にリモートwgetに行きますrsync

関連情報