Não importa se 50020 é uma porta de origem ou destino: se for reivindicado, é reivindicado.
Eu consideraria um bug precisar iniciar um serviço em uma porta específica no intervalo 49152 - 65535, pois essas são as portas efêmeras definidas pela IANA. Muitas distribuições do Linux consideram as portas superiores a 32768 como efêmeras. Você pode revisar o intervalo de portas efêmeras no momento com:
cat /proc/sys/net/ipv4/ip_local_port_range
Qualquer aplicativo pode usar apenas uma porta do intervalo efêmero, portanto, não há garantia de que uma porta específica sempre estará livre. Melhor escolher uma porta não usada entre 1024 e 32767.
Veja alguma introdução em portas efêmeras .
Se você quiser alterar o intervalo efêmero para atender ao requisito do DataNode do Hadoop, poderá fazê-lo editando /etc/sysctl.conf
e definindo uma linha ao longo do seguinte:
net.ipv4.ip_local_port_range=56000 65000
edit: Obrigado @ mr.spuratic, que apontou indiretamente que com um kernel recente o suficiente (a mudança foi confirmada em maio de 2010), é possível fazer exceções ao intervalo. Isto é recomendado, pois brincar com o intervalo em si é uma mudança drástica.
sysctl -w net.ipv4.ip_local_reserved_ports = 50020, 50021
Citações de Documentação / rede / ip-sysctl.txt
ip_local_reserved_ports - list of comma separated ranges
Specify the ports which are reserved for known third-party
applications. These ports will not be used by automatic port
assignments (e.g. when calling connect() or bind() with port
number 0). Explicit port allocation behavior is unchanged.
The format used for both input and output is a comma separated
list of ranges (e.g. "1,2-4,10-10" for ports 1, 2, 3, 4 and
10). Writing to the file will clear all previously reserved
ports and update the current list with the one given in the
input.
Note that ip_local_port_range and ip_local_reserved_ports
settings are independent and both are considered by the kernel
when determining which ports are available for automatic port
assignments.
You can reserve ports which are not in the current
ip_local_port_range, e.g.:
$ cat /proc/sys/net/ipv4/ip_local_port_range
32000 60999
$ cat /proc/sys/net/ipv4/ip_local_reserved_ports
8080,9148
although this is redundant. However such a setting is useful
if later the port range is changed to a value that will
include the reserved ports.
Default: Empty