ネットワークアクセスをブロックするLD_PRELOADまたは類似の方法

ネットワークアクセスをブロックするLD_PRELOADまたは類似の方法

ネットワークが切断されたプログラムを起動したいです。 (開始直後に大量のデータをダウンロードしようとしているため、安定した直後に設定を変更すればこれを防ぐことができます。)しかし、私は本当にそうしたくないネットワークを麻痺させるこのショーのために。

プログラムにネットワークがダウンしているという印象を与えるLD_PRELOADまたはこれに似ていますか?仮想マシンを作成しないことをお勧めします。

答え1

Linuxでは、ネットワークネームスペースを試してみてください。たとえば、次のようになります。

sudo ip netns add namespace-name
sudo ip netns exec namespace-name executable

これにより、プログラムがネットワークにアクセスできなくなります。

答え2

最新のLinuxを使用していてスーパーユーザーアクセスがある場合は、@Ulrichのネットワークネームスペースソリューションが完璧なソリューションです。それ以外の場合は、別のオプションは、またはdante同じSOCKSラッパーを使用することですsocksifytsocksSOCKSで使用されることに注意してくださいLD_PRELOAD)。

withと同様にwithインスタンスをtsocks作成しますtsocks.conf

path {
    reaches = 0/0
    server = 127.0.0.1
    server_port = -1
    server_type = 5
}
fallback = no

以下を介してアプリケーションを呼び出します。

TSOCKS_CONF_FILE=/path/to/that/tsocks.conf tsocks your-application

これはTCP接続とIPv4にのみ適用されます。一方、これは、接続が許可されるIPアドレスをオプションで指定できることを意味します。

関連情報