我计划用java编写一个相对简单的客户机-服务器socket程序,其中服务器将在一台机器上运行,客户机将在另一台机器上运行(两者都连接在同一个网络上)。用java中的socket连接两台计算机。从对上述问题的回答来看,我相信我将需要端口转发(这不是我所知道的问题),但是这与我的直觉相反,因为我的印象是,只有当我需要从远程机器(而不是网络)连接到网络上的服务/机器/任何东西时,才需要端口转发。所以我的问题是,我是否需要端口转发来在本地网络上的两台机器之间进行通信?如果是,为什么?
dkqlctbz1#
如果机器在同一网络中,则不需要配置端口转发。即使这些机器在不同的网络中,您也不需要配置端口转发,假设这些机器具有可路由的ip地址(并且没有防火墙阻止该访问)。端口转发仅在与(例如)具有单个ip地址的家庭网络通信时相关,其中内部网络上有多台计算机,并且对internet可见的本地路由器需要执行nat(网络地址转换)以在本地网络和大坏internet之间Map。端口转发确保将internet可见端口转发到内部网络上计算机的ip地址。您需要考虑的是,本地计算机防火墙(如windows defender)可能会阻止访问,而不会显式地将应用程序和/或端口列为白名单。
1条答案
按热度按时间dkqlctbz1#
如果机器在同一网络中,则不需要配置端口转发。即使这些机器在不同的网络中,您也不需要配置端口转发,假设这些机器具有可路由的ip地址(并且没有防火墙阻止该访问)。
端口转发仅在与(例如)具有单个ip地址的家庭网络通信时相关,其中内部网络上有多台计算机,并且对internet可见的本地路由器需要执行nat(网络地址转换)以在本地网络和大坏internet之间Map。端口转发确保将internet可见端口转发到内部网络上计算机的ip地址。
您需要考虑的是,本地计算机防火墙(如windows defender)可能会阻止访问,而不会显式地将应用程序和/或端口列为白名单。