OK, deixe-me ver se entendi direito.
Você tem uma máquina na sua LAN. Você enviou o 3389 com porta do firewall para esta máquina na sua LAN. Isso permite que os sistemas na internet sejam remotos para essa máquina. Agora, a partir de uma segunda máquina na sua rede local, você está tentando fazer o desktop remoto através desse firewall, através da Internet, para uma terceira máquina (ou seja, uma não na sua rede local). Você quer saber por que isso funciona.
(Nota para os nitpickers: isto é uma simplificação.)
As conexões entre as máquinas têm quatro partes:
- para cada lado, um endereço IP; e
- para cada lado, uma porta TCP.
Então, uma conversa entre sistemas é assim:
localIP:localPort <-> remoteIP:remotePort
(Isto, aliás, é como os servidores remotos controlam vários clientes simultâneos. Cada conexão tem uma expressão única como essa.)
Quando você se conecta a um serviço remoto, a porta é (geralmente) pré-selecionada para você. No caso da sessão da área de trabalho remota, o componente remoto será:
remoteIP:3389
Seu IP local é o IP da sua máquina. Mas o que não é óbvio é que o localPort (geralmente) não precisa ser uma porta específica. Então, o componente local da conversa se parece com:
myIP:randomPort
... onde "randomPort" é um número de porta que não é usado de outra forma (e sujeito a algumas outras regras que não são importantes agora). Existem alguns serviços em que a porta local é importante, mas o aplicativo que está iniciando a conversa cuidará da porta local e reclamará para você se não puder.
Portanto, em resumo, seu cliente de área de trabalho remota não usa a porta 3389 para seu lado da conversa porque não é necessário fazer isso.
Agora, você provavelmente está ciente da conversão de endereços de rede (NAT) que é geralmente usada para converter IPs locais da LAN em (geralmente) um único endereço IP comum à Internet. O que você pode não estar ciente é que o NAT também funciona para números de porta para conversas de saída. Isso é para que o dispositivo NAT (normalmente um firewall) possa lidar com situações em que dois clientes separados estejam usando o mesmo randomPort para suas conexões de saída.
Para que você possa usar o Wireshark para assistir ao tráfego entre você e o servidor remoto, você veria conexões como
myIP:randomPort <-> remoteIP:3389
... se você fosse usar o wireshark no lado remoto, provavelmente veria
myFirewallIP:randomPortThatIsProbablyDifferent <-> remoteIP:3389
.. e funciona porque seu firewall cuida de traduzir myIP:randomPort
para myFirewallIP:randomPortThatIsProbablyDifferent
e de volta conforme necessário.