[TUTO] rtorrent/rutorrent au travers d'un VPN OpenVPN


Recommended Posts

J'abandonne ce tutoriel, pour n'avoir a en maintenir que 1 !
Rendez-vous ici : https://www.forum-nas.fr/viewtopic.php?f=90&t=16625

 

rtorrent/rutorrent au travers d'un VPN OpenVPN ( Docker )

 

Bonjour,

 

ATTENTION : Suite a l'abandon de l'image linuxserver/rutorrent, je dois reprendre le tuto afin de l'adapter au passage sur l'image de crazymax. Pour le moment, le point  9 ( acces extérieur n'est pas à jour ).

 

Je vous propose ici, une solution afin de pouvoir télécharger des torrents, au travers d'un VPN OpenVPN, sans avoir a faire passer tout le NAS par le VPN, ce qui en temps normal n'est pas possible sur nos Synology/Xpenology.

 

Nous allons ici utiliser docker-compose, cette solution ne pourra donc ce faire, uniquement sur un NAS ou est possible d'installer Docker.

 

Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker-compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, ..

Pour ceux qui sont plus à l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

 

Sommaire :

  • 1/ Connaitre le PUID et PGID d'un utilisateur
  • 2/ Créer les dossiers nécessaires
    • 2.1/ Créer les dossiers
    • 2.2/ Création et Execution de /tun
  • 3/ Mise en place de la config .opvn
  • 4/ Création des fichiers "docker-compose.yml".

    • 4.1/ Création du fichier "docker-compose.yml" pour le VPN

    • 4.2/ Création du fichier "docker-compose.yml" pour rutorrent + des fichiers .env

  • 5/ Création des conteneurs avec docker-compose

    • 5.1/ Création du réseau

    • 5.2/ Création du conteneur VPN

    • 5.3/ Création du conteneur rutorrent

  • 6/ Accéder a l'interface rutorrent en local

  • 7/ Réactiver la fonction Effacer / Effacer et Supprimer les données

  • 8/ Sécuriser l’accès à l'interface rutorrent
  • 9/ Accéder à l'interface rutorrent depuis l'extérieur grace au Proxy inversé
  • 10 / Installer un theme sur rutorrent
  • 11/ Comment redémarrer mes conteneurs, les supprimer, ... en SSH

 

Pré-requis

Avoir installé le paquet Docker

Avoir un accès SSH au Syno/Xpenology

Avoir un serveur OpenVPN

Posséder un nom de domaine ( uniquement pour l’accès externe en https )

 

A modifier selon votre installation :

Toute mon installation, va ce faire dans un dossier partagé "docker" situé sur "@volume1"

Je vais donc installer le vpn dans /volume1/docker/vpn et rutorrent dans /volume1/docker/rutorrent

Les PUID/PGID de mon compte utilisateur sont : PUID=9999 PGID=111

Le nom de domaine utilisé pour l'exemple sera : tutoevo.fr

 

1/ Connaitre le PUID et PGID d'un utilisateur

Une fois en SSH, pour connaitre le PUID et le PGID d'un utilisateur, il vous suffit de taper : ( Dans cette exemple on souhaite les connaitre pour l'utilisateur "docker" )

id docker

La commande va retourner par exemple :

uid=1030(docker) gid=100(users) groups=100(users),101(administrators),65537(video)

Notre PUID (uid) est dans cette exemple 1030, et ici on voit que l'utilisateur possède 3 groupes ! Si on souhaite lui attribuer le groupe "users" alors le PGID sera 100.

 

2/ Créer les dossiers nécessaires

2.1/ Créer les dossiers

Comme dit au dessus, les chemins sont basé sur mon installation, à adapter selon votre installation.

Voici les dossiers a créer :

     - /volume1/docker/vpn/config

     - /volume1/docker/rutorrent/data
     - /volume1/docker/rutorrent/downloads

      - /volume1/docker/rutorrent/passwd

 

2.2/ Création et Exécution de /tun

Pour cette exemple, je vais me placer dans /volume1/docker/vpn, mais l'emplacement depuis lequel nous allons exécuter ce fichier n'a pas d'incidence.

Créer un fichier TUN.sh ( ou télécharger-le ici ), voici ce que doit contenir le fichier :

#!/bin/sh

# Create the necessary file structure for /dev/net/tun
if ( [ ! -c /dev/net/tun ] ); then
  if ( [ ! -d /dev/net ] ); then
    mkdir -m 755 /dev/net
  fi
  mknod /dev/net/tun c 10 200
  chmod 0755 /dev/net/tun
fi

