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 install
Mac上でこれを編集しました。うまくいっていないようです。設定ファイルに記入した後[ProxyList]
への入り口socks5 127.0.0.1 8888
、curl -x 127.0.0.1:8888 ipecho.net/plain
そしてproxychains4 curl ipecho.net/plain
異なる結果を出します。考え?