我是否需要端口转发才能在同一网络上的两台机器之间进行通信?

Do I need to port forward for communication between two machines on the same network?

我计划在 Java 中编写一个相对简单的客户端-服务器套接字程序,其中服务器 运行 在一台机器上,客户端在另一台机器上(都连接在同一台机器上)网络)。

.
从对上述问题的回答来看,我相信我需要进行端口转发(这不是我所知道的问题),但这确实违背了我的直觉,因为我的印象是端口转发只是必要的如果我需要从远程机器(不在网络上)连接到网络上的 service/machine/whatever。

所以我的问题是,我是否需要端口转发才能在本地网络上的两台机器之间进行通信?如果是,为什么?

如果机器在同一网络中,则不需要配置端口转发。即使机器位于不同的网络中,您也不需要配置端口转发,假设这些机器具有可路由的 IP 地址(并​​且没有防火墙阻止该访问)。

端口转发仅在通信时相关 - 例如 - 具有单个 IP 地址的家庭网络,内部网络上有多台机器,并且 Internet 可见的本地路由器需要执行 NAT(网络地址转换)以在本地网络和糟糕的互联网之间进行映射。端口转发确保将 Internet 可见端口转发到内部网络上机器的 IP 地址。

您需要考虑的是,本地计算机防火墙(例如 Windows Defender)可能会在未明确将应用程序 and/or 端口列入白名单的情况下阻止访问。