I know that in a Tor circuit, there are typically 3 relays: Guard, Middle, and Exit. If I want to run a Tor relay, can I configure it so that I can only serve as Exit node, or Guard node, but not Middle node?
2 Answers
No, and it will never be implemented: it would break the whole relay idea of Tor. Every relay - regardless of it's further roles - is a "regular node", i.e. the middle one. If it's allowed to go outside - then it also/additionally receives an Exit flag. If it's stable and not flapping - it receives a Stable flag, if it's stable-flagged and has a decent bandwidth and reacability - it receives a Guard flag. That's how it works! Every node is evaluated - and to be able actually evaluated - it must be present in network, actually do some work - and basing on the results and metrics of the working process it's additionally flagged.
Currently, no. If I remember correctly, exit relays are hard-coded to be used only as exits, and Tor will prefer to not use guard relays for a middle node.
-
As the real life stats of my relay shows the truth: as soon as middle point relay with properly open DirPort and ORPort receives Guard flag - nothing actually changes in it's work...– Alexey Vesnin ♦Commented Sep 23, 2016 at 23:26
-
That's strange: my relay is sometimes guard and sometimes not, and whenever it's guard, its "middle probability" drops by about the same amount as its "guard probability" is increased Commented Nov 24, 2016 at 13:11