我一直在尝试通过创建 Debian vm 在 Google 计算引擎上设置带有 rtmp 模块的 nginx。我已成功安装并配置 nginx 以使用 rtmp 模块。当我使用 http:// 时,我能够在浏览器中看到欢迎消息。但是,当我尝试使用 OBS 测试我的流时,我收到以下消息:
Failed to connect to server.
Connection timed out. Make sure you've configured a valid streaming service and no firewall is blocking the connection.
我认为 OBS 超时了,因为它无法访问 rtmp 模块。我想知道是否需要调整计算引擎中的任何设置以允许 rtmp 连接。我尝试查看防火墙设置,但看起来与 rtmp 相关的内容都没有被阻止。我也尝试过删除 vms 并重新执行所有操作几次,但每次都出现相同的错误。有谁知道有什么方法可以测试到底发生了什么以及为什么 OBS 可能无法连接到 nginx?我最初的想法是,由于 rtmp 模块在 vm 上运行并配置为listen 1935;
这样,它可能只是在监听内部 ip。但是,如果我更改nginx.conf
以反映类似的东西,listen <external-ip>:1935
它会给我nginx: [emerg] bind() to <external-ip>:1935 failed (99: Cannot assign requested address)
任何关于此事的想法,将不胜感激
答案1
因此,在互联网上进一步搜索后,我发现虚拟机默认不允许访问所有端口。也就是说,除非指定,否则防火墙通常会阻止端口。所以我只是在防火墙设置中打开了 1935 处的 TCP 端口,这似乎奏效了。