背景:计划将公司的监控摄像头,和家中的监控摄像头,以SRS服务搭建成为可随时通过web查看的直播监控系统,为节省资源,采用了frp透传软件进行实现。
1.frps 服务器的采购
购买一台外面的服务器(国内服务器通过域名解析访问,需要对网站进行备案,比较复杂)。服务器的硬件配置上,1核,512M内存的即可,最好选择月流量比较大的,300G以上的。
2. 最小化安装Debian 11 服务系统,下载和配置frps
#frps.ini的内容
[common]
bind_port = 54321
vhost_http_port = 81
可以参考我的文章: Nextcloud 结合frp搭建私有网盘_lggirls的博客-CSDN博客_frp nextcloud
3.注册一个域名,外面注册或者国内的注册都可以,将域名解析到所购买的服务器ip地址即可.
这里假设所注册的顶级域名为 test333.com,则在解析的时候,多添加一些二级域名记录。 诸如 www.test333.com web.test333.com camera.test333.com home.test333.com
4. 配置 frpc.ini 公司和家中的SRS流媒体服务器都需要。
公司用域名 camera.test333.com
[common]
server_addr = www.test333.com
server_port = 54321
[web-1]
type = http
local_ip = 192.168.1.100
local_port = 8080 #这个是SRS服务默认采用的端口号
custom_domains = camera.test333.com
#可以添加访问账号和访问密码
http_user = Test
http_pwd = Camera001
家中用域名 home.test333.com
[common]
server_addr = www.test333.com
server_port = 54321
[web-2] #注意,frps透传多个web服务,需要进行编号,否则会冲突,无法透传
type = http
local_ip = 192.168.1.200
local_port = 8080 #这个是SRS服务默认采用的端口号
custom_domains = home.test333.com
http_user = Test
http_pwd = Camera002
5.启动 frps 和两台服务器上的frpc,测试。
通过 http://camera.test333.com:81 可以查看公司的 SRS流媒体服务器上的监控画面
通过 http://home.test333.com:81 可以查看家中的 SRS流媒体服务器上的监控画面
6. 配置的关键点
注意1,frps.ini 中的 bind_port = 54321,vhost_http_port = 81 这两个配置的 值都是可以自定义的。 因为我们的 frps服务器没有安装占用80端口的应用软件(例如 nginx、Apache2 等),所以可以选择80端口(经过测试,不能使用80端口),最终结果是直接输入域名即可访问对应的SRS服务。
如果 frps.ini 配置为使用 8080端口, 则最后访问两个SRS服务器,还需要加上8080这个端口号。
注意2,不同的服务器,连接同一个frps,在相同的服务上要进行序号的区分, 也就是 frpc.ini中的[web-1]、[web-2],否则会连接不成功。类似的还有通过 ssh进行登录,是一样的要进行编号。
注意3,frps软件会自动根据frpc中的custom_domains的设置域名,进行智能透传;类似于nginx根据域名进行反向代理,无需过多配置,非常简便。
7. 安装nginx到frps服务器,反向代理二级域名指向的服务器,使其不用输入端口号进行访问
apt update
apt install nginx
vim /etc/nginx/nginx.conf
# 在这个配置文件的 http {} 中,增加虚拟机反向代理。内容如下
server {
listen 80;
server_name home.test333.com camera.test333.com; #两个SRS服务器所采用的二级域名
location / {
proxy_pass http://127.0.0.1:8080; # 所要反向代理的端口
proxy_redirect http://$host/ http://$http_host/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
#然后重启nginx服务即可
systemctl restart nginx
通过 http://camera.test333.com 可以查看公司的 SRS流媒体服务器上的监控画面
通过 http://home.test333.com 可以查看家中的 SRS流媒体服务器上的监控画面
这里实际上是frps服务器,将其8080端口的数据,反向代理到了80端口;所返回的内容,通过nginx,对你访问时所输入的二级域名所代表的frpc服务器,进行自动指向。