有没有可以用来操作Linux路由表的API?我想写一个程序,监听套接字,然后相应地修改路由表,只是一个简单的代码,但需要一个API。
答案1
您可以使用Netlink
。来自维基百科,
Netlink 设计用于在 Linux 内核空间和用户空间进程之间传输各种网络信息。 iproute2 等网络实用程序使用 Netlink 从用户空间与 Linux 内核进行通信。 Netlink 由用于用户空间进程的基于标准套接字的接口和用于内核模块的内部内核 API 组成。它被设计为 ioctl 的更灵活的继承者。最初,Netlink 使用 AF_NETLINK 套接字系列。
我个人更喜欢使用 bash 脚本来完成此类任务,因为我可以iptables
在脚本本身中指定规则/路由。如果您使用的是 C 等编程语言,您可能可以调用system
并在程序中使用返回值来执行某些操作。
有一个 API 名为斧头可以从这里