我有一个作为 Azure 容器实例运行的 Oracel DB。为了连接到容器,我设置了一个 Azure 应用程序网关,如下所述:为容器组公开静态 IP 地址
现在我可以通过 az cli(tnsping 和 sqlplus login)访问数据库,但无法从我的客户端访问。当我尝试通过公共 IP 对容器进行 tnsping 时,我收到 TNS 数据包校验和失败,但我不知道为什么。
我从客户端成功 ping 通了公共 IP(“11.222.333.44”),并且使用 nmap 开放了 1521 端口。
但是,tnsping 返回:TNS-12569: TNS:packet checksum failure
tnsping myDB
Attempting to contact(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 11.222.333.44)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = abc)))
TNS-12569: TNS:packet checksum failure
并且 sqlplus 登录尝试返回:ORA-12560: TNS:protocol adapter error
其他可能是我在 Azure 中遇到的问题症状的异常:
- 在 ACI 概述中:IP 地址保持私密(不显示与其关联的公共 IP)。对于我使用 hello world 容器映像和端口 80 创建的虚拟设置(容器、网关、IP),情况也是如此,但与我检查了这个视频,它描述了与上面分享的 MS 学习文章相同的过程。
- 应用程序网关证明 ACI 的后端池由于诊断端口被阻塞而不健康。我无法通过故障排除操作或链接的 MS 帮助文章解决此问题。应用程序网关/后端健康中的错误消息如下:
无法检索后端健康状态。当应用程序网关子网上的 NSG/UDR/防火墙阻止端口 65503-65534(对于 v1 SKU)上的流量,以及阻止端口 65200-65535(对于 v2 SKU)上的流量,或者当后端池中配置的 FQDN 无法解析为 IP 地址时,就会发生这种情况。要了解更多信息,请访问 -https://aka.ms/UnknownBackendHealth。