# Load the tun module if not already loaded
if ( !(lsmod | grep -q "^tun\s") ); then
  insmod /lib/modules/tun.ko
fi

En SSH :

Je me place en root et je vais dans le dossier contenant TUN.sh :

sudo su -
cd /volume1/docker/vpn

Je le chmod afin de pour l’exécuter :

chmod 0755 TUN.sh

Et je l’exécute :

./TUN.sh

 

3/ Mise en place de la config .opvn

Dans notre dossier /volume1/docker/vpn/config, nous allons placer notre configuration .ovpn récupéré sur notre serveur OpenVPN.

 

Note : Si votre config VPN demande une identifications par mot de passe, alors il vous faudra modifier dans votre fichier .ovpn la ligne :

auth-user-pass

par :

auth-user-pass /vpn/vpn.auth

Dans le dossier /volume1/docker/vpn/config en plus du fichier .ovpn, vous aller devoir créer un fichier vpn.auth contenant 2 lignes, sur la 1ere ligne, votre identifiant de connexion au VPN, et sur la 2eme ligne, votre mot de passe.

 

Exemple :

votreidentifiantdeconnexion
votremotdepasse

 

4/ Création des fichiers "docker-compose.yml".

4.1/ Création du fichier "docker-compose.yml" pour le VPN

Nous allons maintenant créer un fichier "docker-compose.yml" avec les paramètres des conteneurs.

Voici mon fichier "docker-compose.yml" placé dans /volume1/docker/vpn

version: '3'
      
services: 
  vpn:
    image: dperson/openvpn-client:latest
    container_name: vpn
    restart: unless-stopped
    cap_add:
     - NET_ADMIN
    sysctls:
     - net.ipv6.conf.all.disable_ipv6=0
    security_opt:
     - label:disable
    environment:
     - PUID=9999
     - PGID=111
     - TZ=Europe/Paris
    networks:
     - vpn-network
    dns:
     - 84.200.69.80
     - 8.8.8.8
     - 9.9.9.9
    ports:
     - 8080:8080 #WebUI rutorrent
    devices:
     - /dev/net/tun:/dev/net/tun
    volumes:
     - /volume1/docker/vpn/config:/vpn
    command: '-f "" -r 192.168.0.0/24'
    healthcheck:
      test: ["CMD", "curl", "-Ss", "ifconfig.co"]
      interval: 60s
      timeout: 15s
     
networks:
  vpn-network:
    external:
      name: vpn-network

Dans le service "vpn" vous allez devoir porter votre attention sur :

- PUID=9999, à modifier avec le PUID de votre utilisateur
- PGID=111, à modifier avec le PUID de votre utilisateur

- /volume1/docker/vpn/config:/vpn, la 1ere partie "/volume1/docker/vpn/config" correspond au chemin vers votre config OpenVPN.

 

4.2/ Création du fichier "docker-compose.yml" pour rutorrent + des fichiers .env

Pour cela, nous allons nous baser sur l'exemple fournis par crazymax, disponible ici

 

Voici mon fichier "docker-compose.yml" placé dans /volume1/docker/rutorrent

version: "3.2"

services:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rutorrent-crazymax
    labels:
     - com.centurylinklabs.watchtower.enable=true
    depends_on:
      - vpn
    env_file:
      - "./rtorrent-rutorrent.env"
      - ".env"
    network_mode: "container:vpn"
    volumes:
      - "/volume1/docker/rutorrent/data:/data"
      - "/volume1/docker/rutorrent/passwd:/passwd"
      - "/volume1/docker/rutorrent/downloads:/downloads"
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    restart: unless-stopped
    
  geoip-updater:
    image: crazymax/geoip-updater:latest
    container_name: geoip-rutorrent-crazymax
    network_mode: "container:vpn"
    labels:
     - com.centurylinklabs.watchtower.enable=true
    depends_on:
      - rtorrent-rutorrent
    volumes:
      - "/volume1/docker/rutorrent/data/geoip:/data"
    env_file:
      - "./geoip-updater.env"
    restart: unless-stopped

Dans le service rtorrent-rutorrent, vous allez devoir porter votre attention sur :

- /volume1/docker/rutorrent/data:/data, la 1ere partie "/volume1/docker/rutorrent/datacorrespond au chemin vers le futur dossier data de rutorrent
- /volume1/docker/rutorrent/downloads:/downloads, la 1ere partie "/volume1/docker/rutorrent/downloads" correspond au chemin vers le dossier downloads

- /volume1/docker/rutorrent/passwd:/passwd, la 1ere partie "/volume1/docker/rutorrent/passwd" correspond au chemin vers le dossier passwd

 

