アクセスできないいくつかのhttpファイルリンクがありますが、そのリンクにアクセスできるリモートサーバーがあります。
このファイルをマイコンピュータにダウンロードするには、リモートサーバーを「プロキシ」として使用します。これが私がしたことです:
ssh
リモートサーバーへ- リモートサーバーでコマンドを実行して
wget
ファイルをダウンロードする 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プロキシ(squid
Apache 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
。