ExcludeNodes の設定を半自動化
追記
ExcludeNodes, ExcludeExitNodes の設定は参考サイトから丸パクリして載せていましたが, 消したようなので消しました.
このプログラムは, BadExit の付いたノードが一つも存在しない場合の処理が抜けています.
気が向いたら直しておきます.直しました.
ここから記事スタート
最近 Tails を使っている。 ExcludeNodes に BadExit フラグが付いたノードを追加するのが面倒だったので、半自動化した。 cURL と Python を使用した。
現在のノードのリストはここで確認できる (JSON):
https://onionoo.torproject.org/details
cURL で JSON を取得し、BadExit が付いたノードの fingerprints をすべて torrc に突っ込む。
これを実行すると torrc にそのままコピペできる出力が得られる:
#!/bin/sh URL='https://onionoo.torproject.org/summary?flag=badexit' echo 'ExcludeNodes SlowServer'|tr -d '\n' curl -s ${URL}|python3 -c "import sys;import json;a=['$'+r['f']for r in json.loads(sys.stdin.read())['relays']];print(len(a)and',{}'.format(','.join(a))or'')" echo 'StrictNodes 1'
そのまま使ってもよいが, 各自調整したほうがよい.