【发布时间】:2010-01-02 21:31:31
【问题描述】:
我必须写一个 vpn 模块。首先,我编写了一个内核模块来修改所有传入和传出的 TCP 数据包。它使用 netfilter 钩子。对于传入的数据包,我修改了(struct sk_buff)->data 和(struct sk_buff)->tail 指针之间的字节,将它们加一。对于传出的数据包,我修改了(struct sk_buff)->data 和(struct sk_buff)->tail 指针之间的字节,将它们减一。
但是,我尝试在 localhost 和 localhost 之间建立 TCP 连接(通过 netcat),但没有成功。你能告诉我我做错了什么吗?我需要修改结构sk_buff 结构中的一些其他字段吗?
是否可以仅从内核空间实现我的简单 vpn 模块?(因此不使用特殊的库,例如 libnetfilter_queue)?
谢谢。
【问题讨论】:
标签: linux-kernel vpn