下林明正のブログ

個人的かつ雑多なブログです。

任意のコマンドをtor経由で実行する

SOCKS経由でtor使えたら便利そうと思って簡単に調べた。

Macなら、

brew install tor
tor&
brew install torsocks
torsocks curl curlmyip.com

みたいな感じで使えた(tsocksでも使えた)。

試しに torsocks.conf を書き換えてSOCKSv5を使うようにしてみると、15:31:07 libtorsocks(29879): Need a password in torsocks.conf or $TORSOCKS_PASSWORD to authenticate withcurl: (7) couldn't connect to hostとかいって怒られる。 パスワードとか知らないし簡単に検索してもRFC 1929 - Username/Password Authentication for SOCKS V5とかしか出てこなくて厳しい感じだった。 そこでダメ元でtorsocks.confの

#default_user =
#default_pass =

みたいなとこにhoge/fugaみたいな適当な値を指定してみたところ、何故か動いた。何のためにあるフィールドなのか分かってないけどとにかく動いたからまあいいか、という雑な気持ちになった。

とはいえ単にIPアドレスが欲しいだけならSOCKSv4のままでも良さそうなので、匿名性を高める気持ちが無いなら忘れてもいいのかもしれない。

A public TorDNSEL service使うとtorのexit nodeが分かる??らしいので、Tor経由のアクセスを禁止することもその気になればできるっぽい????

Rubyのコード向けなら SOCKSify Ruby っていうのも見つけてて、Modifications to class TCPSocket:とか言ってる。 この手のやり方なら自分で似たようなの書いて柔軟に制御できそうな感じもする。 とはいえem-http-requestみたいなのとかはRubyの外でHTTPリクエスト飛ばしてそうな雰囲気だったし、やっぱtorsocksみたいなやつ使うのが楽そうな気がする。