bashセッションですべてのネットワーク通信にプロキシを指定することは可能ですか?私はsshを使ってそれを行うことが可能であると思うが、もっと良い方法があるなら私はむしろそれを使わない方がよい。
bashセッションですべてのネットワーク通信にプロキシを指定することは可能ですか?私はsshを使ってそれを行うことが可能であると思うが、もっと良い方法があるなら私はむしろそれを使わない方がよい。
回答:
Linuxでは proxychains そして proxychains-ng。私は後者がと呼ばれていると思います proxychains4 Ubuntuで。使い方はこんな感じです:
proxychains4 some_program # see the manual to learn about config files
または
proxychains4 -f configfile.conf some_program
bashセッションですべてのネットワーク通信にプロキシを指定することは可能ですか?
基本的にそうです。
proxychains4 bash
ツールはを使用して動作します LD_PRELOAD 変数 実際の仕事をする共有オブジェクトをプリロードする。まずはじめに bash それ自体はプロキシ化されています(通常、シェルがネットワーク接続を開始することは期待していませんが、Bashはこれを次のような特別なリダイレクトのために行います foo > /dev/tcp/host/port、彼らはプロキシになります)。変数は環境内にあるため、このBashセッションで呼び出されたコマンドはすべて影響を受けます。
# from within our proxified Bash
wget -O /dev/null superuser.com # also proxified
しかしながら
私たちのプロキシされたBash(またはプロキシされたコマンド)が、 LD_PRELOAD 正しいオブジェクトを指していない場合、子はプロキシ化されません。
# from within our proxified Bash
LD_PRELOAD="" wget -O /dev/null superuser.com # not proxified
私たちのプロキシされたBash(またはプロキシされたコマンド)が新しいプロセス(おそらくそれ自体の新しいインスタンス)に対して実行するなら LD_PRELOAD 正しいオブジェクトを指していなくても、結果のプロセスはプロキシ化されません。
# from within our proxified Bash
unset LD_PRELOAD
exec bash
# now we are in non-proxified Bash, it replaced the proxified one
wget -O /dev/null superuser.com # not proxified
curl -x socks5://127.0.0.1:8888 ipecho.net/plain?
brew installMac上でこれを編集しました。うまくいっていないようです。設定ファイルに記入した後[ProxyList]への入り口socks5 127.0.0.1 8888、curl -x 127.0.0.1:8888 ipecho.net/plainそしてproxychains4 curl ipecho.net/plain異なる結果を出します。考え?