Dans le service geoip-updater :

- /volume1/docker/rutorrent/data/geoip:/data , la 1ere partie "/volume1/docker/rutorrent/data/geoipcorrespond au chemin vers le futur dossier geoip de rutorrent qui sera créé automatiquement au lancement de rutorrent. Vous devez uniquement vous assurer que la partie "/volume1/docker/rutorrent/data" est juste.

 

Dans le script du compose ci dessus, on peu voir qu'il fait appel à trois fichiers : rtorrent-rutorrent.env , geoip-updater.env et .env , nous allons devoir les créer également.

 

Toujours en suivant l'exemple de crazymax, nous allons créer un fichier rtorrent-rutorrent.env avec le contenu suivant :

 

TZ=Europe/Paris
PUID=1000
PGID=1000

MEMORY_LIMIT=256M
UPLOAD_MAX_SIZE=16M
OPCACHE_MEM_SIZE=128
MAX_FILE_UPLOADS=50
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr

XMLRPC_AUTHBASIC_STRING=rTorrent XMLRPC restricted access
RUTORRENT_AUTHBASIC_STRING=ruTorrent restricted access
WEBDAV_AUTHBASIC_STRING=WebDAV restricted access

RT_LOG_LEVEL=info
RT_LOG_EXECUTE=false
RT_LOG_XMLRPC=false

RU_REMOVE_CORE_PLUGINS=erasedata,httprpc
RU_HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
RU_HTTP_TIME_OUT=30
RU_HTTP_USE_GZIP=true
RU_RPC_TIME_OUT=5
RU_LOG_RPC_CALLS=false
RU_LOG_RPC_FAULTS=true
RU_PHP_USE_GZIP=false
RU_PHP_GZIP_LEVEL=2
RU_SCHEDULE_RAND=10
RU_LOG_FILE=/data/rutorrent/rutorrent.log
RU_DO_DIAGNOSTIC=true
RU_SAVE_UPLOADED_TORRENTS=true
RU_OVERWRITE_UPLOADED_TORRENTS=false
RU_FORBID_USER_SETTINGS=false
RU_LOCALE=UTF8

Dans ce fichier vous allez devoir modifier le PUID/GUID en fonction du votre :

- PUID=9999, à modifier avec le PUID de votre utilisateur
- PGID=111, à modifier avec le PUID de votre utilisateur

 

Nous allons également créer le fichier geoip-updater.env avec le contenu suivant :

TZ=Europe/Paris
EDITION_IDS=GeoLite2-City,GeoLite2-Country
LICENSE_KEY=
DOWNLOAD_PATH=/data
SCHEDULE=0 0 * * 0
LOG_LEVEL=info
LOG_JSON=false

 

Et un fichier .env :

RT_DHT_PORT=6881
XMLRPC_PORT=8000
RUTORRENT_PORT=8080
WEBDAV_PORT=9000
RT_INC_PORT=50000

 

Enregistrer les deux fichiers, puis on les transferts sur le NAS, au même endroit que le docker-compose.yml que nous avons préparé pour rutorrent, soit dans /volume1/docker/rutorrent

 

Votre dossier docker avec vpn et rutorrent,  doit donc se présenter sous la forme suivante :

docker/
   |_ vpn
       |_ docker-compose.yml
       |_ config
   |_ rutorrent
       |_ docker-compose.yml
       |_ geoip-updater.env
       |_ rtorrent-rutorrent.env
       |_ .env
       |_ data
       |_ passwd
       |_ downloads

 

5/ Création des conteneurs avec docker-compose

En SSH, 1ere chose, je passe en mode administrateur avec la commande :

Citation

sudo su -

Le mot de passe admin vous est demandé.

 

5.1/ Création du réseau

On créé le reseau vpn-network necesaire au fonctionnement du conteneurs VPN :

 

docker network create vpn-network

 

5.2/ Création du conteneur VPN

 

Dans mon dossier /volume1/docker/vpn, j'ai chargé mon fichier docker-compose.yml pour la création du vpn. Je vais donc accéder à ce dossier, pour cela je fais :

Citation

cd /volume1/docker/vpn

 

Ensuite, afin "d’exécuter" mon fichier docker-compose.yml, je tape en ssh :

Citation

docker-compose up -d

 

La création du conteneur se fait, ils devient visible dans l'appli "Docker" de DSM.

 

5.3/ Création du conteneur rutorrent

Dans mon dossier /volume1/docker/rutorrent, j'ai chargé mon fichier docker-compose.yml pour la création du conteneur rutorrent. Je vais donc accéder à ce dossier, pour cela je fais :

Citation

cd /volume1/docker/rutorrent

 

Ensuite, afin "d’exécuter" mon fichier docker-compose.yml, je tape en ssh :

Citation

docker-compose up -d

 

La création du conteneur se fait, ils devient visible dans l'appli "Docker" de DSM.

 

 

6/ Accéder a l'interface rutorrent en local

L’accès a l'interface ruTorrent se fait simplement via l'adresse ip du nas suivi du port 8080 ( http ).

Exemple : http://192.168.0.66:8080 ( si votre nas est sous l'ip 192.168.0.66 )

 

 

7/ Réactiver la fonction Effacer / Effacer et Supprimer les données

Par défaut dans l'image de crazymax, la fonction "Effacer et Supprimer les données" sur un torrent n'existe pas. Uniquement la fonction "Effacer", et celle-ci efface le torrent ET les données.

Il n'est donc pas possible d'effacer simplement un torrent du client, sans supprimer les fichiers associés.

 

Ici nous allons voir comment ré-activer cette fonction :

 

Ceci doit être fait, conteneur à l’arrêt, pour arrêter le conteneur, utiliser la commande :

docker stop rutorrent-crazymax

 

Pour réactiver cette fonction, il faut dans le fichier rtorrent-rutorrent.env :

Retirer "erasedata" de la ligne ( N°21 ) suivante :

RU_REMOVE_CORE_PLUGINS=erasedata,httprpc

 

Ce qui donne :

RU_REMOVE_CORE_PLUGINS=httprpc

 

Puis, nous allons editer le fichier .rtorrent.rc présent dans /volume1/docker/rutorrent/data/rtorrent :

Récupérer le sur votre pc puis éditer-le.

 

Les deux dernieres lignes sont :

# Erase data when torrent deleted (no need erasedata plugin on ruTorrent)
method.set_key = event.download.erased,delete_erased,"execute=rm,-rf,--,$d.data_path="

 

Nous allons commenter la commande afin de la désactiver, ce qui donne :

# Erase data when torrent deleted (no need erasedata plugin on ruTorrent)
# method.set_key = event.download.erased,delete_erased,"execute=rm,-rf,--,$d.data_path="

 

Enregister le fichier, puis remplacer votre ancien fichier .rtorrent.rc par celui-ci.

 

ATTENTION au nommage du fichier ! Ne pas oublier le POINT en debut du nom.

 

Maintenant vous pouvez re-lancer le conteneur rutorrent avec la commande suivante et tester le fonctionnement :

docker start rutorrent-crazymax

 

8/ Sécuriser l’accès à l'interface rutorrent

La création du fichier htaccess afin de sécuriser l'acces a l'interface de rutorrent est très simple.

Rendez vous en SSH, dans le dossier du conteneur rutorrent ;

 

cd /volume1/docker/rutorrent

 

Arreter le conteneur :

docker stop rutorrent-crazymax

 

Puis executer la commande suivante :

docker run --rm -it httpd:2.4-alpine htpasswd -Bbn MON_PSEUDO MON_MOT_DE_PASSE >> $(pwd)/passwd/rutorrent.htpasswd

Dans cette commande, il faut modifier :

MON_PSEUDO, par le pseudo voulu pour l'identification

MON_MOT_DE_PASSE, par le mot de passe souhaité pour l'identification

 

Une fois la commande executée, redémarrer le conteneur :

docker start rutorrent-crazymax

 

Maintenant, l'acces a l'interface de rutorrent réclame une identification :)

 

Pour "Archive", si dessous, la façon de faire avec l'archive linuxserver/rutorrent :

Révélation

 

Dans le dossier "/volume1/docker/rutorrent-vpn/config/nginx" éditer le fichier "nginx.conf"

Puis après :

Citation

    # server_tokens off;

 

Rajouter :

Citation

    auth_basic             "Restricted Access!";
    auth_basic_user_file    /config/nginx/.htpasswd;

 

Voici un exemple :

f3t08vU.png

Dans le dossier "/docker/rutorrent-vpn/config/nginx", vous devez créer un fichier ".htpasswd" qui contiendra ceci :

Citation

pseudo:votremotdepassecrypté

 

Vous pouvez utiliser ce générateur afin de crypter le mot de passe choisi http://www.infowebmaster.fr/outils/crypter-htpasswd.php

 

 

 

9/ Accéder à l'interface rutorrent depuis l'extérieur grace au Proxy inversé

Suite au changement d'image ( linuxserver vers crazymax ), je ne sais pas si cette étape du tuto est encore valide cela viendra par la suite.

