将 UDP 出站流量限制到环回(localhost)而不是 eth0

将 UDP 出站流量限制到环回(localhost)而不是 eth0

目前,我正在使用桥接连接在 VMware Workstation + Windows 7 本地主机上的 Ubuntu Server 上对其进行测试。稍后,这必须转到实时服务器。

我在 Ubuntu 上使用 VLC 流媒体视频文件

cvlc -vvv /home/user/file.avi --loop --sout '#rtp{access=udp,mux=ts,dst=239.1.1.1,port=32321,caching=10000}'

稍后此流被udpxy选为

udpxy -a lo -m eth0 -p 7777 &

基本上一切都运行良好,但我的托管服务提供商将 UDP 流量计为出站流量,尽管我不需要它在外面的任何地方。我的想法是阻止多播 UDP 出站流量。

我试过用

route add -net 239.0.0.0/8 dev lo

流量受到限制(无法从外部访问),但

dumprtp 239.1.1.1 32321

在同一台服务器上也不起作用。

我也尝试过/etc/network/interfaces像这样为多播地址创建新的环回接口

auto lo lo:udp
iface lo inet loopback

iface lo:udp inet static
    address 239.1.1.1
    netmask 255.0.0.0
    network 239.0.0.0

我只是想让它工作,但是却不行。

因此,基本上我希望多播 UDP 流量留在服务器内部,而不流出到外部网络。并且它应该是多播 UDP(流也由存储系统和流质量测试挑选)。

谢谢。

答案1

解决方案是:

  1. 为 VLC添加新选项--miface=locvlc -vvv /home/user/file.avi --loop --sout '#rtp{access=udp,mux=ts,dst=239.1.1.1,port=32321,caching=10000}' --miface=lo
  2. 为多播地址添加路由loroute add -net 239.1.1.0 netmask 255.255.255.0 dev lo

    2a. 为了使路由持久化,我们必须为其添加/etc/network/interfaces前缀up。像这样:up route add -net 239.1.1.0 netmask 255.255.255.0 dev lo

就是这样。现在 VLC 正在流式传输到lo接口而不是eth0。此外,任何想要订阅 239.1.1.1 - 239.1.1.254 的应用程序都将通过lo接口进行。

希望这能帮助某人解决流媒体问题。

相关内容