标签: broadcast

将 UDP 单播数据包转换为广播?

我们需要从 Internet 唤醒我们内部 LAN 上的一些计算机。
我们有一个有点封闭的路由器,配置它的方法很少。
我想使用 netfilter (iptables) 来执行此操作,因为它不涉及守护进程或类似程序,但其他解决方案也可以。

我的想法是:

  • 外部计算机向公共 IP 地址发出 WOL(Wake-On-LAN)数据包(内部具有正确的 MAC)
  • 路由器上打开了正确的端口(比如 1234),将数据重定向到 Linux 机器
  • Linux box将UDP单播包转化为广播包(内容完全一样,只是目的地址修改为255.255.255.255或192.168.0.255)
  • 多播数据包到达每个网卡,并且所需的计算机现在处于唤醒状态

为此,一个非常简单的 netfilter 规则是:
iptables --table nat --append PREROUTING --in-interface eth+ --protocol udp --destination-port 1234 --jump DNAT --to-destination 192.168.0.255

唉 netfilter 似乎忽略了转换到广播。192.168.0.255 和 255.255.255.255 什么也没给。还用 192.168.0.0 和 0.0.0.0 进行了测试,
我使用 tcpdump 来查看会发生什么:
tcpdump -n dst port 1234
13:54:28.583556 IP www.xxx.yyy.zzz.43852 > 192.168.0.100.1234: UDP, length 102
仅此而已。我应该有第二行,如:
13:54:28.xxxxxx IP www.xxx.yyy.zzz.43852 > 192.168.0.255.1234: UDP, length 102

如果我重定向到非多播地址,则一切正常。我有 2 条预期的线路。但显然这不适用于 WOL。 …

iptables wake-on-lan broadcast

8
推荐指数
2
解决办法
1万
查看次数

如何防止内核或任何广播消息泛滥 TTY?

由于一些热插拔问题,类似于这里讨论的内容,TTY 显示显示连续的消息流(这些消息也记录在 /var/log 目录中)。我键入的每个文本都在视觉上流走,但它确实需要输入(我可以登录并运行命令)。

有没有办法防止此类错误和/或任何其他广播消息泛滥 TTY?

更新:这是请求文件的内容/etc/rsyslog.conf

#  /etc/rsyslog.conf    Configuration file for rsyslog.
#
#           For more information see
#           /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP …
Run Code Online (Sandbox Code Playgroud)

kernel tty hot-plug linux-kernel broadcast

6
推荐指数
1
解决办法
1657
查看次数

为什么我的应用程序没有收到广播数据包?

我编写了一个Qt 应用程序,用于侦听网络接口上的 UDP 广播数据包p2p1。我已在 VirtualBox VM 中的 Fedora 17 i386 中安装了该应用程序。由于某种原因,应用程序没有收到我发送的任何广播数据包。

我安装并运行 Wireshark 并验证广播数据包确实到达p2p1

图片描述

有谁知道为什么应用程序(正在端口上侦听 UDP 数据包41720)没有收到任何数据包?一些安全设置什么的?

networking fedora udp broadcast

5
推荐指数
1
解决办法
3438
查看次数

更改关机广播消息

是否可以将广播的默认消息更改shutdown为其他内容?

shutdown defaults broadcast

5
推荐指数
1
解决办法
3845
查看次数

广播消息不会出现在 gnome-terminal 上,但会出现在 xterm 上

我对广播消息的行为很好奇

$ sudo wall myfile
Run Code Online (Sandbox Code Playgroud)

来自的消息myfile出现在所有/dev/ttyN设备上(我可以通过按Ctrl+ Alt+切换到的设备fN),它也出现在xterm我打开的窗口上,但没有出现gnome-terminal(实际上我使用 Linux Mint 和 MATE,所以它mate-terminal,但它是分叉的gnome-terminal)。

如果我在tmux中运行,还有一个有趣的注意事项xterm:我预计该消息会出现在所有正在运行的终端会话上tmux(在所有窗口和每个窗口的每个窗格中),但实际上该消息仅出现在当前光标位置该xterm窗口。

如果我通过调用检查当前控制终端tty,它会报告 tmux 中不同窗口的不同终端:比如说,我/dev/pts/11在一个 tmux 窗口和/dev/pts/12另一个窗口中都有。但是,对于每个xterm窗口,广播消息只出现一次,而不是在tmux.

在我看来,该终端仿真器,当分配伪终端,需求一样,“注册”它的地方,使其能够接收广播消息,所以,xterm这样做,但mate-terminaltmux没有。但这听起来很奇怪,因为伪终端是由内核分配的,因此,它应该在需要的任何地方自动“注册”。

如果有人解释它是如何工作的以及为什么会这样(看起来很奇怪),我会很高兴。

terminal broadcast

5
推荐指数
1
解决办法
2192
查看次数

我如何向所有活动的 shell 发送通知,就像关闭一样?

你知道,我就在那里,做我的事情,突然出现了一条可怕的广播消息

fiatjaf@mises ~> sl
fiatjaf@mises ~> ls dotfiles/
urxvt
vim/
vimrc
fiatjaf@mises ~> cowsay good morning
 ______________
< good morning >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
fiatjaf@mises ~> 
fiatjaf@mises ~> 
Broadcast message from root@mises
    (/dev/pts/3) at 11:12 ...

The system is going down for maintenance NOW!
Run Code Online (Sandbox Code Playgroud)

如何从我自己的程序中触发这样的消息?

terminal notifications broadcast

3
推荐指数
1
解决办法
1973
查看次数