Instalacja i konfiguracja: ruTorrent, rTorrent (Debian 9 Stretch).

Dodanie własnego użytkownika do sudo: /etc/sudoers.

su

hasło root’a.

apt-get install sudo 
nano /etc/sudoers

Przykład:

nazwa_użytkownika         ALL=(ALL) ALL

1. Tworzenie nowego użytkownika „rtorrent” i nowy katalog domowy.

Katalog domowy: /opt/rtorrent.

sudo adduser -s /sbin/nologin --home /opt/rtorrent rtorrent

2. Aktualizacja systemu przed instalacją rtorrent.

sudo apt-get update
sudo apt-get upgrade

3. Instalacja serwera Apache2, PHP7, itp .

sudo apt-get -y install php php-geoip php7.0-cli php7.0-json php7.0-curl php7.0-cgi php7.0-mbstring libapache2-mod-php libapache2-mod-scgi libapache2-mod-xsendfile apache2 unrar unzip libav-tools ffmpeg mediainfo curl screen sqlite3 git net-tools sox

4. Instalacja rtorrent.

sudo apt-get -y install rtorrent libtorrent19 libxmlrpc-core-c3

5. Tworzenie folderów potrzebnych do poprawnego funkcjonowania rTorrenta i ruTorrenta.

sudo mkdir -p /opt/rtorrent/{session,watch,download}
sudo chmod 777 -R /opt/rtorrent/{session,watch,download}
sudo chown rtorrent:rtorrent -R /opt/rtorrent/{session,watch,download}

6. Tworzenie pliku z konfiguracją użytkownika .rtorrent.rc.

Katalog domyślny: /opt/rtorrent/.

sudo wget --no-check-certificate https://terminal28.com/download/.rtorrent.rc-new -O /opt/rtorrent/.rtorrent.rc
sudo chmod 777 /opt/rtorrent/.rtorrent.rc

Przykładowy plik konfiguracyjny .rtorrent.rc:

# Port SCGI
scgi_port = localhost:5000

#This is an example resource file for rTorrent. Copy to

# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#
throttle.min_peers.normal.set = 40
throttle.max_peers.normal.set = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#
throttle.min_peers.seed.set = 10
throttle.max_peers.seed.set = 100

# Maximum number of simultanious uploads per torrent.
#
throttle.max_uploads.set = 15

# Global upload and download rate in KiB. "0" for unlimited.
#
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 8

