即使在通信时也可以使用隐形端口吗?

即使在通信时也可以使用隐形端口吗?

我正在使用一个名为盾牌升起!扫描我的端口。它报告说我的所有端口都是“隐身的”,用他们的话说

您的系统已获得完美的“TruStealth”评级。在我们的安全探测测试中,没有从您的系统收到任何数据包(无论是请求的还是其他方式)。您的系统忽略并拒绝回复重复的 Ping(ICMP 回显请求)。从任何黑客的探测的角度来看,这台机器在互联网上并不存在。一些可疑的个人安全系统通过尝试“反探测探测器”来暴露其用户,从而暴露自己。但您的系统明智地保持了沉默。非常好。

然后,当我知道我有一个程序正在使用某些端口时,我运行了相同的端口扫描,测试再次返回隐身状态。

这是意料之中的事吗?我以为使用这些端口会使它们可见。我以为它会发现我的许多端口只是根据它们的互联网端口状态定义因为我是在全新安装的 Ubuntu 上运行这些测试,没有安装第三方防火墙。

但即使 Ubuntu 有内置防火墙,我也必须告诉它具体打开我想要使用的端口。当没有任何流量进出时,Ubuntu 会自动关闭这些端口吗?

附加信息(一开始并不确定这是否重要)

我省略了部分解释,因为我不确定它是否相关,但现在我认为它可能相关。我已经设置了它,以便我的网络上的两台计算机使用一个简单的通信客户端进行通信。当两台计算机通信时,我在其中一台计算机上运行了端口探测。我之所以提到这一点,是因为看起来它们的端口应该是开放的,因为每台计算机都会在给定的端口上等待流量。

答案1

你这边的端口和服务器上的端口是有区别的,监听的端口和连接也是有区别的。

盾牌升起!仅查找具有服务的 TCP 端口聆听在您的计算机上用于从其他地方进行连接。例如,如果您正在运行 Web 服务器,则 TCP/80/incoming 应处于“打开”状态。

(如果 A 尝试与 B 端口 X 建立连接,并且该端口上没有服务监听,A 通常会收到“重置”数据包。据我所知,隐身模式意味着 A 甚至不会收到否定答复——就好像主机不存在一样。)

然而,“使用”同一端口(例如,使用 HTTP 浏览网页)不会在您这边打开该端口。您建立的 HTTP 连接是端口 80网络服务器,而是从您这边随机选择的端口。而且即使是本地端口也不能被描述为“开放”,因为没有任何程序监听该端口上的连接;操作系统只接受属于特定的已激活连接


每个 TCP 连接由四个要素来标识:本地地址:端口 远程地址:端口对。两个数据包必须具有相同的地址:端口对,才被视为属于同一连接(尽管回复显然具有本地和远程反转)。

例如,如果你是并且 打开从到 的1.0.0.1TCP 连接。当收到数据包时,它将被视为属于同一连接1.0.0.1:135792.2.2.2:80仅有的如果它来自2.2.2.2:801.0.0.1:13579

这意味着您可以:

  • 打开到不同服务器的多个连接;
  • 到同一服务器的不同端口;
  • 甚至同一台服务器的同一端口

只要至少有一个数字(通常是随机选择的本地端口)不同。

答案2

仅当进程正在侦听并期望远程设备连接到它时,端口才会打开。因此,您收到的结果是可以预料的。

答案3

据我了解,防火墙位于您电脑上的任何应用程序(获得自动防火墙规则或您的许可)和互联网之间。如果程序正在监听端口上的数据,那么防火墙也会监听。任何来自互联网的意外通信尝试都会被防火墙检测到并被忽略/丢弃,应用程序甚至看不到它。

相关内容