全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2131|回复: 12
打印 上一主题 下一主题

RTSP流量转发,想在外网看内网IPTV直播,有些问题搞不明白...

[复制链接]
跳转到指定楼层
1#
发表于 2020-5-14 09:36:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 duolly 于 2020-5-14 10:52 编辑

昨天看到某个大佬 @zhbone 发了一个流量转发的工具,想起来前一段自己用socat折腾能在外网看家里内网IPTV的事情,最终没有折腾成功,趁着这波把问题发来,请各位MJJ帮忙分析下。

首先是家里的网络图



主路由双wan,一路internet(有公网ip,ddns域名),一路IPTV(DHCP,内网ip),

用ip分流的方式,所有 10.1.1.0/8的都走wan2,这样就实现了lan下所有的设备都能看IPTV直播。

比如CCTV1: rtsp://10.254.209.130/PLTV/88888888/224/3221225621/10000100000000060000000000009742_0.smil

在电视上装一个友窝直播就可以直接看了,不必非用联通的tvbox。


基本情况都说完了,下面说想通过socat流量转发实现的,

在主路由上运行socat

  1. socat -d -d -lf /root/socat_TCP.log TCP4-LISTEN:554,reuseaddr,fork TCP4:10.254.209.130:554&
复制代码


相当于监听554端口,并转发到IPTV的10.254.209.130:554,在外网用

rtsp://home.xxxxxx.cn/PLTV/88888888/224/3221225621/10000100000000060000000000009742_0.smil

看IPTV,但是。。连不上。

要是 V @P# N进home的wan,

用 rtsp://home.xxxxxx.cn/PLTV/88888888/224/3221225621/10000100000000060000000000009742_0.smil

却能看。。。

不知道有大佬知道是什么问题不?

更新socat log
这是外联通过ddns直接连上的log,看不成iptv

  1. 2020/05/14 10:35:13 socat[21112] N listening on AF=2 0.0.0.0:554
  2. 2020/05/14 10:37:26 socat[21112] N accepting connection from AF=2 171.8.201.51:55494 on AF=2 192.168.10.2:554
  3. 2020/05/14 10:37:26 socat[21112] N forked off child process 21615
  4. 2020/05/14 10:37:26 socat[21112] N listening on AF=2 0.0.0.0:554
  5. 2020/05/14 10:37:26 socat[21615] N opening connection to AF=2 10.254.209.130:554
  6. 2020/05/14 10:37:26 socat[21615] N successfully connected from local address AF=2 192.168.10.2:46082
  7. 2020/05/14 10:37:26 socat[21615] N starting data transfer loop with FDs [7,7] and [6,6]
  8. 2020/05/14 10:37:26 socat[21615] N socket 2 (fd 6) is at EOF
  9. 2020/05/14 10:37:27 socat[21615] N exiting with status 0
  10. 2020/05/14 10:37:27 socat[21112] N childdied(): handling signal 17
复制代码



这是v#p@n 连上主路由,一样通过 ddns的连上的log ,这就看的成IPTV

  1. 2020/05/14 10:38:52 socat[21112] N accepting connection from AF=2 171.8.201.51:56423 on AF=2 192.168.10.2:554
  2. 2020/05/14 10:38:52 socat[21112] N forked off child process 21959
  3. 2020/05/14 10:38:52 socat[21112] N listening on AF=2 0.0.0.0:554
  4. 2020/05/14 10:38:52 socat[21959] N opening connection to AF=2 10.254.209.130:554
  5. 2020/05/14 10:38:52 socat[21959] N successfully connected from local address AF=2 192.168.10.2:46386
  6. 2020/05/14 10:38:52 socat[21959] N starting data transfer loop with FDs [7,7] and [6,6]
  7. 2020/05/14 10:38:52 socat[21959] N socket 1 (fd 7) is at EOF
  8. 2020/05/14 10:38:52 socat[21959] N socket 2 (fd 6) is at EOF
  9. 2020/05/14 10:38:52 socat[21959] N exiting with status 0
  10. 2020/05/14 10:38:52 socat[21112] N childdied(): handling signal 17
复制代码



好像没啥区别。

另外udp也在监听。。没有log
2#
发表于 2020-5-14 09:43:36 | 只看该作者
都不想看,下一位给你解答。
3#
 楼主| 发表于 2020-5-14 09:44:24 | 只看该作者
326412908a 发表于 2020-5-14 09:43
都不想看,下一位给你解答。

真直接。。
4#
发表于 2020-5-14 09:53:41 | 只看该作者
本帖最后由 reusu 于 2020-5-14 09:56 编辑

[del]把UDP也加上试试[/del]

貌似RTSP会基于SDP协商双方端口进行UDP发包
5#
 楼主| 发表于 2020-5-14 09:55:35 | 只看该作者
reusu 发表于 2020-5-14 09:53
把UDP也加上试试

考虑过udp的问题,同时启用tcp和udp转发还是不行。。
6#
发表于 2020-5-14 10:05:12 | 只看该作者
duolly 发表于 2020-5-14 09:55
考虑过udp的问题,同时启用tcp和udp转发还是不行。。

按照我上面所说
你要外网访问的话
要么就远程租网的方式进来
要么用ffmpeg copy一份发出来
7#
 楼主| 发表于 2020-5-14 10:08:41 | 只看该作者
reusu 发表于 2020-5-14 10:05
按照我上面所说
你要外网访问的话
要么就远程租网的方式进来

主路由上ffmpeg copy性能吃得消吗。。没在路由上试过
8#
发表于 2020-5-14 10:13:50 | 只看该作者
duolly 发表于 2020-5-14 10:08
主路由上ffmpeg copy性能吃得消吗。。没在路由上试过

你可以试试
不转码纯粹copy的话应该还好?
不过也看路由的U是啥了
9#
发表于 2020-5-14 10:17:48 | 只看该作者
转单播,然后在哪里转的单播就让外网访问权限到哪里
10#
发表于 2020-5-14 10:21:25 | 只看该作者
本帖最后由 hising 于 2020-5-14 10:22 编辑

双WAN一路内网IPTV的话 直接做路由规则不行么?应该也可以实现吧。

就是你第一种方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-3-29 22:30 , Processed in 0.064216 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表