Opened 9 years ago

Last modified 21 months ago

#2236 new Enhancement

transmission-remote over IPv6

Reported by: gurubert Owned by: charles
Priority: Normal Milestone: None Set
Component: libtransmission Version: 1.71
Severity: Normal Keywords: IPv6
Cc: julian@…, tom@…, alexandre.rossi@…, tore@…, cabanur@…, kenyon@…, mail@…, nekit1234007+TransmissionTrac@…, decathected@…, michal.tkacz@…

Description

It should be possible to use transmission-remote over IPv6.

Currently port 9091 is only available over IPv4. The transmission-daemon (the component I use) binds only port 51413 over IPv6.

Attachments (1)

patch-daemon_remote.c (311 bytes) - added by mezz 7 years ago.

Download all attachments as: .zip

Change History (34)

comment:1 Changed 9 years ago by gurubert

  • Keywords IPv6 added

comment:2 Changed 9 years ago by charles

  • Component changed from Transmission to libtransmission
  • Owner set to charles

comment:3 Changed 9 years ago by Julian Mehnle

  • Cc julian@… added

I can confirm this. Even though my settings.json file says:

"bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::",

transmission-daemon is not accepting IPv6 connections on port 9091, only IPv4.

comment:4 Changed 8 years ago by wereHamster

  • Cc tom@… added

comment:5 follow-up: Changed 8 years ago by charles

This isn't going to be possible until libevent's evhttp supports IPv6. You need to report this enhancement request upstream to their tracker.

comment:6 Changed 7 years ago by mezz

Anonymous <swell.k@…> has submitted a PR with patch to me as he has pointed me to here.

http://www.freebsd.org/cgi/query-pr.cgi?pr=155139

I think it's a good idea to change from localhost from to 127.0.0.1, since evhttp doesn't support IPv6 yet. Also, many users have in the /etc/hosts looks like:

::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain

He has tested it with the Transmission 2.21 (11855). Attached a patch.

Changed 7 years ago by mezz

comment:7 Changed 7 years ago by niol

  • Cc alexandre.rossi@… added

comment:8 in reply to: ↑ 5 Changed 6 years ago by monson

Replying to charles:

This isn't going to be possible until libevent's evhttp supports IPv6. You need to report this enhancement request upstream to their tracker.

Now libevent 2.0.x has supported IPv6.

comment:9 Changed 6 years ago by tore

This is still a problem in Fedora 17, which contains Transmission 2.50 using libevent 2.0.18 (which, as far as I know, supports IPv6).

Attempting to set "rpc-bind-address" to "::" yields the following error message:

RPC Server :: is not an IPv4 address. RPC listeners must be IPv4 (rpc-server.c:990)

comment:10 Changed 6 years ago by tore

  • Cc tore@… added
  • Version changed from 1.71 to 2.50

This is still a problem in Fedora 17, which contains Transmission 2.50 using libevent 2.0.18 (which, as far as I know, supports IPv6).

Attempting to set "rpc-bind-address" to "::" yields the following error message:

RPC Server :: is not an IPv4 address. RPC listeners must be IPv4 (rpc-server.c:990)

comment:11 Changed 6 years ago by livings124

  • Version changed from 2.50 to 1.71

comment:12 Changed 5 years ago by jordan

This can't happen until libevent switches to https://github.com/ellzey/libevhtp

comment:13 Changed 5 years ago by Cabanur

  • Cc cabanur@… added

comment:14 Changed 5 years ago by kenyon

  • Cc kenyon@… added

comment:15 Changed 5 years ago by amv007

too long wait for solution. wrote simple java program to redirect ipv6 requests to ipv4 server on my synology NAS http://amv007.zz.mu/programs/SimpleProxy.zip

comment:16 Changed 4 years ago by hobarrera

Any update on this issue? It should not be an enhancement request, but rather, a bug, since it has, since today, made it impossible for me to use transmission-daemon, since my seedbox no longer has a public static IPv4 address, only an IPv6 one.

comment:17 Changed 4 years ago by IAmTheClaw

A workaround (if you have shell access) is to use an SSH tunnel and connect to a loopback address:

ssh -fNL 127.0.0.2:9091:127.0.0.1:9091 username@2001:db8::dead:beef:cafe

From there, you connect to 127.0.0.2 on your client machine and as far as Transmission knows, you're connecting to 127.0.0.1 on the local machine.

comment:18 Changed 4 years ago by gsauthof

  • Cc mail@… added

comment:19 Changed 3 years ago by Nekit

  • Cc nekit1234007+TransmissionTrac@… added

comment:20 Changed 3 years ago by ictus

  • Cc decathected@… added

comment:21 Changed 3 years ago by Bachsau

The RPC webserver is a very basic one. I don't think it was intended to be used as a public interface, so I don't see a problem in supporting just IPv4. Chances are it also won't behave well when under heavy load or beeing attacked. If you expose it to the web, you definitely should set a reverse proxy server in front of it, like I did. That way you can access it through IPv6, SSL and a subdomain if you wish.

comment:22 Changed 3 years ago by hobarrera

