问题标题清楚地描述自己
最简单的答案是端口转发(如在NAT中)对于客户端通常是透明的,而SOCKS(或HTTP)代理需要客户端显式地使用代理协议。
NAT设备执行“地址转换”(元组[TCP / UDP端口:IP地址]到另一个元组),而代理终止 (在networking方面)协议层,执行适应(再次在networking方面),并重build另一个连接目的地。
换句话说,NAT试图像客户端协议那样“透明”,而PROXY实际上是“两个连接背靠背”(在每一边相同或不同的协议)。
我同意上面的定义,但是我补充说NAT和代理有一个非常不同的目的。 NAT仅仅是路由:没有caching,没有一个更好的词汇没有真正的“监督”。 代理服务器用于caching,监控和stream量整形。 他们非常关心控制。
所以NAT的开销很小,但是没有提供很多的select,而代理的开销要高得多(有时候会更高),但是允许很多的控制。