零基础搞定服务器摄像头监控系统:安装配置与远程查看全攻略
前置准备
在动手搭建 服务器摄像头监控系统 前,请准备好以下环境:
- 一台Linux服务器(本文以 Ubuntu 22.04 为例,CentOS 7/8 也适用,仅包管理命令不同)
- 一个可用摄像头:USB摄像头(如常见的 Logitech C920)或支持RTSP的网络摄像头
- 服务器已开启 root 权限(或拥有 sudo 权限的用户)
- 防火墙放行 8081 端口(默认Web访问端口)
- 依赖包:build-essential、libjpeg-dev、libavutil-dev 等(安装Motion时会自动处理大部分)
分步操作
1. 安装 Motion
Motion 是一个轻量级的摄像头监控程序,支持运动检测和实时流。
# Ubuntu/Debian
sudo apt update
sudo apt install motion -y
CentOS/RHEL (需先启用 EPEL)
sudo yum install epel-release -y
sudo yum install motion -y
安装完成后,先停止默认可能已启动的服务:
sudo systemctl stop motion
sudo systemctl disable motion # 后续我们会手动配置并启动2. 配置摄像头设备
确认摄像头被系统识别:
ls /dev/video*通常会显示 /dev/video0(USB摄像头)或 /dev/video1 等。
如果没有任何输出,请检查摄像头连接或驱动。
3. 修改 Motion 主配置文件
编辑 /etc/motion/motion.conf(或 /etc/motion.conf):
sudo nano /etc/motion/motion.conf找到并修改以下关键项(建议先备份原文件):
# 设置摄像头设备路径(假设为 /dev/video0)
videodevice /dev/video0
开启网络流(远程访问)
stream_port 8081
stream_localhost off # 允许非本地访问(注意安全,建议后续用防火墙限制来源IP)
设置图像尺寸(根据摄像头支持情况调整)
width 640
height 480
设置帧率(fps)
framerate 10
设置运动检测阈值(数值越大越不敏感)
threshold 1500
设置存储路径(存放 motion 捕获的图片/视频)
target_dir /var/lib/motion
保存退出。
注意:如果允许外网访问 stream_localhost off,务必同时配置防火墙只放行可靠IP,或使用VPN。
4. 创建存储目录并设置权限
sudo mkdir -p /var/lib/motion
sudo chown -R motion:motion /var/lib/motion5. 启动 Motion 服务
sudo motion -c /etc/motion/motion.conf如无报错,即开始运行。
若需要后台保持运行,可以使用 screen 或配置 systemd 服务。
简单方法是用 nohup:
sudo nohup motion -c /etc/motion/motion.conf &但推荐直接使用系统服务:
sudo systemctl daemon-reload
sudo systemctl enable motion
sudo systemctl start motion6. 配置防火墙放行端口
假设使用的是 ufw(Ubuntu):
sudo ufw allow 8081/tcp
sudo ufw reload如果是 CentOS 的 firewalld:
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload避坑指南
- 摄像头权限不足:运行
sudo motion时如果报错/dev/video0: Permission denied,请将用户加入 video 组:sudo usermod -aG video $USER,然后重新登录或重启。 - 端口被占用:8081端口可能被其他程序占用,用
sudo netstat -tulpn | grep 8081检查,若被占用则修改motion.conf中的stream_port为其他值(如8082)。 - 运动检测过于敏感:减小
threshold值或调高framerate;也可以设置event_gap控制事件间隔。 - 无法远程访问:请检查云服务器安全组/防火墙是否已放行端口,以及
stream_localhost是否设置为off。
高频问题解答
Q1:如何查看实时画面?
在浏览器输入 http://服务器IP:8081 即可看到实时监控画面。如果需要密码保护,可以在配置文件中设置 stream_auth_method 1 和 stream_authentication 用户名:密码。
Q2:如何自动保存触发录像?
Motion 默认只在检测到移动时保存图片。若要保存视频,修改 motion.conf 中 movie_output on 并设置 movie_codec mpeg4 等参数。保存文件位于 /var/lib/motion 下按日期分类的目录中。
Q3:如何通过手机查看?
手机浏览器同样输入网址即可;或者使用支持 RTSP 的 APP(Motion RTSP 功能需要额外配置),推荐直接用浏览器。
Q4:摄像头画面卡顿怎么办?
降低分辨率(例如 320x240)或帧率(5 fps);检查服务器CPU占用,motion 对CPU有一定消耗;如果是网络摄像头,确认局域网带宽。
效果验证
- 检查进程:
ps aux | grep motion应看到 motion 进程在运行。 - 访问网页:在另一台电脑浏览器输入
http://你服务器IP:8081,看到摄像头画面则表示搭建成功。 - 触发运动:在摄像头前挥手,观察
/var/lib/motion目录下是否生成图片或视频文件。
如果你正在处理 服务器摄像头监控系统,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
祝你一次成功!