即使网络安全组 (NSG) 允许,端口在 Azure Linux VM 上仍处于关闭状态

问题描述 投票:0回答:1

这是我的场景:

我在公司防火墙后面有一个 IP 摄像头,我想公开流式传输,为此,我创建了两个 Azure VM (Ubuntu 19.04) - 让我们称它们为

vm1
vm2

如果很重要,我的 VM SKU 是

Standard B1s (1 vcpus, 1 GiB memory)

  1. 我通过 SSH 连接到我的相机,然后从那里为 RTSP 进行远程端口转发,如下所示:

    ssh -R 554:localhost:554 root@<vm1-ip>
    

    而且,我想我需要启用 root SSH,因为它是一个“众所周知”的端口。

  2. 我登录到

    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
    
  3. 但是,当我使用来自

    nmap
    vm2
    时,端口显示为关闭:

    nmap <vm1-ip> -p 554
    
    PORT    STATE  SERVICE
    554/tcp closed rtsp
    
  4. 当我使用

    vlc
    连接到流时,它也不起作用:我在
    vlc
    中使用的 URL 是:
    rtsp://<vm1-ip>/...

  5. 我认为这可能是与

    vm1
    关联的 NSG(网络安全组)的问题,因此我尝试允许所有入站流量: 而且,不用说这并不能解决问题

对此有什么想法吗?

谢谢你

azure ssh rtsp portforwarding azure-linux
1个回答
0
投票

我遇到了同样的问题,并通过在 Azure VM 上的 SSH 服务器配置文件上启用 GatewayPorts 选项来解决该问题。此选项允许远程主机连接到本地转发端口。默认情况下,它设置为 no,这意味着仅允许来自环回地址 (127.0.0.1) 的连接。

要启用 GatewayPorts 选项,您需要执行以下步骤:

  • 以 root 或具有 sudo 权限的用户身份登录 Azure VM。
  • 使用您喜欢的文本编辑器(例如 nano 或 vi)编辑 /etc/ssh/sshd_config 文件。
  • 找到 #GatewayPorts no 行并通过删除 # 符号取消注释。然后将值从 no 更改为 yes 或 clientspecified。 yes 值表示 SSH 服务器会将本地端口绑定到任意地址,而 clientspecified 值表示 SSH 客户端将指定要绑定的地址。例如,您可以使用 -R 8080:0.0.0.0:8080 绑定到任何地址,或 -R 8080:20.81.100.200:8080 绑定到特定地址。
  • 保存并关闭文件。
  • 使用命令 sudo systemctl restart sshd 或 sudo service sshd restart 重新启动 SSH 服务,具体取决于您的 Linux 发行版。
© www.soinside.com 2019 - 2024. All rights reserved.