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