「GoCN酷Go推荐」用户态和内核态通信的利器-netlink库

一、什么是netlink?

netlink 是 Linux 系统里用户态程序、内核模块之间的一种 IPC 方式,特别是用户态程序和内核模块之间的 IPC 通信。比如在 Linux 终端里常用的 ip 命令,就是使用 netlink 去跟内核进行通信的。例如想在golang代码中实现ip link add xx的效果,一种办法是使用exec包执行对应的ip命令,另一种是采用netlink的方式,但是自己操作netlink还是有点繁琐。

、golang netlink库

给大家推荐下https://github.com/vishvananda/netlink,使得在golang中使用netlink变的简单,对程序员小伙伴很友好。

netlink 包为 go 提供了一个简单的 netlink 库。Netlink 是 linux用户态程序用来与内核通信的接口。它可用于添加和删除接口、设置 ip 地址和路由以及配置 ipsec。Netlink 通信需要提升权限,因此在大多数情况下,此代码需要以 root 身份运行。由于底层 netlink 消息晦涩不好理解和使用,因此该库尝试提供一个简易api,该 API 模仿了 iproute2 提供的 CLI。诸如 ip link add 之类的操作将通过类似命名的函数(如 AddLink())来完成。这个库最初是 docker/libcontainer 中 netlink 功能的一个分支。

安装部署

使用go get命令

go get github.com/v
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值