Dans le "Proxy inversé", nous allons donc rediriger le port 4443 ( https ) vers un sous domaine de mon domaine "tutoevo.fr".

Le sous domaine choisi sera : rutorrent.tutoevo.fr ( Pour que cela fonctionne le nom d'hôte doit aussi être créé chez votre fournisseur du nom de domaine ).

Dans l'image ci-dessous, nous avons créé une règle "rutorrentHTTPS",  allons rediriger le protocole "HTTPS" au nom d’hôte "rutorrent.tutoevo.fr". Nous activons "HTTP/2" et renseignons en destination, "localhost" sur le port "4343".

 

q1hSMPU.png

 

Une fois cela fait, on pourra accéder à l'interface de rutorrent, via l'adresse "https://rutorrent.tutoevo.fr".

 

10 / Installer un theme sur rutorrent

 

A venir

 

11/ Comment redémarrer mes conteneurs, les supprimer, ... en SSH

Bien qu'il n'y ai aucun soucis avec le conteneur VPN, vous remarquerez assez vite que l'installation n'étant pas classique, l'interface Docker de DSM va par exemple, refuser de démarrer le docker rutorrent ( car pour lui, il n'est relié a aucun réseau, et ne comprend pas que son réseau soit un conteneur ( ici vpn ).

Il faut donc obligatoirement le démarrer en SSH*. Voici quelques commandes de base :

 

*L'utilisation de Portainer est également possible

 

Arreter le conteneur rutorrent-crazymax :

Citation

docker stop rutorrent-crazymax

 

Redémarrer le conteneur rutorrent-crazymax :

Citation

docker restart rutorrent-crazymax

 

Démarrer le conteneur rutorrent-crazymax :

Citation

docker start rutorrent-crazymax

 

Supprimer le conteneur rutorrent-crazymax :

Citation

docker rm rutorrent-crazymax

 

---------------------

 

Citation

10/04/2021 - L'image linuxserver/rutorrent n'est plus maintenu. MAJ du tuto pour utiliser l'image crazy-max/docker-rtorrent-rutorrent
ATTENTION : Il n'est pas possible de basculer simplement de l'image linuxserver à crazymax en gardant sa config/torrents de l'image linuxserver !! Vous trouverez un tuto de migration ici : https://blog.thelazyfox.xyz/docker-linuxserver-rutorrent-deprecated-what-i-have-done/

24/02/2021 - Rajout de la partie 5.1/ Création du réseau

12/05/2020 - Rajout d'une section pour accès local à l'interface de rutorrent.

11/04/2020 - Réorganisation des étapes de créations des conteneurs ( avec séparation de la création du VPN et de rutorrent ), note concernant la connexion a des VPN demande une identification par pseudo/mot de passe, création chap. 7 commande de base, explication sur la création du dossier TUN.

24/02/2020 - Création d'une explication sur l'obtention du PUID et PGID

04/02/2020 - Correction "network_mode: "services:vpn"" en "network_mode: "service:vpn""

31/10/2019 - Mise en page

24/10/2019 - Création du sujet

 

Edited by EVOTk
  • Thanks 2
Link to post
Share on other sites

Salut,

 

J'ai peur de pas bien comprendre certaines choses :

 - La redirection HTTPS vers RUtorrent dans le RP pointe vers le conteneur VPN, et pas celui de Rutorrent. C'est normal ?

 - es-tu sûr que le traffic torrent est chiffré de bout en bout ? J'ai l'impression que le traffic n'est chiffré qu'au sein de ton réseau local mais sorti de la Box tout est en clair. Je me trompe ? Pour moi, pour que ce soit faisable il aurait  fallu se connecter à un serveur VPN sur Internet et non hébergé en local. MAis peut-être que j'ai tord, je dis ça en n'ayant pas testé ton tuto.

Link to post
Share on other sites

Salut, 

Effectivement on passe par le conteneur vpn. 

Le conteneur vpn est un client, et non un serveur. 

 

Il te faut donc par exemple loué un vps, y installer un serveur OpenVPN et implémenter ton fichier de configuration dans le conteneur vpn afin qu'il puisse s'y connecter. 

 

Je peux te confirmer le fonctionnement, tester avec un torrent ip. Et en cas de coupure du vpn, rtorrent devient inaccessible, afin de ne pas télécharger les torrent en divulgant sa vrai adresse ip.

 

Je continuerai à étoffer le tuto ce soir, et autres. Mais j'ai commencer à le poster car d'autres pourrai peut être m'aider. Il me reste encore quelques points à éclaircir comme par exemple l'ouverture de port sur le vpn,.. 

 

Le reverse proxy permet juste d’accéder facilement en https a l'interface rutorrent sans passer par le VPN.

Edited by EVOTk
Link to post
Share on other sites

Hello, chouette tuto et un grand merci pour le partage de connaissances! Je faisais un peu pareil avant de louer un VPS hébergeant un serveur OpenVPN Server pour plus de commodité mais j'utilisais la solution prête à l'emploi d'haugene, docker-transmission-openvpn. Cela avait l'avantage d'être très simple à configurer mais il faut supporter l'aridité de l'interface de transmission...

Edited by pmchan
Link to post
Share on other sites
Il y a 10 heures, pmchan a dit :

Hello, chouette tuto et un grand merci pour le partage de connaissances! Je faisais un peu pareil avant de louer un VPS hébergeant un serveur OpenVPN Server pour plus de commodité mais j'utilisais la solution prête à l'emploi d'haugene, docker-transmission-openvpn. Cela avait l'avantage d'être très simple à configurer mais il faut supporter l'aridité de l'interface de transmission...

 

Salut, merci.

Effectivement la solution haugene est bien, et plutôt simple d'emploi mais j'avais trouvé transmission très "lourd", a partir de 100 torrents, perdait de sa fluidité contrairement a utorrent qui avec 300 torrents ne dit rien.

Link to post
Share on other sites
  • 3 weeks later...

Je viens de commencer ton tuto je te remercie par contre j'ai un soucis lors de la création avec le docker-compose :

 

/volume1/docker/TorrentVPN# docker-compose up -d
Starting rutorrent-vpn ...
Starting rutorrent-vpn ... error                                                                                                      
ERROR: for rutorrent-vpn  Cannot start service rutorrent: network services:vpn not found

ERROR: for rutorrent  Cannot start service rutorrent: network services:vpn not found

pourtant mon container vpn est bien lancer. 

 

edit : il y a une erreur dans le docker-compose.yml 

 

Citation

  network_mode: "services:vpn"

il faut enlevé le 's' pour que l'erreur disparaisse 

 

Edited by Minibombardo
Link to post
Share on other sites

petite question le port de rutorrent est en erreur chez vous aussi ? 

 

car j'ai déjà un docker qui a ce problème, du coup je ne fait pas de seed ce qui me pose problème. 

 

si j'ai bien lu le message d'avant le téléchargement n'est pas crypté de bout en bout c'est ça ? 

Edited by Minibombardo
Link to post
Share on other sites

Actuellement souffrant d'une forte grippe je ne suis pas tres actif, dsl.

 

Le port rutorrent est en erreur chez moi aussi mais cela ne gene pas mon seed. A voir se que tu utilise comme serveur openvpn, mais c'est un reglage de port fowarding

https://upandclear.org/2016/06/25/iptables-faut-pas-en-avoir-peur-regles-openvpn-secu/

 

La plupart des tracker utilisant le protocole http, rien n'est chiffré. Ici tout passe par le VPN, sauf ta connexion a rutorrent qui se passe par le proxy du NAS, qui lui doit etre en HTTPS.

Avec un torrent IP, tu peut facilement confirmer le fonctionnement du téléchargement du torrent via le VPN : http://checkmyip.torrentprivacy.com/

Link to post
Share on other sites
  • 1 month later...

Hello, 

 

Ca ma l'air très sympa tout ca, et exactement ce dont j'ai besoin. Mais j'avoue être un noob en docker et ne pas connaitre les subtilités de toute la config proposée, ce qui devait arriver arriva  donc : je n'arrive pas à faire fonctionner le bouzin puisqu'après la commande "sudo docker-compose up -d" j'obtiens dans mon Putty :

 

Citation

Starting vpn ... done
Starting rutorrent-vpn ... error

ERROR: for rutorrent-vpn  Cannot start service rutorrent: OCI runtime create failed: container_linux.go:338: creating new parent process caused "container_linux.go:1897: running lstat on namespace path \"/proc/25588/ns/net\" caused \"lstat /proc/25588/ns/net: no such file or directory\"": unknown

ERROR: for rutorrent  Cannot start service rutorrent: OCI runtime create failed: container_linux.go:338: creating new parent process caused "container_linux.go:1897: running lstat on namespace path \"/proc/25588/ns/net\" caused \"lstat /proc/25588/ns/net: no such file or directory\"": unknown
ERROR: Encountered errors while bringing up the project.
 

 

Et comme je ne comprends pas tout ce qui est dit dans ce message d'erreur, je me tourne vers l'humble créateur de ce tuto :a urais-tu une idée ? :)

