GSTorrent -- The Server

Still not much to see here. The main purpose of this section will be the documentation of the GSTorrent server / GSTorrent client protocol. But this is still to incomplete to be documented.

Usage

Nothing much to say about usage. Just start the server: GSTorrent.
However, by default the server listens at address 127.0.0.1 at port 2255. If another address for the server to listen on is desired: GSTorrent -h <addr>

Starting with version 0003 the server takes another mandatory parameter: -s <external address>
I don't like this, but I found no portable way to determine my own external IP number. And though this server currently runs only on Linux, I'd like to keep the option open to port it to other systems as well.

And a third option: -d <destination folder>. This is the where the downloaded files will be written. If no -d option was provided ever, the default folder /tmp/GSTorrent/Torrents is taken. The <destination folder> must exists. If it does not exist, the default folder is taken. The server remembers the last destination folder, so if the folder always remains the same, the -d option must only given once.

Word of warning: Don't let the server listen on a public address!
Currently there is no client authorisation at all. Everybody could access your GSTorrent server and start, stop, delete or just see your torrents. I am planning to offer client connections via ssl, but until then: Intranet only!

HOW TO USE GSTORRENT WITH AN SSH-TUNNEL

Currently I am in a situation, where it is necessary for me to connect to my server from a remote host. Of course, I heed my own warning and don't let my server listen on a public address. Since I don't have the time to implement the long overdue ssl connection, I had to find other ways. A very fine and very secure method is to build an ssh tunnel. I suppose everybody who can install a GSTorrent server on a machine, can also install an ssh server. So, suppose the GSTorrent server expects its client connections on the local address 192.168.0.1. This is totally secure from GSTorrent's point of view. If a hacker can exploit this, you are already hacked anyway. So how to connect to this internal address from an external machine? Easy, "build" an ssh tunnel. Furthermore let's suppose the GSTorrent server listens on the port 2255. On your local host, which will run the GSTorrent client, enter:

ssh -L 2255:192.168.0.1:2255 <address> -N

<address> = address of the remote machine, which runs the GSTorrent server.

The ssh server will ask for a login and a password, if the authorised_keys feature is not used. After a successful authorisation a tunnel from your localhost's port 2255 with the GSTorrent client to the remote host's local 2255 port with the GSTorrent server is built.
Now connect your client to port 2255 on your local machine. The ssh server will forward the connection and you have a remote connection between GSTorrent server and client, which is as secure as a ssh connection can be.

TODO

ssl connection
partial downloads

SourceForge.net Logo