GCE防火墙与源标签

  1. 在GCE中创build一个实例,标记为“tagA”
  2. 创build防火墙规则: tcp:12345 ,源标记tagA ,目标标记tagA
  3. 在执行的实例上: nc -l 0.0.0.0 -p 12345

netstat -an | grep 12345

tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN

  1. 尝试连接内部: nc -v internal.ip 12345 => 12345(?)打开

  2. 尝试连接外部: nc -v external.ip 12345 => 12345(?):连接被拒绝

根据GCE手册:

sourceTags [如果没有指定sourceRanges,则需要]如果源位于此networking内并具有指定的标记之一,则连接将被接受。 如果指定了sourceRanges和sourceTag,如果源的范围或标记匹配sourceRanges或sourceTag,则允许入站连接。

任何人都可以解释为什么端口在外部IP不可用这个防火墙规则?

只有在规则中没有指定networking的情况下,目标和源标签才可用于内部使用,正如您在问题中提到的那样: If both sourceRanges and sourceTags are specified, an inbound connection is allowed if either the range or the tag of the source matches sourceRanges or sourceTags. 因此,为了确保安全,请仅在防火墙上允许本地networkingIP范围(您尝试连接的IP范围)。