コマンドから proxychains を外して再実行しても、ラッパーの起動メッセージが表示されます。アプリ側の設定を探す前に、起動環境を確認してください。

Linux では LD_PRELOAD により、動的リンカが指定した共有オブジェクトを通常のライブラリより先に読み込みます。プロキシラッパーはこの仕組みを使って、対応するネットワーク呼び出しを横取りできます。誰かがシェルでこの変数をエクスポートすると、後から起動する子プロセスは、コマンドラインにラッパーのプレフィックスがなくても継承します。

そのシェルでの最初の読み取り専用の確認は次のとおりです。

printf '%s\n' "$LD_PRELOAD"

プロキシラッパーのライブラリを探しつつ、変数に意図して読み込んだ別のライブラリも並んでいる可能性は残してください。すべての項目をやみくもに消すと、別のツールを壊すことがあります。

ランチャーを変えてから、プログラムを起動し直す

影響を受けるプログラムを起動する環境から、偶発的なプロキシのプリロードを取り除きます。起動ファイルやランチャーがエクスポートしている場合は、その出所も直します。Bash の起動では起動ファイルの順序に従ってください。きれいなシェルの新しい子は、変数をまだ保持している古い端末や IDE の子とは別の場合です。

環境変数を unset しても、すでにそれで起動したプロセスからライブラリが外れるわけではありません。そのため実行中のアプリは、修正した起動経路で再起動するまでラッパーを保持することがあります。

変数がない場合は、/etc/ld.so.preload のような他の設定済みプリロード元と実際のランチャーを調べます。この仕組みには限界があります。静的実行ファイル、直接のシステムコール、安全な実行の制約では動作が異なることがあります。sudo ではラッパーの順序が重要です。継承されたプリロードは予期しない横取りを説明しますが、すべての種類の通信がプロキシを使う証拠ではありません。

関連記事