tcp:12345
, исходный тег tagA
, целевой тег tagA
nc -l 0.0.0.0 -p 12345
netstat - | grep 12345
tcp 0 0 0.0.0.0:12345 0.0.0.0:* ПОСЛУШАЙТЕ
Попытка соединиться внутренний: nc -v internal.ip 12345
=> 12 345(?) открытых
Попытка соединиться внешний: nc -v external.ip 12345
=> 12345 (?):В соединении отказано
Согласно руководству GCE:
sourceTags [Требуемый, если sourceRanges не указан], Если источник в этой сети и имеет один из указанных тегов, соединение, будет принят. Если и sourceRanges и sourceTags указаны, входящее соединение позволяется, если или диапазон или тег источника соответствуют sourceRanges или sourceTags.
Кто-либо может объяснить, почему порт на внешнем IP не доступен с этим правилом брандмауэра?
Целевые и исходные теги доступны только для внутреннего использования, только если в правиле не указана сеть, как вы упомянули в своем вопросе Если указаны и sourceRanges, и sourceTags, входящее соединение разрешено, если диапазон или тег источника совпадает с sourceRanges или sourceTags.
Поэтому для обеспечения безопасности разрешите диапазон IP-адресов вашей локальной сети (откуда вы пытаетесь подключиться) только на брандмауэре.