final
This commit is contained in:
parent
9449a59e4d
commit
81ff5b6f82
|
@ -1,2 +0,0 @@
|
|||
node_modules
|
||||
.git
|
21
Dockerfile
21
Dockerfile
|
@ -1,21 +0,0 @@
|
|||
FROM node:4.2.3
|
||||
|
||||
COPY . /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV DOCKER tcp://127.0.0.1:2375
|
||||
|
||||
ENV TORS 5
|
||||
|
||||
ENV DNS_PORT 9053
|
||||
|
||||
ENV PORT 9050
|
||||
|
||||
EXPOSE 9053
|
||||
|
||||
EXPOSE 9050
|
||||
|
||||
RUN npm install
|
||||
|
||||
CMD /app/run.sh
|
44
bin/tor-router.js
Normal file → Executable file
44
bin/tor-router.js
Normal file → Executable file
|
@ -1,19 +1,39 @@
|
|||
'use strict';
|
||||
|
||||
const TorPool = require('../lib/TorPool.js');
|
||||
const DockerPool = require('../lib/DockerPool');
|
||||
const SOCKS = require('../lib/SOCKSServer.js');
|
||||
const DNS = require('../lib/DNSServer.js');
|
||||
const dir = __dirname+'/../';
|
||||
|
||||
const TorPool = require(dir+'/lib/TorPool.js');
|
||||
const DockerPool = require(dir+'/lib/DockerPool');
|
||||
const SOCKS = require(dir+'/lib/SOCKSServer.js');
|
||||
const DNS = require(dir+'/lib/DNSServer.js');
|
||||
const url = require('url');
|
||||
const program = require('commander');
|
||||
|
||||
const program = {
|
||||
docker: process.env.DOCKER || 'tcp://127.0.0.1:2375',
|
||||
tors: parseInt(process.env.TORS) || 1,
|
||||
port: parseInt(process.env.PORT) || 9050,
|
||||
dns: parseInt(process.env.DNS_PORT) || 9053
|
||||
};
|
||||
|
||||
var docker = new DockerPool({ host: (url.parse(program.docker).hostname), port: (url.parse(program.docker).port) });
|
||||
program
|
||||
.version('0.0.1')
|
||||
.option('-H, --docker [unix:///var/run/docker.sock]', 'Docker Host', (parseInt(process.env.DOCKER_HOST) || 'unix:///var/run/docker.sock'))
|
||||
.option('-j, --tors [1]', 'Number of Tor Instances', (parseInt(process.env.TOR_INSTANCES) || 1))
|
||||
.option('-p, --port [9050]', 'SOCKS Port', (parseInt(process.env.PORT) || 9050))
|
||||
.option('-d, --dns [9053]', 'DNS Port', (parseInt(process.env.DNS_PORT) || 9053))
|
||||
.parse(process.argv);
|
||||
|
||||
var docker_url = (url.parse(program.docker));
|
||||
|
||||
var docker_cfg = {};
|
||||
if (docker_url.protocol === 'unix:') {
|
||||
docker_cfg.socketPath = docker_url.path;
|
||||
} else if (docker_url.protocol === 'http:' || docker_url.protocol === 'tcp:') {
|
||||
docker_cfg.host = docker_url.hostname;
|
||||
docker_cfg.port = docker_url.port;
|
||||
if (docker_url.protocol !== 'tcp:') {
|
||||
docker_cfg.protocol = docker_url.protocol.replace(':', '');
|
||||
}
|
||||
} else {
|
||||
throw new Error('Invalid docker protocol: '+docker_url.protocol);
|
||||
}
|
||||
|
||||
var docker = new DockerPool();
|
||||
var pool = new TorPool(program.tors, docker);
|
||||
|
||||
process.stdin.resume();
|
||||
|
@ -30,7 +50,7 @@ pool.start(function () {
|
|||
});
|
||||
}
|
||||
if (program.dns) {
|
||||
let dns = new DNS(pool);
|
||||
let dns = new DNS(pool, true);
|
||||
dns.server.serve(program.dns);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "tor-router",
|
||||
"version": "0.0.1",
|
||||
"bin": "bin/tor-router.js",
|
||||
"author": [
|
||||
{
|
||||
"name": "Zachary Boyd",
|
||||
|
|
Loading…
Reference in a new issue