web-dev-qa-db-ja.com

特定のプロキシサーバーを使用してコマンドを呼び出す方法

一部のアプリケーションはプロキシ(httpプロキシまたはsocksプロキシ)をサポートし、一部はサポートしていません。

ブラウザーの場合、設定/オプションダイアログでプロキシサーバーを指定できます。他のアプリケーションでは、構成ファイルでプロキシサーバーを構成できる場合があります。

一般的な目的で、特定のプロキシを使用してコマンドを呼び出すことはできますか?以下のように:

$ proxy-exec --type sock5 --server 1.2.3.4:8000 -- wget/ftp ...

Ubuntu Maverickを使用しています。

P.S。

Win32では、ソケットdllをハイジャックすることで実装できます。たぶん、私はLinuxプログラミングに精通していませんが、Linuxでは可能だと思います。でも。

12
Xiè Jìléi

インターネットにアクセスするほとんどのLinuxコマンドは、プロキシ情報についてHTTP_PROXYFTP_PROXY、およびSOCKS_SERVER環境変数を調べます。だから、あなたの例のようなことをするためには、単に実行してください:

export SOCKS_SERVER=1.2.3.4:8000
wget http://superuser.com/q/262956/66003

HTTP_PROXYFTP_PROXYの構文は少し異なります。

export HTTP_PROXY=http://1.2.3.4:3128/
export FTP_PROXY=ftp://1.2.3.4:25/

Ubuntuのプロキシ設定に含まれているデフォルトのGNOMEデスクトップ環境には、Apply System-Wideボタンがあり、これらの環境変数が自動的に設定されます。それ以外の場合は、export行を~/.bashrcファイルに追加して、ログインのたびに有効にすることができます。

残念ながら、wgetはSOCKSをまったくサポートしていません。 Ubuntuに含まれている curl を使用して、wgetが行う多くのことを実現できます。残念ながら、SOCKS_SERVERはチェックしませんが、HTTP_PROXYはチェックします(wgetはチェックします)。 curlを使用してSOCKS5サーバーでこのページをダウンロードし(そのサーバーでDNS解決を実行)、superuser.htmlとして保存するには、次のコマンドを実行します。

curl --socks5-hostname 1.2.3.4:8000 http://superuser.com/q/262956/66003 > superuser.html

curlが常にそのSOCKSプロキシを使用するようにする場合は、シェルエイリアスを作成できます。 ~/.bashrcに次の行を追加してください:

alias curl='curl --socks5-hostname 1.2.3.4:8000'

変更を有効にするためのコマンドであるかのように、端末を再起動するか、その行を実行する必要があります。

17
Patches

proxychains を試してください。

apt-getでインストールできます。次に、次のいずれかに設定ファイルを作成する必要があります

1) ./proxychains.conf
2) $(HOME)/.proxychains/proxychains.conf
3) /etc/proxychains.conf **

proxychains wget google.comなどの別のコマンドを呼び出すことができます-接続はプロキシを経由します。一度にまたはランダムな順序で使用される複数のプロキシを指定できます。

例えば:

➜  ssh -ND 4000 sockshost &
[1] 3446
➜  wget whoer.net -q -O- | grep remote_addr
89.71.*.*
➜  cat proxychains.conf 
[ProxyList]
socks5 127.0.0.1 4000
➜  proxychains wget whoer.net -q -O- | grep remote_addr
|D-chain|-<>-127.0.0.1:4000-<><>-95.211.121.18:80-<><>-OK
78.98.*.*

HTMLタグとIPをいくつか削除しましたが、ご覧のとおり、プロキシが使用されていて、IPアドレスが変更されていました。

10
Fluffy

wgetはソックスをサポートしていません。curlは Patches のように機能します。

curl --socks5-hostname 1.2.3.4:8000 https://superuser.com/q/262956/66003

Wgetが必要な場合は、tsocksをインストールできます。

インストールSudo aptitude install tsocksおよびセットアップ:

$ Sudo vim /etc/tsocks.conf
server = 1.2.3.4
server_type = 5
server_port = 8000

使用法:

tsocks wget https://superuser.com/q/262956/66003
1
PiTheNumber