We can do that for the alpha bundles, not regular TBB yet as neither Tor 0.2.2.x has the tor-fw-helper stuff nor does Vidalia yet have support for configuring it at all. We could try building the fw-helper stuff in TBBs with alpha tor, but until Vidalia learns to deal with them they'd be dead binaries basically
PortForwarding 0|1 Attempt to automatically forward the DirPort and ORPort on a NAT router connecting this Tor server to the Internet. If set, Tor will try both NAT-PMP (common on Apple routers) and UPnP (common on routers from other manufacturers). (Default: 0) PortForwardingHelper filename|pathname If PortForwarding is set, use this executable to configure the forwarding. If set to a filename, the system path will be searched for the executable. If set to a path, only the specified path will be executed. (Default: tor-fw-helper)
Hrm, come to think of this bug. We probably don't really want those two extra binaries in the TBB: TBB is too large already, let's not add extra stuff unless it's really warranted. Why is it not warranted? TBBs are for clients, not relay operators - clients never need to use upnp.
Hrm, come to think of this bug. We probably don't really want those two extra binaries in the TBB: TBB is too large already, let's not add extra stuff unless it's really warranted. Why is it not warranted? TBBs are for clients, not relay operators - clients never need to use upnp.
Makes sense.
Can we ship the extra binaries in the bridge/relay/exit bundles?
Hrm, come to think of this bug. We probably don't really want those two extra binaries in the TBB: TBB is too large already, let's not add extra stuff unless it's really warranted. Why is it not warranted? TBBs are for clients, not relay operators - clients never need to use upnp.
For clients using Flashproxies, having the tor-fw-helper in the bundle would be quite useful. They need to accept incoming WebSocket connections so getting through NAT is important.
The build process for the pluggable transport bundles makes use of the latest released TBBs, only adding the extra necessary configuration and components. Unfortunately, at the moment, compiling tor-fw-helper seems pretty tightly coupled to tor.
With #9033 (closed) done, the flash proxy transport is ready to use tor-fw-helper as soon as it's present in bundles. This has the potential to increase the number of people able to use the transport. There are probably more people with a UPnP-capable router than there are willing and able to do manual port forwarding.
I was manually testing miniupnpc and natpmp-utils, which use the same libraries that tor-fw-helper does and have Debian packages. I used a natpmpc command from the man page and it segfaulted :(
$ natpmpc -a 50000 50000 tcpSegmentation fault
Anyone else interested in testing those libraries, here are some commands to try.
miniupnpc:
external-ip # uses UPnP to find external IP.upnpc -a <your-lan-ip> 50000 50000 tcp # adds a port forwardingupnpc -l # lists port forwardingsupnpc -d 50000 tcp # deletes port forwarding
natpmp-utils:
natpmpc # external IPnatpmpc -a 50000 50000 tcp # adds a port forwardingnatpmpc -a 50000 50000 tcp 0 # deletes port forwarding
This branch should be squashed and made to apply only to versions.beta and 3.6/beta bundles. I don't think we should even include tor-fw-helper in 3.5 if we can help it.
For what it's worth, I didn't make the branch with the intention that it would be merged and I'm not asking for it to be merged. I don't think tor-fw-helper is ready for the flash proxy use case.
#13338 (moved) should be the tor-fw-helper that we ship. It is compatible and removes the libminiupnpc and libnatpmp code-quality worries. I think it's ready to go in an alpha. There's no integration branch for it yet.
I think there are no plans to ship that if I am wrong, please reopen this ticket and list the steps we should take (i.e. which code we should use, which branch we should merge etc.).
Trac: Reviewer: N/AtoN/A Sponsor: N/AtoN/A Status: needs_review to closed Resolution: N/Ato user disappeared