#iptables #netfilter #nfqueue

nfq

Rust库,用于处理NetFilter队列

9个版本

0.2.5 2022年1月26日
0.2.4 2020年4月29日
0.2.3 2020年2月4日
0.2.2 2019年9月21日
0.1.2 2019年9月2日

#5 in #iptables

Download history 26/week @ 2024-03-13 33/week @ 2024-03-20 35/week @ 2024-03-27 26/week @ 2024-04-03 12/week @ 2024-04-10 113/week @ 2024-04-17 44/week @ 2024-04-24 34/week @ 2024-05-01 87/week @ 2024-05-08 30/week @ 2024-05-15 15/week @ 2024-05-22 41/week @ 2024-05-29 28/week @ 2024-06-05 28/week @ 2024-06-12 68/week @ 2024-06-19 57/week @ 2024-06-26

每月下载量185

MIT/Apache

64KB
1.5K SLoC

nfq - Rust的NetFilter队列

nfq 是一个Rust库,用于在用户空间处理内核数据包过滤器链中排队的包。

许可证

与使用GPL 2.0授权的 libnetfilter_queue 相比,这要求所有使用该库的二进制文件都必须遵守GPL,nfq 采用MIT/Apache-2.0双授权。 nfq 通过直接通过NETLINK套接字与内核通信来实现这一点。

示例

以下是一个接受所有数据包的示例。

use nfq::{Queue, Verdict};

fn main() -> std::io::Result<()> {
   let mut queue = Queue::open()?; 
   queue.bind(0)?;
   loop {
       let mut msg = queue.recv()?;
       msg.set_verdict(Verdict::Accept);
       queue.verdict(msg)?;
   }
   Ok(())
}

lib.rs:

nfq - Rust的NetFilter队列

nfq 是一个Rust库,用于在用户空间处理内核数据包过滤器链中排队的包。

许可证

与使用GPL 2.0授权的 libnetfilter_queue 相比,这要求所有使用该库的二进制文件都必须遵守GPL,nfq 采用MIT/Apache-2.0双授权。 nfq 通过直接通过NETLINK套接字与内核通信来实现这一点。

示例

以下是一个接受所有数据包的示例。

use nfq::{Queue, Verdict};

fn main() -> std::io::Result<()> {
   let mut queue = Queue::open()?;
   queue.bind(0)?;
   loop {
       let mut msg = queue.recv()?;
       msg.set_verdict(Verdict::Accept);
       queue.verdict(msg)?;
   }
   Ok(())
}

依赖项