Accès exterieur Transmission-daemon + Nginx

Bonjour,

Je rencontre un léger souci avec Transmission depuis l’extérieur.

Tout d’abord, j’ai installé transmission le plus simplement du monde, en LAN ça fonctionne sans souci.
Ensuite, j’ai fait une redirection sur ma box pour le port 9090 (port RPC de ma conf transmission).

"alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/var/lib/transmission-daemon/downloads", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/root/Downloads", "incomplete-dir-enabled": false, "lpd-enabled": false, "max-peers-global": 200, "message-level": 3, "peer-congestion-algorithm": "", "peer-limit-global": 240, "peer-limit-per-torrent": 60, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": false, "port-forwarding-enabled": false, "preallocation": 1, "prefetch-enabled": 1, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": false, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "{021f21203ddd90847c6c6d7b0deefc3aa496d8bdgqqp.6gD", "rpc-port": 9090, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true

De l’extérieur, si je tape mon IP publique X.X.X.X:9090, je n’ai pas de message d’erreur, tout est faisable.
Vous allez me dire : Où est le problème, tout fonctionne…

Là où les ennuis commencent, c’est avec Nginx. Tout comme beaucoup de tutos le précisent en tapant transmission + nginx dans Google, j’ai créé un site Nginx avec les paramètres suivants :

server {
        listen 443;
        ssl on;

        ssl_certificate /certs/transmission/transmission.crt;
        ssl_certificate_key /certs/transmission/transmission.key;

        server_name mytorrents.com;
        
        client_max_body_size 1G;
        fastcgi_buffers 64 4K;

        location /transmission {
                proxy_pass      http://127.0.0.1:9090/transmission;
        }

        location / {
                proxy_pass      http://127.0.0.1:9090/transmission/web/;
       }
}

Et là, une fois le site activé, j’arrive bien sur la même page transmission.
Dans ce cas, le site est bien en HTTPS, et possède même un nom de domaine “mytorrents.com” !
Cela permet aussi que je ferme le port 9090 sur ma box et que j’ouvre le 443 pour multiples choses…

En revanche, un message d’erreur s’affiche, et impossible d’ajouter de torrents, beaucoup de boutons en bas n’ourvent pas les menus, etc…
http://hpics.li/0e2d0d5

J’ai essayé avec et sans HTTPS, sur des ports différents, j’ai même essayé d’ouvrir le port supplémentaire 51413, le peer-port de la conf transmission, mais pareil… j’ai également testé avec un peu plus de paramètres dans le virtualHost Nginx, mais cela n’a jamais rien changé.

Si quelqu’un a une toute petite idée :think: un peu étrange, n’est-ce pas ?
Merci :wink:

Salut,
As-tu essayé de mettre:

Ou

location /transmission { proxy_pass http://localhost:9090/transmission; }

?

Merci de ta réponse.

Je suis maintenant en local, je teste que depuis l’intérieur et j’ai la même erreur seulement lorsque je fais gérer mon site par Nginx… Rien à voir avec l’accès extérieur, donc.

J’ai testé avec ton option, dans /etc/transmission-daemon/settings.JSON

J’ai bien changé 127.0.0.1 par localhost dans le fichier de site Nginx, cela ne devrait pas changer grand chose, mais bon à tout hasard.

En coupant Nginx et en passant par le port du serveur RPC de Transmission, aucun problème.
Malheureusement, même les logs restent vraiment vides (à moins que j’arrive à augmenter le niveau de log Nginx, je sais pas…).

Ou bien peut-être faudrait-il faire un proxy_pass vers plusieurs ports…

Salut,
Malheureusement je connais mal Nginx…
Pourquoi vouloir passer par Nginx si ça fonctionne sans ?

En fait, sur mon Raspberry PI, j’ai plusieurs vhosts Nginx en SSL, accessible par un nom NO-IP. (Seul le Raspberry fait la reconnaissance du nom, tous les noms NO-IP sont redirigés vers la même IP publique, logique).

D’une part, j’aimerais ne pas préciser le port de l’extérieur, donc utiliser un port standard du Web, 80 ou 443 (même si c’est pas dramatique, ceci dit…).

Mais en fait, j’aimerais surtout :

  • taper un nom en NO-IP : pour ça, obligé de passer par un serveur Web gérant la reconnaissance server_name, vu que mes hôtes possèdent tous un nom sur la même machine.
  • sécuriser l’accès en HTTPS : à ma connaissance, le serveur RPC de Transmission ne fait pas cela…
    Même en le mettant sur le port 443, impossible de préciser les certificats à utiliser dans les options, à mon avis.

Merci quand même de ton aide, je referais quelques tests à l’occasion, sur une autre machine ayant Nginx ou Apache, pour voir si ça change.

Ce qui est bizarre, c’est le fait qu’aucune personne ne rencontre cette erreur dans les tutos Transmission + Nginx sur le Net…