【问题标题】:Modifying Linux kernel routing table programmatically以编程方式修改 Linux 内核路由表
【发布时间】:2014-06-13 17:42:54
【问题描述】:

在浏览 /proc 时,我遇到了 /proc/net/fib_trie,其中似乎有内核的主路由表。我的问题是修改它会改变路由表还是只是一个统计文件?

(我想以编程方式修改路由表,我完全是 C 中的菜鸟,所以正在寻找其他选项。用任何语言修改文件都很容易)

another questionMattSmith在评论中提到修改文件/proc/net/route并使用ioctls是一种解决方案,有人可以指导我如何吗?

【问题讨论】:

    标签: linux-kernel routing


    【解决方案1】:

    我的问题是修改它是否会改变路由表或者它是 仅统计文件?

    不,路由表不会更改,因为文件是只读的。

    在另一个问题中,MattSmith 在评论中提到修改 文件 /proc/net/route 和使用 ioctls 是一个解决方案,有人可以吗 请指导我如何?

    从用户空间的角度来看,您可以使用 netlink 套接字来管理路由表。 见一些 Cexample。但是,对于新人来说,这将是困难的。

    所以最简单的方法是使用ip 实用程序(实际上它使用netlink 套接字)。这样,您可以实现自己的 shell 脚本并在其中执行路由操作。您可以搜索ip工具的正确usage

    【讨论】:

    • 它是 iproute2 用于 shell 的包。我知道。我的问题是关于使用编程语言的。
    • 实际上,shell 是一种脚本语言,很容易上手。同样,耗时较少的选项是编写 shell 脚本。困难的是使用 netlink。
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2011-08-17
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多