Merci d'avance, 

Link to post
Share on other sites

Salut,

Je ne connaît pas cette erreur non plus.

 

le service VPN semble etre en fonction lui ? le reseau " vpn-network" également ?

Si oui, essaye de créer le docker rutorrent seul, de cette facon :

 

Dans un fichier docker-compose.yml

Tu place :

version: '3'
      
services: 
  rutorrent:
    image: linuxserver/rutorrent:latest
    container_name: rutorrent-vpn
    restart: unless-stopped
    network_mode: "container:vpn"
    environment:

Apres environnement: , tu récupère tes valeurs que tu avait renseigné pour créer l'ancien conteneur ( environnement et volume )

A la fin tu doit avoir :

networks:
  vpn-network:
    external:
      name: vpn-network

et tu essaye de le créer : sudo docker-compose up -d

 

---------------------

 

Ton fichier resemblera donc a ceci :

version: '3'
      
services: 
  rutorrent:
    image: linuxserver/rutorrent:latest
    container_name: rutorrent-vpn
    restart: unless-stopped
    network_mode: "container:vpn"
    environment:
     - PUID=1000
     - PGID=100
     - TZ=Europe/Paris
    volumes:
     - /volume1/docker/rutorrent-vpn/config:/config
     - /volume1/docker/rutorrent-vpn/downloads:/downloads
     
