为了允许传入的 rtsp 流,我必须打开传入的 TCP 端口 554。我还必须打开一系列 UDP 端口。
6970 至 6999,表示http://comments.gmane.org/gmane.comp.security.shorewall/660。
至少 8466 到 8469,这是我lsof
从 YouTube 流式传输时的输出(
ffplay rtsp://v3.cache6.c.youtube.com/CjYLENy73wIaLQnyGKRU4VMLjxMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYIv01r-03I23Tgw=/0/0/0/video.3gp
,如果它保持完好一两天的话)。
有没有任何rtsp 服务器可能在SETUP 请求的client_port
和字段中请求哪些 UDP 端口的限制(server_port
http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol)?
换句话说,我必须打开全部我的防火墙中有 UDP 端口吗?(我在 Ubuntu 上使用 shorewall,如果这有区别的话。)
答案1
例如,客户端 RealPlayer 默认使用 UDP 端口 6970-7170,但该范围可能会更改,http://docs.real.com/docs/proxykit/rtspd.pdf。
客户端 VLC 需要 UDP 端口 15947,https://unix.stackexchange.com/questions/48435/enable-rtsp-in-iptables。
其他客户端和服务器可能有其他值。
因此,如果您不能假设特定的客户端或服务器,那么为了保证传入的 rtsp,您确实必须打开所有 UDP 端口。唉。