Thanks to everyone here, below is a summary I wrote of my current
understanding of just the UPnP versus Port Forwarding issue for
setting up the Transmission bittorrent client on Linux (Ubuntu) for
It's written in my words, so, if there are errors in my understanding,
I'm fine with you pointing them out!
My summary of what was learned in this thread about UPnP & Port Forwarding
(0) The way things work is that an incoming request to WAN external IP
18.104.22.168 on port 12345 hits the SOHO router. Without port forwarding,
the SOHO router will drop that request (or any request to
But, with port forwarding, the router sees the external port WAN
request for 22.214.171.124:43101 and it forwards that external port to
a static LAN internal port of 192.168.1.10:43101, which the
Transmission client is listening on for upload requests (which
apparently require both TCP & UDP messages).
(Transmission settings are in $HOME/.config/transmission/settings.json)
(1) Since bittorrent maintains two download queues, the first priority
going to those who are uploading data and the second going to those
who are not uploading data, if I'm not uploading data, then I will
only download data when the first queue is empty.
(2) That means two different things if I don't open a port to the world:
- For those people with public sockets, I will be in the first
queue because they can get data from me even though I don't
have a public socket myself.
- For those people without public sockets, I will be in the
second queue because, to them, I'm not uploading any data
because I don't have a public upload socket open.
(3) Overall, not opening a port will probably increase my download
times (depending on a combination of how many other people have
public sockets open and on how full that first queue is).
(4) The *easiest* way to open a port for those external clients who
do not have a public socket is to simply turn on UPnP on both
the SOHO router and in Transmission. Optionally, if UPnP is
turned on in Transmission, I can set Transmission to use a
random port each time the application is started.
(5) The *safest* way to open a port is to turn off UPnP in both the
SOHO router and in the Transmission app, and just manually
forward a port in the router & set that same port in Transmission.
Pick a random port between 49152 & 65535. The default is 51413.
However, there are a bunch of things you have to do in order
to accomplish that task:
(a) You'll need to have your computer on a static IP address
on the LAN (e.g., 192.168.1.10).
This can be set (based on the computer wlan0 MAC address)
by the router, or, this can be set on the Ubuntu computer.
(b) You'll need to select an unused external/internal port set
to forward UDP & TCP packets to (e.g., port 51413)
(This port needs to be between 1025 and 65535.)
(c) You'll want to doublecheck your /etc/services files to ensure
whatever port you chose is not being otherwise used.
In my case, there are no ports in /etc/services between
port 27374 & 30865, and only 3 ports higher than 30865
, so, all other ports are fair game.
Application = trans
NOTE: There are other things you can set to improve Transmission speeds!