<div dir="ltr"><div>> A simple test you could run on your server is fetching directory info<br></div><div>> from nodes that have directory functionality enabled.<br></div><div><br></div><div>Thanks for the idea. blutmagie offers a CSV list of its current result set, so this ended up being quite easy to automate.<br></div><div><br></div><div>I fetched a copy of the CSV to the server:</div><div><br></div><div>  wget <a href="https://torstatus.blutmagie.de/query_export.php/Tor_query_EXPORT.csv">https://torstatus.blutmagie.de/query_export.php/Tor_query_EXPORT.csv</a><br></div><div><br></div><div>Then I picked out the columns I cared about, included only Exits with a Dirport, then sorted by the bandwidth column, and grabbed the fastest 50:</div><div><br></div><div>   awk -F \, '{if ($10 == "1" && $8 != "None") print $3, $5, $8}' Tor_query_EXPORT.csv | sort -nr | head -50 > top-50-exits-with-dirport.txt</div><div><br></div><div>That file now looks like:</div><div><br></div><div><div>34994 37.130.227.133 80</div><div>33134 176.126.252.11 443</div></div><div><div>30736 176.126.252.12 21</div><div>30720 77.247.181.164 80</div><div>26958 77.247.181.166 80</div></div><div><snip></div><div><br></div><div>So we now have the bandwidth, IP, and dirport of the fastest exits. With this list in hand, I just needed to form a proper URL, wget each one, and grep out the transfer speed:</div><div><br></div><div>   for URL in $(awk '{print "http://" $2 ":" $3 "/tor/server/all"}' top-50-exits-with-dirport.txt); do printf "$URL " && wget $URL -O /dev/null 2>&1 | grep -o "[0-9.]\+ [KM]*B/s"; done</div><div><br></div><div>The output ends up looking like this (only displaying the first 10 for brevity):</div><div><br></div><div><div><a href="http://37.130.227.133:80/tor/server/all">http://37.130.227.133:80/tor/server/all</a> 1.17 MB/s</div><div><a href="http://176.126.252.11:443/tor/server/all">http://176.126.252.11:443/tor/server/all</a> 4.54 MB/s</div><div><a href="http://176.126.252.12:21/tor/server/all">http://176.126.252.12:21/tor/server/all</a> 666 KB/s</div><div><a href="http://77.247.181.164:80/tor/server/all">http://77.247.181.164:80/tor/server/all</a> 111 KB/s</div><div><a href="http://77.247.181.166:80/tor/server/all">http://77.247.181.166:80/tor/server/all</a> 330 KB/s</div><div><a href="http://195.154.56.44:80/tor/server/all">http://195.154.56.44:80/tor/server/all</a> 3.65 MB/s</div><div><a href="http://77.109.141.138:80/tor/server/all">http://77.109.141.138:80/tor/server/all</a> 2.20 MB/s</div><div><a href="http://96.44.189.100:80/tor/server/all">http://96.44.189.100:80/tor/server/all</a> 13.4 MB/s</div><div><a href="http://197.231.221.211:1080/tor/server/all">http://197.231.221.211:1080/tor/server/all</a> 347 KB/s</div><div><a href="http://89.234.157.254:80/tor/server/all">http://89.234.157.254:80/tor/server/all</a> 295 KB/s</div></div><div><br></div><div>I'm not seeing anything immediately, although I need to run it on a larger set. There's no smoking gun so far though. Some of the speeds are a bit slow, but nothing low enough to explain the extremely low measured bandwidth these relays are getting. I think I'll clean this up a bit, put it into an actual script, and try running it on another server on a different AS for comparison.</div></div>