web-dev-qa-db-fra.com

La transmission ne fonctionnera pas sur le port 80

J'essayais d'utiliser l'interface Web de Transmission et cela fonctionnait parfaitement. Je pouvais y accéder via http://localhost:8080/transmission/web/, je pouvais utiliser mon adresse IP locale, je pouvais utiliser 127.0.0.1, je pouvais, après la redirection de port, même utiliser mon adresse IP réelle. Une connexion DNS a même réussi!

Le :8080 agacé sur l'URL m'énervait et je voulais le supprimer. Je suis donc allé dans les paramètres de Transmission et l'ai changé pour le port 80. Tout à coup, je n'ai pas pu me connecter via toute méthode ! Ils ont tous échoué. Même en appuyant sur le bouton "Ouvrir un client Web" dans les paramètres de Transmission, le message d'erreur (juste un message générique "impossible d'établir la connexion", si vous étiez curieuse.)
REMARQUE: Apache ni aucun autre logiciel serveur n'est installé.

Dans un moment de panique, je suis revenu au port 8080 et tout allait bien. Un autre essai sur 80 et échec. Redémarrer la transmission n'a rien arrangé non plus. (Sur un pressentiment, j'ai essayé de me connecter à l'URL :8080 alors que je le configurais sur le port 80, juste pour voir s'il utilisait toujours l'ancien port. Ce n'était pas le cas.)

Quoi qu'il en soit, ce n'est pas un problème critique, mais j'aimerais vraiment pouvoir utiliser le port 80 pour mon client Web! (bon, j'aimerais réellement pouvoir utiliser 443, mais c'est autre question ...)

4

Les 1024 premiers ports sont restreints; vous devez être root ou posséder la capacité CAP_NET_BIND_SERVICE appropriée.

Si vous voulez vraiment utiliser le port 80, vous pouvez donner cette capacité de transmission avec la commande setcap.

C'est la commande correcte pour la transmission:

Sudo setcap cap_net_bind_service+ep /usr/bin/transmission-daemon
6
RAOF

Une autre approche, si vous ne souhaitez pas attribuer de privilèges supplémentaires à la transmission et si Apache ou nginx sont déjà installés, consiste à utiliser Apache ou nginx pour transférer par proxy les connexions du port 80 au port 8080.

Voir cette approche:

https://serverfault.com/questions/141904/forwarding-Apache-requests-port-80-to-Tomcat-port-808

En résumé, il faut installer Apache avec mod_proxy puis:

ProxyPass        / http://hostname:8080/
ProxyPassReverse / http://hostname:8080/

Et vous pouvez même modifier les noms de chemin si nécessaire si vous souhaitiez également exécuter d'autres tâches sur le port 80.

L'équivalent en nginx serait également facile.

0
thomasrutter