【Linux】 MediaMTX测试是否运行

外网无法访问通常不是 MediaMTX 本身问题,而是 网络、端口或系统防护层面阻挡导致的。

下面给出一份最系统的排查指南👇(逐步执行即可定位问题)


🧩 一、确认 MediaMTX 是否真的运行

执行:

bash 复制代码
ps -ef | grep mediamtx

✅ 如果看到:

复制代码
/usr/local/mediamtx/mediamtx

说明程序在运行。

如果没有,启动:

bash 复制代码
./mediamtx &

🧩 二、确认监听端口

执行:

bash 复制代码
ss -tulnp | grep mediamtx

或:

bash 复制代码
netstat -tulnp | grep mediamtx

查看是否有这些端口(MediaMTX 默认):

功能 协议 默认端口
RTSP TCP 8554
RTMP TCP 1935
HLS TCP (HTTP) 8888
WebRTC UDP/TCP 8000-8200(范围)

✅ 如果端口没监听,检查配置文件 mediamtx.yml 是否启用对应模块。


🧩 三、防火墙(Firewall)是否阻止外网访问

查看防火墙状态:

bash 复制代码
systemctl status firewalld

临时关闭防火墙(测试用):

bash 复制代码
systemctl stop firewalld

🔹 若关闭防火墙后可访问,则是端口未放行。

🔹 你可以选择仅开放 MediaMTX 所需端口。

例如开放:

bash 复制代码
firewall-cmd --zone=public --add-port=8554/tcp --permanent
firewall-cmd --zone=public --add-port=1935/tcp --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --zone=public --add-port=8000-8200/udp --permanent
firewall-cmd --reload

🧩 四、检查服务器是否有公网 IP

执行:

bash 复制代码
curl ifconfig.me

如果输出公网 IP,例如:

复制代码
8.218.xxx.xxx

说明服务器有公网。

如果显示内网 IP(如 192.168.x.x 或 10.x.x.x),则外网无法直连。

✅ 若是云服务器(如阿里云、腾讯云),需检查"安全组"规则是否放行端口。


🧩 五、确认外网访问方式

假设你的公网 IP 是 8.218.100.10

功能 外网访问地址
RTSP rtsp://8.218.100.10:8554/stream1
RTMP rtmp://8.218.100.10:1935/stream1
HLS http://8.218.100.10:8888/stream1/index.m3u8
WebRTC 浏览器访问 http://8.218.100.10:8889(若启用 Web UI)

🧩 六、NAT 或虚拟机环境

如果你在 虚拟机NAT 网络 下运行 Linux:

外网访问不到通常是因为端口没映射。

示例(VirtualBox 或 VMware):

  • 需要将 宿主机端口映射到虚拟机端口

    例如:

    复制代码
    宿主机 8554 → 虚拟机 8554
    宿主机 8888 → 虚拟机 8888

✅ 快速定位脚本

你可以执行下面命令,一键测试服务可访问性:

bash 复制代码
echo "=== MediaMTX 状态检查 ==="
ps -ef | grep mediamtx
ss -tulnp | grep mediamtx
curl -I http://127.0.0.1:8888
firewall-cmd --list-all
curl ifconfig.me

相关推荐
python百炼成钢3 小时前
10.串口
linux·stm32·单片机·嵌入式硬件
Lzc7746 小时前
Linux网络的HTTPS
linux·https
运维李哥不背锅7 小时前
Ansible 模块详解:高效管理你的 IT 基础设施
服务器·网络·ansible
我爱钱因此会努力7 小时前
ansible自动化运维入门篇
linux·运维·服务器·centos·自动化·ansible
CIb0la7 小时前
能保持精神专注的爱好能给生活带来种种积极的转变
运维·学习·生活
---学无止境---8 小时前
Linux中系统调用sys_symlink和sys_unlink函数的实现
linux
代码程序猿RIP8 小时前
【Etcd 】Etcd 详解以及安装教程
linux·数据库·etcd
tb_first8 小时前
Linux入门1(2/2)
linux
cellurw9 小时前
Day72 传感器分类、关键参数、工作原理与Linux驱动开发(GPIO/I²C/Platform/Misc框架)
linux·c语言·驱动开发