今回はproxychains-ngというソフトを軽く紹介。アプリケーションの起動時にネットワーク関連の関数呼び出しをproxychains-ng経由にすることでSOCKSプロキシ経由で通信できるようにするもの。Windowsでこういう類のソフトはFreeCapなどがある。
LD_PRELOADにproxychains-ngのライブラリを指定する関係上、静的リンク(static)なプログラムには使えないので注意。またUDP/ICMPなどTCP以外のプロトコルはプロキシ経由にできない。
ちなみに、-ngと付いているのは事実上開発が停止しているproxychainsの後継なため。
インストール
$ git clone https://github.com/rofl0r/proxychains-ng $ cd proxychains-ng $ ./configure --prefix=/usr --sysconfdir=/etc $ make $ sudo make install $ sudo make install-config
適当に設定
/etc/proxychains.confをいじる。いじるべき設定は
- quiet_modeをアンコメントする
- proxychains-ngのライブラリからのメッセージを吐かせたくない場合。
- [ProxyList]以降をいじる
- デフォルトではTor向けの設定になっている。
- デフォルト設定でTorを動かしていて、かつTorを経由させたい場合はそのままの設定でOK。
- 例えば、ローカル(127.0.0.1)の1080ポートで動いているSOCKS5プロキシ経由にしたい場合は以下のようにする。
- デフォルトではTor向けの設定になっている。
socks5 127.0.0.1 1080
適当に使ってみる
SOCKSプロキシ経由にしたいコマンドの前にproxychains4を付けるだけ。
curlでifconfig.coにアクセスしてIPを取得してみる。以下の例でのproxychains-ngの設定はSSH(VPSに接続している)のダイナミックポートフォワーディングのポートを指定している。IPv6でもちゃんと通信できる模様(ただし暫定対応)。
$ curl ifconfig.co 240b:13:****:***:****:****:****:**** $ proxychains4 curl ifconfig.co 2401:2500:102:3016:153:126:160:152
apt-getなどの通信もSOCKSプロキシ経由にできる(はず)。
$ sudo proxychains4 apt-get update