米国にサーバー(LinuxボックスB)があり、自宅にあるコンピュータ(LinuxボックスA)があり、WebサイトCからファイルをダウンロードする必要があります。
問題は、Aから直接ファイルをダウンロードするのが遅すぎるため、Bにログインしてファイルをダウンロードした後にsftp
Aからファイルをインポートする必要があることです。
ファイルを直接ダウンロードし、1行のコマンドでBをプロキシとして使用する方法はありますか?
答え1
(不思議な状況ではありませんが、三角形の不等式インターネットルーティングを保存しますか? )
とにかく、以下を試してみてください。ㅏ、ssh
入力する第二-D
主張があるのに、
ssh -D 1080 address-of-B
これはインターネット上でSOCKS5プロキシとして機能し、127.0.0.1:1080
SOCKS5プロキシ接続をサポートする任意のデバイスで使用できます。 明らかにwget
これはできます、環境変数を使用して
export SOCKS_SERVER=127.0.0.1:1080
wget http://server-C/whatever
時にはcurl
これがより便利であることに注意してください(たとえば、SOCKS5を介してホスト名の検索が可能かどうかはわかりませんが、wget
これはあなたの興味の1つではありません)。 FirefoxはこれらのSOCKS5プロキシを介して完全に機能することもできます。
編集するあなたが探していることに気づきました。一行解決策。まあ、どうですか?
ssh address-of-B 'wget -O - http://server-C/whatever' >> whatever
つまり、wget
インポートされた出力をにリダイレクトstdout
し、ローカル出力(リモートssh
実行からwget
)をファイルにリダイレクトします。
これはうまくいくようです。wget
出力は少し混乱しています(」- に保存-q
「)、通話に追加して削除できますwget
。
答え2
別のアプローチは、通常どおりログインしてセッションをB
開始することです。ここでは、すべてのファイルをディレクトリに配置screen
できます。wget
この時点で、プログラムはスムーズに実行されます。画面から切り離してバックグラウンドで実行するようにしておくだけです。
ダウンロードが完了したら(おそらくより早く)、データをインポートB
できます(私が好む方法)。A
rsync
答え3
からインスピレーションを受ける別の質問に対する別の答え、以下を使用することをお勧めします。プロキシチェーン-ng(これは最新バージョンです。プロキシチェーン)。
- ダウンロード、コンパイル、オプションでインストールプロキシチェーン-ng。
proxychains.conf
現在のディレクトリまたは~/.proxychains/proxychains.conf
ファイルを作成します/etc/proxychains.conf
。- または、別の場所または別の名前でファイルを作成し、
-f
コマンドライン引数またはPROXYCHAINS_CONF_FILE
環境変数で指定します。 - 一つあるサンプル構成ファイル書くことができる。最も関連性の高いオプションは最後にあります。
- または、別の場所または別の名前でファイルを作成し、
ファイルに
proxychains.conf
以下を追加します。[ProxyList] socks5 127.0.0.1 1234
ランニング
ssh -D 1234 your_host_b
。これにより、sshはローカルホストのポート1234でリッスンし、リモートホストをSOCKSプロキシとして使用します。- または代わりに実行してください
ssh -ND 1234 your_host_b
。-N
sshがリモートサーバー上でコマンドを実行しないようにします(つまり、シェルを開かない)。
- または代わりに実行してください
- ランニング:
proxychains4 yourcommandhere yourparametershere
。いくつかの例を見てください。proxychains4 wget -O - http://ifconfig.co/
proxychains4 -q links http://ifconfig.co/
答え4
Box AからBox BにSSHトンネルを設定し、それをBox Aのルーティングテーブルに追加すると、Box Bへのトンネルを介してWebサイトCにアクセスできます。 Box Bでパケットを転送できるようにする必要があります。
ここ非常に良いステップバイステップのチュートリアルを見ることができます。