通过反向代理frp实现rtsp远程访问
众所周知,RTSP协议只能在局域网进行播放,如果有公网访问的需求,第一种方法是申请互联网专线,但是价格高昂,第二种,也就是今天的主题,通过反向代理,将内网ip映射为公网,实时公网访问
本例服务端以腾讯云服务器(系统CentOS7.3),客户端以windows10,海康摄像头为例
服务端配置
登录腾讯云的控制台,进入服务器页面,添加防火墙规则”所有TCP允许访问”(实际生产环境可根据实际进行操作)
使用ssh工具登录云服务器,下载frp(版本0.49.0,很重要!客户端和服务端的版本请保持一致)
1 | cd /home |
因为我们的服务器是用来作为frp服务端,所以我们需要使用的文件是fprs和frps.ini
使用vim等编辑器编辑frps.ini,输入如下内容
1 | [common] |
为了以后方便控制frps的启动和停止、配置后台运行和开机自启,可以使用systemd
1 | yum install systemd |
使用文本编辑器,如 vim 创建并编辑 frps.service 文件
1 | vim /etc/systemd/system/frps.service |
使用 systemd 命令,管理 frps
1 | # 启动frp |
至此服务端配置完成
客户端配置
根据操作系统下载对应的frp版本(0.49.0版本)
1 | https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_windows_amd64.zip |
下载解压后,进入frp的根目录,因为是客户端,我们需要使用的是frpc.exe和frpc.ini
编辑frpc.ini,输入以下内容
1 | [common] |
然后通过cmd,进入frp的根目录,运行启动命令
1 | frpc.exe -c frpc.ini |
然后可以打开面板 http://114.114.114.114:7500 查看在线情况
至此客户端配置完成
公网地址转换
海康摄像头的本地rtsp流地址为 rtsp://admin:password@192.168.1.110:554
更详细的rtsp流地址获取方法可以使用onvif device manager
内网ip映射为公网ip即是 114.114.114.114
内网端口映射为公网端口即是 30000
所以我们得到的公网rtsp流地址是
1 | rtsp://admin:password@114.114.114.114:30000 |
建议在转换前先使用VLC播放器测试本地流是否能正常播放
公网rtsp流地址可使用VLC,OBS等工具进行播放