networks:
  vpn-network:
    external:
      name: vpn-network

Attention aux espaces et tabulation

Link to post
Share on other sites

Hello EVOTk et merci pour ce tuto !

 

Je rencontre un souci et étant néophyte sur le sujet, je suis complètement perdu :)

 

Lorsque je lance la commande afin "d’exécuter" mon fichier docker-compose.yml, j'ai cette erreur là :

ERROR: yaml.parser.ParserError: while parsing a flow mapping

  in "./docker-compose.yml", line 1, column 1

expected ',' or '}', but got '{'

  in "./docker-compose.yml", line 2, column 34

Est-ce que tu aurais une idée de mon erreur ? Merci d'avance !

Link to post
Share on other sites

Il semblerai que ton fichier contienne des caractères non attendu.

Pourrai tu m'envoyer par MP ton fichier fichier complet via download.gg par exemple ?

 

Tu as créer comment ton fichier ?

Sur ton pc via Bloc Note, ou NotePad++ ?

 

Il faut bien être un encodage UTF-8

Y0vj9ko.png

 

PS : Bizarre je recoit pas les notifications pour les réponses sur ce sujet :(

Link to post
Share on other sites

Je l'ai fais avec textEdit sous mac. J'ai vérifier l'encodage, et c'est bien en UTF-8.

 

Voici la capture des paramètres de TextEdit :

 

Je t'envoi également mon fichier en MP.

 

Merci pour ton aide

Capture d’écran 2020-04-08 à 14.01.39.jpg

Edited by kameomanu
modification réponse
Link to post
Share on other sites

Salut,

Voici comment le fichier s'ouvre chez moi :

IZ1JW51.png

Il y a a donc un soucis avec ton fichier, aucune idée si c'est l'encodage ou autre ...

Je te conseil de récupérer ce fichier ( qui contient exactement ce que contient le tuto ), et de le modifier directement depuis l'interface Synology ( DSM intègre un Editeur de Texte qu'il faut prendre dans le centre de paquets )

3KEJkyW.png

bLaP6qS.png

 

Link to post
Share on other sites

J'ai utilisé ton fichier, modifié directement depuis DSM. Ca allait plutôt bien, le script s'est lancé, mais je fini sur cette erreur et je ne comprend pas pourquoi :

 

 

Pulling vpn (dperson/openvpn-client:latest)...
latest: Pulling from dperson/openvpn-client
c9b1b535fdd9: Pull complete
9a16136d4352: Pull complete
64eda7403900: Pull complete
Digest: sha256:b065cb5a80621958ff90541ab5c758cd2eabbf3b8b2806e924c79a57c62de9ab
Status: Downloaded newer image for dperson/openvpn-client:latest
Pulling rutorrent (linuxserver/rutorrent:latest)...
latest: Pulling from linuxserver/rutorrent
2270dbce547b: Pull complete
3e9b20eadbf1: Pull complete
1352211dd4fc: Pull complete
11b571d154fc: Pull complete
773bf52839a5: Pull complete
a66ca8ce0331: Pull complete
d57fc516db4a: Pull complete
02921cc6db1b: Pull complete
Digest: sha256:68f577068feeeebaead372d32d637521dd20cb42b15f5888ed085935d854b5d3
Status: Downloaded newer image for linuxserver/rutorrent:latest
Creating vpn ... error

