老问题,但我会回答,希望它可以帮助像我这样的人。鉴于:
- 你在 root@example.com 有一个具有 root 访问权限的 VPS
- 您的 LAN 中有一个与 RTSP 兼容的 IP 摄像机,地址为 192.168.1.100
- 你有一台能够创建隧道的 PC/路由器/Raspberry Pi
我所做的是
ssh -N -f -R 10554:192.168.1.100:554 root@example.com
说明:
-N
: 不要通过 SSH 执行任何命令
-f
: 将 SSH 置于后台
-R
: 远程端口转发
10554
: 在 VPS 上打开以访问 IP 摄像机的端口(如果 > 1024 则更好)
192.168.1.100:554
:您要远程访问的IP地址和端口
root@example.com
: 你的 VPS 的用户和地址
要访问摄像机的 RTSP 流,请打开rtsp://<username>:<password>@example.com:10554/<path-to-stream>
.
当然,它也适用于其他类型的流(例如 HTTP)。
更好的是,使用 autossh。
/usr/bin/autossh -N -f -M 0 -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 10554:192.168.1.100:554 root@example.com
.
我最终用这个命令阅读了网络上的很多文章。我什至在autossh
没有 shell 的 VPS 上创建了一个用户,所以它除了端口转发之外什么都做不了。