tor-relay

0.0.2 • Public • Published

Tor Relay

Node.js module to create a tor node or maybe also a relay.

I have not found a better name for this module, all others were already taken by other modules, but they do not provide the range of functionality I wanted to have).

How to install

# check pre-requirements! 
npm install --save tor-relay

Pre-requirements

You need to have a installed version of tor on your system. You can download it from torproject.org. Or install it with your packet manager of your choice:

  • APT-GET (Debian, Ubuntu etc.): sudo apt-get install tor
  • Port (MacOSX): sudo port install tor
  • YUM (Feodory, CentOS): sudo yum install tor (maybe you have to add repos first)

You should take a look at the torproject-website in every case

How to use

var TorRelay = require('tor-relay');
 
var relay = new TorRelay({
 
    controlPassword: 'test', // If not set, TorRelay will make a random password. Set to false or '' for no password.
    controlPort: 9051,       // If not set, TorRelay will find a random free port.
    socksPort: 9050          // If not set, TorRelay will find a random free port.
});
 
// Make this module verbose
relay.on('notice', function (event) {
    console.log(event.message); // Log tor notices for more information
});
 
relay.on('warn', function (event) {
    console.log(event.message); // Log tor warnings for more information
});
 
relay.start(function (err) {
    if (err) {
        return console.error(err);
    }
    // Tor is now connected into a circuit!
    // Your code here
 
    // get a new circuit
    relay.control.signalNewnym(function () {
        // now we have a new circuit in tor.
    });
 
    // Halt tor if you want to:
    relay.stop(function (err) {
        if (err) {
            return console.error(err);
        }
        // Tor is now stopped.
    });
});
 

Methods

  • .start(callback): Start tor
  • .stop(callback): Stop tor
  • .restart(callback): Stop and start tor again (aka. restart).

Properties

  • cleanUpOnExit: Kill tor sub-process and temporary directory on exit? (default true)
  • dataDirectory: Path to tor directory (default is a random temporary one).
  • process: The spawned tor child process.
  • control: Connected instance of tor-control.
  • service: Settings for services (not possible to change in running process, use restart method).
    • socks: Socks5 Tor service.
      • username: Username to access Socks service.
      • password: Password to access Socks service.
      • port: Port of Socks service.
    • control: Tor control service.
      • password: Password to access control service.
      • port: Port of control service.

Readme

Keywords

Package Sidebar

Install

npm i tor-relay

Weekly Downloads

1

Version

0.0.2

License

ISC

Last publish

Collaborators

  • atd