小编int*_*ika的帖子

如何盲目地将所有数据包从一个接口转发到另一个接口?

我想将在 eth0 上接收到的所有 L3 数据包转发到另一个接口,让我们调用 m0(m0 是一个自定义接口,绑定到具有独特 L2 帧机制的自定义硬件)以及反向 m0->eth0。例如,m0 的示例实现可以是 SLIP 接口。我想最好使用用户空间工具来实现这一点。

棘手的部分是我不想路由。我不在乎源或目标 ipv4 地址是什么,也不在乎 MAC 地址是什么。我只想盲目地从接口 0 中抓取所有内容并将其铲到接口 1 上(反之亦然),而无需修改 L3 数据包。

我知道通过 eth0 传入的所有内容(在本用例中)都是适合以太网 mtu 1500 的 ipv4 UDP 数据包,没有碎片。此外,它需要处理多播寻址的数据包。

我担心实现这一目标的唯一方法是使用以混杂模式驻扎在界面上的自定义软件。我想避免这种情况,因为很难避免进入我将数据包循环回其来源的场景。

例如,

  1. 轮询 eth0 和 m0 以查看是否收到数据
  2. 在 eth0 收到的数据包 A
  3. 在 eth0 捕获并发送到 m0 的数据包 A
  4. 在 m0 接收到的数据包 A
    1. 数据包 A 已经被处理了,但是软件怎么知道呢?我将不得不保留某种以前处理过的数据包的表格......讨厌。

至于在 Linux 中的设置,我所做的所有研究都使我使用以下组合,但我认为它们不适合这个用例:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth0 -o m0 -j ACCEPT
iptables -A FORWARD -i m0 -o eth0 …
Run Code Online (Sandbox Code Playgroud)

linux gateway

7
推荐指数
1
解决办法
2255
查看次数

AMD-VI:在空白 SSD 上安装 Arch Linux 失败后的完成等待循环

更新 2019-05-21 19:37 EST:我的主板使用最新的 BIOS,发布于 2019-03-06,但仍然存在下述安装问题。

更新:我将 Arch ISO 刻录到 CD,然后尝试从它启动,无论是 UEFI 还是旧版。相同类型的结果:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

原始问题:我曾经dd这个 Arch ISO(版本 2019.05.02)放在 U 盘上,然后尝试在我的台式计算机上从它启动。当 Arch 菜单出现时,我选择“Boot Arch Linux (x86_64)”。但是接下来是一堆错误信息,然后进程就挂在那里什么也不做。这是一张照片:在此处输入图片说明

消息以“AMD-Vi:完成-等待循环超时”开头

这些消息包括“内核恐慌”。

我的主板是带有 Ryzen 5 2600 CPU 的 MSI B450 Tomahawk。我试过通过 UEFI 和旧版启动,结果相同。

如何安装 Arch Linux?

arch-linux kernel-panic

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

Xterm 不显示一个 uni-code 字符

我的xterm支持单码。例如,它显示欧元符号:

echo -e '\xe2\x82\xac'
Run Code Online (Sandbox Code Playgroud)

但它不显示一个特定的字符:

PL_BRANCH=$'\ue0a0'
echo $PL_BRANCH
Run Code Online (Sandbox Code Playgroud)

此字符在另一个终端(终止符)中正确显示。我在两个终端(Inconsolata)中使用相同的字体。

可能是什么原因,我该如何解决?

terminal xfce xterm unicode xfce4-terminal

6
推荐指数
2
解决办法
288
查看次数

Wicd 配置文件:如何读取密码?

我使用 wicd 将 wifi 连接的密码存储在我的计算机上。但是,我想检查密码是什么,但在无法访问此网络时我不知道如何阅读。我在 /var/lib/wicd/configurations 中找到了该网络的相关文件,但我无法从那里读取密码。在 wicd 中,我通常可以以明文形式查看密码,但前提是网络在可用网络列表中。有什么建议?

wicd

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

系统范围的 SOCKS5 代理

我使用ssh -D 3128 user@rootserver.com. 如果我是对的,我就会为我的服务器打开一个 SOCKS v5 代理。使用 Firefox 和 FoxyProxy,我现在可以将它添加到我的代理并通过它隧道传输我的 HTTP 流量。不管怎样,我想使用这个 SOCKS 代理来处理我的所有流量。朋友告诉我,他们已经通过修改您的路线或使用iptables我找不到任何相关信息的方式看到了这一点。

