[tor-talk] torified nodejs: server crashes
dgoulet at torproject.org
Mon Feb 12 16:08:41 UTC 2018
On 10 Feb (23:58:53), Konstantin Rybakov wrote:
> Dear developers,
> I am trying to develop a simple networking application based on node.js
> 'net' library. Server supposed to run in torified environment.
> My setup is linux Ubuntu 16.04.
On 16.04, "torsocks" package is 2.1.0 which old so first thing you might want
to do is try the latest that is torsocks 2.2.0. Building it from source is
probably what you'll need to do (see the README.md in the tarball):
> intalled tor and torsocks. Torsocks allows inbound connection and outbound
> on localhost.
> nodejs app is basically a minimal tcp server based on 'net' library. I run
> it like this: torsocks nodejs app.js, while tor process is also runnning
> The server starts, but when client connects - it crashes with seg fault.
> When I run the same node.js server in regular shell without torsocks, but
> when tor is running - it works fine
> So far I tried plain C and python servers - they both worked in torified
> shell, but node.js failing.
> Is there a way to make nodejs working under torsocks? What could be the
Difficult to say. What I would do is open a ticket on trac.torproject.org
under the "Core Tor/Torsocks" component if possible. If not, you can always
email here some more details about the segfault.
If you could do a couple of things and put those on the ticket or here.
1) Try this:
$ TORSOCKS_LOG_LEVEL=5 TORSOCKS_LOG_FILE_PATH=/tmp/torsocks.log torsocks nodejs [...]
2) I have no idea what are the implication of using gdb with nodejs but you
can try to use it and see where the segfaults happen:
$ gdb nodejs
set follow-fork-mode child
set environment LD_PRELOAD /path/to/libtorsocks.so
["libtorsocks.so" is usually in "/usr/lib/torsocks/libtorsocks.so" or if
you built it from source, will be in
Then once you hit the segfault, use "bt full" to get a stack trace and put it
on the ticket.
3) Finally, you could also use strace to see if it is within a syscall that
torsocks hijacks that exploded:
$ strace -f -o /tmp/strace-torsocks.log torsocks nodejs [...]
Hope this help! Just a quick note, making the full nodejs work with torsocks
could end up being quite complicated. You should also consider a way to use
nodejs SOCKS proxy option (if any) instead and make your application use Tor
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 455 bytes
Desc: not available
More information about the tor-talk