- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 3 台机器 - A、B、C,我正在尝试做一些类似于 DNAT 的事情。
1)A向B发送数据包。
2)B收到数据包并修改后发送给C。
在机器 B 上,我使用 iptables 和 nfqueue 来接收数据包。
iptables -I INPUT -p tcp -j NFQUEUE --queue-num 1
在机器 B 上,(1) 我修改数据包(让我们将修改后的数据包称为 new_packet),(2) 我使用原始套接字将 new_packet 发送到机器 C,以及 (3) 丢弃机器 B 收到的原始数据包。
我觉得这些步骤是多余的(这会增加延迟),应该有更好的方法来做到这一点。
是否有可能破坏机器B收到的原始数据包,然后简单地将数据包转发到C。
附注iptables 中的 DNAT 功能没有用,因为我需要做更多修改。
最佳答案
我知道这个问题是 7 个月前提出的,但恕我直言,处理数据包的最快方法是编写内核模块。在用户空间处理所有这些东西会大大降低速度。顺便说一下,在这种情况下没有零拷贝,所以再一次 - 内核模块是最好的解决方案
关于linux - 使用 iptables 和 nfqueue 进行数据包转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512435/
我正在编写 python 代码来与 Linux 系统上的 iptables nfqueue 交互。我能够检索队列数据包并根据需要修改它们,但是我无法通过队列接受它们。 payl
我开发了一个应用程序来检查到达 Linux 机器的数据包。我想在 NFQUEUE 中发送所有传入的连接数据包,并且只发送传入的连接数据包。不仅是 --state NEW,还有 --state ESTA
我正在尝试编写一个用户空间应用程序,该应用程序绑定(bind)到一个 NFQUEUE 套接字,内核模块将向该套接字转发传入的数据包(通过将它们标记为 NF_QUEUE)。这是通过使用 iptables
我正在尝试使用 C++ 从在 NFQueue 中排队的数据包中读取 TCP 序列号。但是当我打印出序列号时,我注意到偶尔我会得到零作为序列号。我检查了 Wireshark,但没有序列号为零。所有的序号
我在 nfqueue 的帮助下捕获了一侧的所有数据包,使用 nfq_get_payload “记录”它们(所有数据:ip 信息、下一个协议(protocol)信息等)和在 udp 的帮助下将它们传送到
我正在尝试使用从博客下载的 python 脚本在机器发出 ping 后发送假的回显回复。问题是当我运行脚本时,它给了我这个错误: File "/usr/lib/python2.7/dist-packa
我将 libnetfilter_queue 和 iptables 与 NFQUEUE 目标一起使用,通过 --queue 将传入数据包存储在三个不同的队列中-num x. 我使用libnetfilte
我尝试运行 netfilter_queue 的样本测试。当我使用 iptables 安装规则时,出现以下错误: net@net:~$ sudo iptables -A OUTPUT -p icmp -
我有 3 台机器 - A、B、C,我正在尝试做一些类似于 DNAT 的事情。 1)A向B发送数据包。 2)B收到数据包并修改后发送给C。 在机器 B 上,我使用 iptables 和 nfqueue
我正在尝试解决以下问题, 我的输出链中有一个 iptables 规则,它表示如果数据包符合特定条件,则将其排队并使用 NFQUEUE 将其发送到用户空间 用户空间程序接收到它,一旦接收到它,它检查数据
你好,我正在使用 nfqueue 和 scapy,我的目标是在我的 NFQUEUE 接收数据包,更改有效负载并重新发送它们。 我可以毫无问题地更改 TTL 等字段,但在更改有效负载时,我遇到了问题。
这就是我想要实现的目标。我有一个运行 Suricata 的内联 linux 盒子,能够丢弃数据包。这适用于将所有流量放到 NFQUEUE 0 上然后设置 suricata 监听的标准方法。 我正在编写
我刚读过 in these answers关于在 Linux 中开发数据包过滤器的两种选择。 第一个是使用 iptables 和 netfilter,可能还有 NFQUEUE 和 libnetfilt
我是一名优秀的程序员,十分优秀!