ERROR: for vpn  Cannot start service vpn: linux runtime spec devices: error gathering device information while adding custom device "/dev/net/tun": no such file or directory

ERROR: for vpn  Cannot start service vpn: linux runtime spec devices: error gathering device information while adding custom device "/dev/net/tun": no such file or directory
ERROR: Encountered errors while bringing up the project.

Une idée ? Je suis un boulet 😅

Link to post
Share on other sites

Tu na pas de /tun !

Effectivement, c'est un point que je vais devoir rajouter dans le tuto je pense !

 

Donc procédure :

Créer un fichier TUN.sh ( ou télécharger-le ici )

#!/bin/sh

# Create the necessary file structure for /dev/net/tun
if ( [ ! -c /dev/net/tun ] ); then
  if ( [ ! -d /dev/net ] ); then
    mkdir -m 755 /dev/net
  fi
  mknod /dev/net/tun c 10 200
  chmod 0755 /dev/net/tun
fi

# Load the tun module if not already loaded
if ( !(lsmod | grep -q "^tun\s") ); then
  insmod /lib/modules/tun.ko
fi

 

 

 

Pour l'exemple, chez moi il sera dans : /volume10/docker/vpn

 

En SSH sur le NAS :

On ce place en root :

sudo su -

On ce place dans le dossier contenant TUN.sh, on le chmod, puis on l’exécute :

cd /volume10/docker/vpn
chmod 0755 TUN.sh
./TUN.sh

Après ceci, tu devrai pouvoir créer ton conteneur vpn

 

Edited by EVOTk
Link to post
Share on other sites

J'ai une erreur après avoir exécuté, pourtant le fichier est bien sous docker/vpn

root@kameomedia:/volume1/docker/vpn# ./TUN.sh
-ash: ./TUN.sh: /bin/sh^M: bad interpreter: No such file or directory

1215833185_Capturedecran2020-04-08a16_07_52.thumb.jpg.9c3719a460930ddc1ff927e29db2f399.jpg

Edited by kameomanu
Link to post
Share on other sites

Bon ça avance, effectivement le fichier TUN.sh est ok

 

Ensuite je relance le processus, le VPN est créé, mais ça bloque sur le container rutorrent

 

root@kameomedia:/volume1/docker# sudo docker-compose up -d
Creating vpn ... done
Creating rutorrent-vpn ... error

ERROR: for rutorrent-vpn  Cannot start service rutorrent: Container 28c24d0082736151e633c05935144b7d558c567a3b1864b9f61d5e26807d5d11 is restarting, wait until the container is running

ERROR: for rutorrent  Cannot start service rutorrent: Container 28c24d0082736151e633c05935144b7d558c567a3b1864b9f61d5e26807d5d11 is restarting, wait until the container is running
ERROR: Encountered errors while bringing up the project.

Et ça donne ça dans docker :

 

2105963946_Capturedecran2020-04-08a16_32_04.thumb.jpg.3ca4602328ab3ebed1ade0355b9caf64.jpg

Edited by kameomanu
correction orthographe
Link to post
Share on other sites

Je te renvoyé en MP ton fichier

Il va falloir que je re-voit mon tuto je pense :)

 

Il faut que tu supprime tes anciens docker :

sudo docker-compose rm vpn
sudo docker-compose rm rutorrent-vpn

Je tes renvoyer 2 fichiers, a executer, vu qu'ils ont le même nom tu ne peut pas les mettre au meme endroit, perso, je les place chacun dans leurs dossiers respectif sur le nas soit /volume10/docker/vpn, et /volume10/docker/rutorrent-vpn

 

Il faut que tu fasse le vpn en 1er, puis rutorrent

Link to post
Share on other sites

Presque 😅

Donc voici le résultat, toujours ok pour le vpn mais pas pour rutorrent

 

root@kameomedia:/volume1/docker/docker-compose/vpn# sudo docker-compose up -d
Creating vpn ... done
root@kameomedia:/volume1/docker/docker-compose/vpn# cd /volume1/docker/docker-compose/rutorrent-vpn
root@kameomedia:/volume1/docker/docker-compose/rutorrent-vpn# sudo docker-compose up -d
ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./docker-compose.yml", line 1, column 1
expected <block end>, but found '<block mapping start>'
  in "./docker-compose.yml", line 3, column 3
root@kameomedia:/volume1/docker/docker-compose/rutorrent-vpn# 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.