arch-linux iptables ssh-tunneling socks route

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

Cryptsetup:无法连接环回设备

我正在使用cryptsetup分离的标头。为此,我使用--header 参数来指定头文件。我可以使用以下方式打开我的设备:

cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER
Run Code Online (Sandbox Code Playgroud)

但我需要提供标头,而不是作为文件,而是作为另一个命令的输出(我cat在这里使用命令进行说明)

cryptsetup luksOpen /dev/sdb1 sdb1 --header <(cat LUKS-HEADER)
Run Code Online (Sandbox Code Playgroud)

但这不起作用。我收到以下错误:

Attaching loopback device failed (loop device with autoclear flag is required).
Run Code Online (Sandbox Code Playgroud)

这很令人困惑,因为类似的方法适用于提供密钥,即

cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER --key-file <(printf asdf)
Run Code Online (Sandbox Code Playgroud)

上面的命令工作正常(我使用“asdf”作为示例密码)。

如何--header从管道/另一个进程向选项提供参数?

赏金更新:

接受的答案有效,即我可以使用:

cat LUKS-HEADER > /dev/ram0
cryptsetup luksDump /dev/ram0
Run Code Online (Sandbox Code Playgroud)

但是,我需要一个如何使用进程替换的解决方案,即。目前,进程替换不起作用:

cryptsetup luksDump <(cat LUKS-HEADER)
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

Attaching loopback device failed (loop device with autoclear flag is required).
Run Code Online (Sandbox Code Playgroud)

pipe process-substitution loop-device cryptsetup

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

XFCE超级快捷键禁用super+*快捷键

我将Super+Super+分配给左侧或右侧的平铺窗口。

有用。

我指定Super打开胡须菜单 ( xfce4-popup-whiskermenu)

它可以工作,但Super+Super+键盘快捷键不再起作用

有没有办法让这些快捷方式一起工作?

keyboard-shortcuts xfce

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

如何在 Linux 上手动设置 DNS?

在 Linux 中,/etc/resolv.conf当我们设置 DNS 时,经常会被覆盖,因为管理 DNS 服务器的程序很多。

如何正确设置DNS?

networking dns debian vpn resolv.conf

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

Raid 驱动程序:无法初始化 SCSI 主机 0

我有一个LSI MegaRAID 9440-8i RAID 控制器。这个控制器在我的 PC 上工作正常,即它被 Linux 识别,我可以看到连接的磁盘。


当我将此控制器放入我的服务器时,它仅显示在 BIOS 中,即我可以在 BIOS 中管理控制器、创建 RAID 卷等。


但是,当我启动 Linux 时,出现此错误:

Error parsing PCC subspaces from PCCT
megaraid_sas 0000:18:00.0: Init cmd return status FAILED for SCSI host 0
megaraid_sas 0000:18:00.0: Failed from megasas_init_fw 5559
Run Code Online (Sandbox Code Playgroud)

并且控制器未被识别,即lsscsifdisk显示无磁盘,megaraid_sas未加载内核模块。


问题是什么意思,我该如何解决?

linux raid

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

多台显示器上的 Fbpanel:如何过滤每个屏幕显示的应用程序?

基于我刚才的问题,从一答的Arkadiusz Drabczyk,我已经设置了fbpanel的3种不同的情况下,单独为每个我的3个监视器:

这就是我启动 fbpanel 的方式:

fbpanel -x 0 --profile left &
fbpanel -x 1 --profile center &
fbpanel -x 2 --profile right &
Run Code Online (Sandbox Code Playgroud)

3 个配置文件leftcenterright在我的~/.config/fbpanel/. 配置文件center包含taskbar插件的定义,即当前打开的活动窗口在选项卡上可见,并且可以在 (alt+tab) 或“最小化”之间切换

Plugin {
type = taskbar
expand = true
config {
    ShowIconified = true
    ShowMapped = true
    ShowAllDesks = false
    tooltips = true
    IconsOnly = false
    MaxTaskWidth = 150
}
Run Code Online (Sandbox Code Playgroud)

但是taskbar中央监视器上的包含所有应用程序(来自所有 3 个监视器)。所以我有一个可以taskbar容纳 …

openbox x11 multi-monitor fbpanel

5
推荐指数
0
解决办法
210
查看次数