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
每月下载量185
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(())
}