使用 DNAT 和 SNAT 通过 Openvpn 隧道将本地 IP 摄像机连接到云 VPS

使用 DNAT 和 SNAT 通过 Openvpn 隧道将本地 IP 摄像机连接到云 VPS

我在本地网络上运行两个 IP 摄像机,并且 RTSP 打开。我在本地网络上托管了 zoneminder(摄像机录像机),并使用 RTSP 直接将摄像机流传输到它。但是,我需要在我的云 vps 中部署 zoneminder 并将 RTSP 源直接传输到它,以便我可以在任何地方查看我的摄像机。 (我知道我仍然可以使用 openvpn 查看本地 zoneminder,但我不想这样做)

我在我的云 vps 上设置了 openvpn 服务器和 zoneminder。我在 Raspberry pi 上配置了客户端(使用路由 no-exec),它与我的 IP 摄像机位于同一网络中。

然后我在树莓派上启用 IP 转发并添加以下两条 DNAT 和 SNAT 规则

iptables -t nat -I PREROUTING -p udp -i tun0 --dport 3354 -j DNAT --to-destination 192.168.5.10:8554

iptables -t nat -I POSTROUTING -p udp -s 192.168.5.10 --sport 8554 -j SNAT --to-source 192.168.100.50:3354

网络详情如下

Local network - 192.168.5.0/24
VPN network - 192.168.100.0/24
Raspberry pi local IP - 192.168.5.9
IP camera IP - 192.168.5.10
Raspberry pi VPN IP - 192.168.100.50
VPN sever IP - 192.168.100.1
RTSP port - 8554

但是,当我尝试将摄像头添加到我的云 VPS 上的 zoenminder 时,它总是失败,并出现无法访问摄像头的错误。我使用下面的 RTSP 链接来添加摄像头

rtsp://192.168.100.50:3354/unicast

区域管理器错误

Unable to open input rtsp://192.168.100.50:3354/unicast

当我使用 Nmap 进行端口扫描时,我得到这样的信息

3354/udp open|filtered suitjd

我哪里配置错了?基本上我需要通过 VPN 隧道直接与本地网络项目进行通信。我怎样才能用其他方法实现这一点

相关内容