我正在尝试通过 RTSP(使用 ffmpeg)在我的 pod 和相机之间建立连接。
我的容器在本地和服务器中运行时可以建立连接。
但是,在 Kubernetes 中,看起来能够访问和识别摄像头服务器,但它无法初始化流。尝试连接时,我在容器上执行了 tcpdump,收到以下信息:
10:55:37.065954 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36337 unreachable, length 44
10:55:37.066003 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36336 unreachable, length 48
**CAMERA_SERVER_IP** -> 是摄像机服务器 IP 地址
**POD_NAME** -> 是我在 kubernetes 中的 pod 名称。
当我在本地尝试时,第一个 UDP 端口也失败了,但第二个可以建立连接和流。
我认为这与端口通信有关,但我对应该尝试或测试的内容有点迷茫。
谢谢!
更新*
其实我发现了一些奇怪的东西。
我再次尝试启动连接,并分析了来自tcpdump和netstat -tulpn的日志。
在本地连接时,netstat识别出两个 UDP 连接的创建。并且tcpdump显示 ffmpeg 正在尝试使用来自 netstat 的相同 UDP 端口从服务器建立连接
但是,在 Kubernetes 的 pod 中,netstat 上打开的端口与 ffmpeg 尝试连接的端口不同(使用tcpdump验证)。
我认为这是错误,因为 ffmpeg 在尝试访问未打开的端口时立即失败。