GCP防火墙30000端口可访问,3400端口无法远程访问求助
问题:GCP防火墙规则一致但3400端口无法远程访问
问题背景
在Google Cloud Platform(GCP)上为30000和3400端口配置了完全一致的防火墙规则,但仅30000端口可被远程访问。
本地测试验证
本地测试显示两个端口均已开放且可正常连接:
netstat -tlnp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp6 0 0 :::3400 :::* LISTEN - tcp6 0 0 :::22 :::* LISTEN - tcp6 0 0 127.0.0.1:3333 :::* LISTEN - tcp6 0 0 :::30000 :::* LISTEN - nc -zvw10 localhost 3400 Connection to localhost 3400 port [tcp/*] succeeded! nc -zvw10 localhost 30000 Connection to localhost 30000 port [tcp/*] succeeded!
远程访问情况
远程访问时仅30000端口可用,访问3400端口提示超时:
nc -zvw10 xx.xx.xxx.xxx 3400 nc: connectx to xx.xx.xxx.xxx port 3400 (tcp) failed: Operation timed out
关键发现
30000端口在两台VM实例上都生成了对应的iptables规则,而3400端口未生成。其中allow-30000规则创建于数月前,allow-3400规则创建于昨日:
Chain ufw-user-input (1 references) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:30000
排查与解决步骤
- 手动添加UFW规则:由于3400端口未在iptables中生成允许规则,直接在VM实例上执行以下命令添加并生效规则:
sudo ufw allow 3400/tcp sudo ufw reload - 验证GCP防火墙规则关联:检查
allow-3400规则的目标配置,确认规则关联的实例标签、实例组或网络是否包含当前VM实例,避免规则未作用到目标机器。 - 检查规则优先级:确保
allow-3400规则的优先级不低于任何拒绝类规则,防止被高优先级的拦截规则覆盖。 - 等待规则同步延迟:GCP防火墙规则可能存在数分钟的同步延迟,尤其是跨区域实例,可等待一段时间后再次测试远程访问。
- 核对实例网络标签:若
allow-3400规则是基于网络标签配置的,确认VM实例已添加对应标签,否则规则不会对该实例生效。
内容的提问来源于stack exchange,提问作者dcernahoschi
相关产品推荐
相关产品推荐