I don't think it was intended to be used as a public interface, so I don't see a problem in supporting just IPv4.

Well, THB, having to set up ngnix (or something alike) to reverse-proxy transmission is *a real* pain, IMHO, if all I want on a box is to torrent.

If you expose it to the web [...]

That's not what I doing. That's not my scenario. I only want to access it via my LAN, which doesn't really need IPv4 *at all*.

---

You're also forgetting kernels built without IPv4 support. Not really common, but I don't see a point in not-supporting them too.

comment:23 follow-up: Changed 3 years ago by tropicoco

Ok now that's enough, let's move to IPv6, even at home ! You can't just say it works with IPv4, we need to move on ! And it's a really, really easy change.

comment:24 in reply to: ↑ 23 Changed 3 years ago by lonaowna

Replying to tropicoco:

Ok now that's enough, let's move to IPv6, even at home ! You can't just say it works with IPv4, we need to move on ! And it's a really, really easy change.

Yes, we should keep IPv4 forever. No need to change at all.

On a serious note, the release notes for libevent 2.1 now mention "The evhttp module will eventually be deprecated in favor of Mark Ellzey's libevhtp library." I'm not sure when they're planning on doing that change though.

Edit: it seems they're targeting libevent 2.2: https://github.com/libevent/libevent/issues/261.

Last edited 3 years ago by lonaowna (previous) (diff)

comment:25 follow-up: Changed 3 years ago by Bachsau

Yes, we should keep IPv4 forever. No need to change at all.

You must be very stupid if you really believe that 4.3 billion adresses could drive the internet forever. There are also many other disadvantages and design flaws in IPv4. When I said "I don't see a problem in supporting just IPv4", this was just because I didn't see why anyone would want to expose the web interface on a network without a proxy server. IPv6 is a must for the future of the internet though.

Last edited 3 years ago by Bachsau (previous) (diff)

comment:26 Changed 3 years ago by lonaowna

I was being sarcastic (hence the "on a serious note..."). tropicoco was suggesting that there is no reason to eventually support IPv6 (I think).

The only point I wanted to make is that we need to support IPv6 natively, eventually. I'm happy we agree on that!

Last edited 3 years ago by lonaowna (previous) (diff)

comment:27 Changed 3 years ago by cfpp2p

IPv4 uses 32-bit (four-byte) addresses, which limits the address space to 4,294,967,296 (232) addresses.

4.3 billion addresses.

https://en.wikipedia.org/wiki/IPv4#Addressing

comment:28 Changed 3 years ago by Bachsau

Word population is around 7 billion. I don't think we need to discuss IPv6 necessity in general again here.

comment:29 in reply to: ↑ 25 ; follow-up: Changed 3 years ago by cfpp2p

comment:30 in reply to: ↑ 29 Changed 3 years ago by Bachsau

Replying to cfpp2p:

Replying to Bachsau:
https://trac.transmissionbt.com/ticket/2236?action=comment-diff&cnum=25&version=2

thanks for correcting that.

Sorry for that. I made this mistake because there's some confusion with the word billion. I'm from germany where a billion means another value than in us / uk. Thats really weird. See https://en.wikipedia.org/wiki/Billion

comment:31 Changed 2 years ago by mehow

  • Cc michal.tkacz@… added

comment:32 follow-up: Changed 2 years ago by trtrmitya

I have an ipv6-only machine and try to bind rpc listener to 127.0.0.1 (configured on lo interface) (Ubuntu 15.10) I get the following error:

[2016-03-15 16:31:05.254] getaddrinfo: address family for nodename not supported (trevent.c:225) [2016-03-15 16:31:05.255] RPC Server Unable to bind to 127.0.0.1:9091, retrying in 5 seconds (rpc-server.c:768) [2016-03-15 16:31:10.255] getaddrinfo: address family for nodename not supported (trevent.c:225) [2016-03-15 16:31:10.255] RPC Server Unable to bind to 127.0.0.1:9091, retrying in 5 seconds (rpc-server.c:768) [2016-03-15 16:31:15.254] getaddrinfo: address family for nodename not supported (trevent.c:225) [2016-03-15 16:31:15.254] RPC Server Unable to bind to 127.0.0.1:9091, retrying in 10 seconds (rpc-server.c:768)

My eth0 interface has only ipv6 address configured.

Is there any way I can use rpc interface?

PS: I think it would be convenient to support ipv6 in rpc interface too rather than force people to build v4-v6 proxies for such a simple task.

Thanks.

comment:33 in reply to: ↑ 32 Changed 2 years ago by lonaowna

Replying to trtrmitya:

I have an ipv6-only machine Is there any way I can use rpc interface?

Nope, as said before, transmission's rpc uses libevent, which only supports IPv4. So you need to enable IPv4 (at least locally), to use it.

Libevent is going to support IPv6 when they integrate libevhtp, although it seems they are not working on it yet. So I guess it will still take a long time before you can use this on a IPv6-only system.

EDIT: Maybe the libevent update isn't required. See https://github.com/transmission/transmission/issues/59

Last edited 21 months ago by lonaowna (previous) (diff)
Note: See TracTickets for help on using tickets.