# Default directory to save the downloaded torrents.
#
directory.default.set = /opt/rtorrent/download

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#
session.path.set = /opt/rtorrent/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#
schedule2 = watch_directory,5,5,load_start=/opt/rtorrent/session/*.torrent
schedule2 = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#
schedule2 = low_diskspace,5,60,close_low_diskspace=2000M

# The ip address reported to the tracker.
#
#network.local_address.set = 127.0.0.1
#network.local_address.set = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#
#network.bind_address.set = 127.0.0.1
#network.bind_address.set = rakshasa.no

# Port range to use for listening.
#
network.port_range.set = 6890-6999

# Start opening ports at a random position within the port range.
#
network.port_random.set = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#
pieces.hash.on_completion.set = no

# Set whether the client should try to connect to UDP trackers.
#
trackers.use_udp.set = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#
#schedule2 = ip_tick,0,1800,ip=rakshasa
#schedule2 = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht.mode.set = auto

# UDP port to use for DHT.
#
dht.port.set = 6881

# Enable peer exchange (for torrents not marked private)
#
protocol.pex.set = yes

# Set downlad list layout style. ("full", "compact")
#
#ui.torrent_list.layout.set = "full"

7. Instalacja i konfiguracja ruTorrent.

7.1. ruTorrent via GIT.
sudo git clone https://github.com/Novik/ruTorrent.git /var/www/rutorrent/
sudo chown -R www-data:www-data /var/www/rutorrent
7.2. ruTorrent mobile.

Dostęp do ruTorrent, rTorrent z tel. iPhone i starszych modeli tel. innych firm.

http://pl.terminal28.com/dostep-do-rutorrent-rtorrent-z-tel-iphone-i-starszych-modeli-tel-innych-firm

Dostęp do ruTorrent, rTorrent z tel. z systemem Android.

http://pl.terminal28.com/rtorrent-transdroid-dostep-do-rtorrenta-z-telefonu

Zmiana ustawień odnośnie informacji o zajętości dysku/katalogu do którego ściągamy pliki.

Edytujemy plik konfiguracyjny ruTorrent’a i zmieniamy ścieżkę do dysku/katalogu do którego ściągamy pliki. Zastępujemy sciężkę do katalogu root „/” katalogiem ze ściagniętymi plikami.

sudo nano /var/www/rutorrent/conf/config.php
$topDirectory = '/opt/rtorrent/download'; // Upper available directory. Absolute path with trail slash.

Od tego momentu, w lewym dolnym rogu ruTorrent, będzie pokazywał prawidłową informacje o zajetości dysku/katalogu.

Niektóre aplikacje mogą znajdować się w innych lokalizacjach niż są zazwyczaj domyślnie.
Najlepiej jest użyć komendy whereis do wyszukiwania plików i sprawdzić gdzie znajdują się pliki binarne:

whereis gzip
Przykład:
gzip: /bin/gzip /usr/share/man/man1/gzip.1.gz /usr/share/info/gzip.info.gz
$pathToExternals = array(
"php" => '/usr/bin/php', // Something like /usr/bin/php. If empty, will be found in PATH.
"curl" => '/usr/bin/curl', // Something like /usr/bin/curl. If empty, will be found in PATH.
"gzip" => 'bin/gzip', // Something like /usr/bin/gzip. If empty, will be found in PATH.
"id" => '/usr/bin/id', // Something like /usr/bin/id. If empty, will be found in PATH.
"stat" => '/usr/bin/stat', // Something like /usr/bin/stat. If empty, will be found in PATH.
);

8. Instalacja baz GeoIP.

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
sudo gunzip GeoLiteCity.dat.gz
sudo mkdir -v /usr/share/GeoIP
sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

9. Tworzenie konfiguracji i zabezpieczanie dostępu do ruTorrent hasłem.

cd /var/www/rutorrent

Tworzenie pliku z szyfrowanym hasłem .htpasswd

sudo htpasswd -c /var/www/rutorrent/.htpasswd nazwa_użytkownika

Edytujemy plik /var/www/rutorrent/.htaccess i dodajemy wpis, który informuje apache2 o plikach i lokalizacjach chronionych hasłem.

sudo nano /var/www/rutorrent/.htaccess
AuthUserFile /var/www/rutorrent/.htpasswd
AuthName "ruTorrent_login"
AuthType Basic
require valid-user

10. Tworzenie dostępu do strony ruTorrent.

Tworzymy plik konfiguracyjny /etc/apache2/sites-available/rutorrent,
konfigurujemy alias do strony ruTorrent.

sudo nano /etc/apache2/sites-available/rutorrent.conf
# ruTorrent
#===========================================================================
<IfModule alias_module>

Alias /rutorrent        /var/www/rutorrent/ 

        <Directory /var/www/rutorrent/>
                Options +Indexes +Includes +FollowSymLinks +MultiViews
                AllowOverride all
                Require all granted
        </Directory>

</IfModule>
#===========================================================================
sudo ln -s /etc/apache2/sites-available/rutorrent.conf /etc/apache2/sites-enabled/rutorrent.conf

11. Aktywacja modułów serwera Apache2.

sudo a2enmod auth_digest
sudo a2enmod authn_file
sudo a2enmod xsendfile
sudo a2enmod scgi

12. Zabezpieczanie katalogu SCGI (/RPC2).

Tworzenie folderów: passwords-available, passwords-enabled w /etc/apache2.

sudo mkdir -p /etc/apache2/passwords-{available,enabled}

Przechodzimy do folderu /etc/apache2/passwords-available aby utworzyć nowe hasło do katalogu SCGI.

cd /etc/apache2/passwords-available
sudo htpasswd -c rtorrentscgi nazwa_użytkownika

Linkujemy plik konfiguracyjny rtorrentscgi z katalogu passwords-available do passwords-enabled.

sudo ln -s /etc/apache2/passwords-available/rtorrentscgi /etc/apache2/passwords-enabled/rutorrent

Edytujemy plik /etc/apache2/sites-available/rtorrentscgi i dodajemy wpis, który informuje Apache2 o plikach, lokalizacji SCGI chronionej hasłem i ustawiamy dostęp konfiguracji tylko z maszyny lokalnej.

sudo nano /etc/apache2/sites-available/rtorrentscgi.conf
#rTorrent lokalizacja hasła do SCGI
#===========================================================================
        <LocationMatch "/RPC2">
                AuthType        Basic
                AuthName        "rtorrentscgi"
                AuthUserFile    /etc/apache2/passwords-enabled/rtorrentscgi
                Require         valid-user
                BrowserMatch    "MSIE"  AuthDigestEnableQueryStringHack=On
                Require ip 127.0.0.1
        </LocationMatch>
#===========================================================================

# SCGI PORT
#===========================================================================

#LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

#===========================================================================
sudo ln -s /etc/apache2/sites-available/rtorrentscgi.conf /etc/apache2/sites-enabled/rtorrentscgi.conf

Restartujemy serwer Apache2.

sudo service apache2 restart

13. Tworzenie skryptu startowego pod systemd.

Automatyczne uruchamianie rTorrenta wraz ze startem systemu (serwera) oraz możliwość zatrzymywania, restartowania, i uruchamiania programu.

Tworzymy skrypt startowy pod systemd.

sudo nano /etc/systemd/system/rtorrent.service
[Unit]
Description=rTorrent
After=network.target

[Service]
UMask=002
Type=forking
RemainAfterExit=yes
KillMode=none
User=rtorrent
ExecStartPre=-/bin/rm -f /opt/rtorrent/session/rtorrent.lock
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
WorkingDirectory=/opt/rtorrent/

[Install]
WantedBy=multi-user.target

Włączenie skryptu podczas uruchamiania systemu.

sudo systemctl enable rtorrent.service

Podczas następnego startu systemu (serwera) rTorrent zostanie automatycznie uruchomiony w sesji screen’a

Komendy:

sudo service rtorrent start       - uruchamianie
sudo service rtorrent stop        - zatrzymywanie
sudo service rtorrent restart     - restart

lub

sudo systemctl start rtorrent     - uruchamianie
sudo systemctl stop rtorrent      - zatrzymywanie
sudo systemctl restart rtorrent   - restar

14. Uruchomienie rTorrent.

sudo service rtorrent start

Test nasłuchiwania rtorrenta:

sudo netstat -npl | grep rtorrent

Prawidłowa odpowiedź..

tcp    0 0    127.0.0.1:5000    0.0.0.0:*    LISTEN 16229/rtorrent
tcp    0 0    0.0.0.0:6890      0.0.0.0:*    LISTEN 16229/rtorrent
udp    0 0    0.0.0.0:6881      0.0.0.0:*    16229/rtorrent

Dostęp do strony ruTorrent:

http://adres_IP/rutorrent

lub

http://twoja_domena/rutorrent

Powinieneś być poproszony o nazwę użytkownika i hasło

 

  
Źródło:
http://libtorrent.rakshasa.no/
http://code.google.com/p/rutorrent/
http://code.google.com/p/avalanche-rt/

3 Komentarze

  1. Witam,
    Zainstalowałem rtorrent + rutorrent i działa OK.
    Próbowałem też uzysakć dostęp do rtorrenta za pomocą telefonu z androidem z zainstalowaną aplikacją transdroid ale niestety nie działa.
    Czy wskazany wyżej link do poradnika:
    http://pl.terminal28.com/rtorrent-transdroid-dostep-do-rtorrenta-z-telefonu
    jest aktualny?
    Próbuje wstawić w ustawieniach aplikacji Transdrone jako
    Nazwę hosta lub IP: (adres który działa w rutorrent) czyli
    twoja_domena/rutorrent
    ale nie mogę się połączyć. ..

    Inne ustawienia które mam
    port: 80
    typ serwera: rTorrent
    SCGI mount point: /RPC2
    login i hasło z rutorrenta

    Poprzednio korzystałem z Transdrone z rutorent zainstalowanym na innej maszynie wtedy jako ‚Nazwę hosta lub IP’: miałem tylko ‚twoja domena’ bez slesza w nazwie ‚/rutorrent’ Może to mu przeszkadza?

    1. Na samym dole tutoriala masz opis dostepu do rutorrenta przez www.
      http://adres_IP/rutorrent lub http://twoja_domena/rutorrent
      Masz 2 opcje do wyboru:
      1. wpisujesz nazwe ip lub hosta z /rutorrent
      2. przenosisz rutorrenta z katalogu /var/www/rutorrent do katalogu gównego /var/www,
      w konfigu sudo nano /etc/apache2/sites-available/rutorrent.conf usuwasz:
      Alias /rutorrent /var/www/rutorrent/
      zmieniasz Directory /var/www/rutorrent/ na /var/www/.

      1. Dzięki za poradnik i za odpowiedź 🙂
        Zrobiłem trochę inaczej i Transdrone działa 🙂
        Mianowicie zmieniłem zawartość pliku /etc/apache2/sites-available/rutorrent.conf.
        Utworzyłem wirtualnego hosta:

        Listen *:5001

        DocumentRoot /var/www/rutorrent/

        Require all granted

        w telefonie podaje tylko moja-domena oraz port 5001.
        Co ciekawe na komputerze z WIN działają oba adresy
        http:/moja-domena(localhost):5001/
        http://moja-domena(localhost)/rutorrent/
        Korzystając z Transdroide łącze się za pomocą mojej domowej sieci WIFI.
        Aby łączyć się z ‚zewnątrz’ spróbuje skonfigurować połączenie za pomocą openVPN.
        Pozdrawiam, B

Dodaj komentarz

Twój adres email nie będzie publikowany.