A resposta mais simples é que o encaminhamento de porta (como no NAT) é geralmente transparente para o cliente, enquanto um proxy SOCKS (ou HTTP) requer que o cliente use explicitamente o protocolo de proxy.
O título da pergunta descreve-se claramente
A resposta mais simples é que o encaminhamento de porta (como no NAT) é geralmente transparente para o cliente, enquanto um proxy SOCKS (ou HTTP) requer que o cliente use explicitamente o protocolo de proxy.
Um dispositivo NAT executa "tradução de endereço" (tupla [porta TCP / UDP: endereço IP] para outra tupla) enquanto um proxy termina (em termos de rede) uma camada de protocolo, executa a adaptação em termos de rede) e reconstrói outra conexão com o destino.
Em outras palavras, um NAT tenta ser tão "transparente" quanto possível para o protocolo do cliente, enquanto um PROXY é realmente "duas conexões lado a lado" (protocolos iguais ou diferentes em cada lado).
Concordo com as definições acima, embora eu acrescentasse que NAT e Proxies têm um propósito muito diferente. O NAT é simplesmente roteamento: não há armazenamento em cache e não há uma "supervisão" real por falta de uma palavra melhor. Proxies são colocados em prática para armazenamento em cache, monitoramento, modelagem de tráfego. Eles são muito sobre controle.
Portanto, o NAT tem muito pouca sobrecarga, mas não oferece muitas opções, enquanto os proxies têm uma sobrecarga muito maior (às vezes muito mais alta), mas permitem muito controle.
Tags port-forwarding socks