这是我的场景:
我在公司防火墙后面有一个 IP 摄像头,我想公开流式传输,为此,我创建了两个 Azure VM (Ubuntu 19.04) - 让我们称它们为
vm1
和 vm2
如果很重要,我的 VM SKU 是
Standard B1s (1 vcpus, 1 GiB memory)
我通过 SSH 连接到我的相机,然后从那里为 RTSP 进行远程端口转发,如下所示:
ssh -R 554:localhost:554 root@<vm1-ip>
而且,我想我需要启用 root SSH,因为它是一个“众所周知”的端口。
我登录到
vm1
,我看到它正在侦听端口:sudo netstat -tlnp
给了我这个:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:554 0.0.0.0:* LISTEN 108748/sshd: root@p
tcp6 0 0 ::1:554 :::* LISTEN 108748/sshd: root@p
但是,当我使用来自
nmap
的 vm2
时,端口显示为关闭:
nmap <vm1-ip> -p 554
PORT STATE SERVICE
554/tcp closed rtsp
当我使用
vlc
连接到流时,它也不起作用:我在 vlc
中使用的 URL 是:rtsp://<vm1-ip>/...
我认为这可能是与
vm1
关联的 NSG(网络安全组)的问题,因此我尝试允许所有入站流量:
而且,不用说这并不能解决问题对此有什么想法吗?
谢谢你
我遇到了同样的问题,并通过在 Azure VM 上的 SSH 服务器配置文件上启用 GatewayPorts 选项来解决该问题。此选项允许远程主机连接到本地转发端口。默认情况下,它设置为 no,这意味着仅允许来自环回地址 (127.0.0.1) 的连接。
要启用 GatewayPorts 选项,您需要执行以下步骤: