去掉Socket绑定设备权限检查

为了让Linux手机可以支持多个PDP,需要让不同的应用的数据包走不同的路由/网卡,可以通过两种方式实现:

  • 为每个应用增加特定路由,或
  • 让应用可以绑定网卡(Net Device)

在路由表中增加特定路由的方式很繁琐,而且容易出错,导致路由表混乱。而绑定网卡方式,很清晰而且不受路由表限制。

 

Linux Kernel的默认代码,会检查调用者是否有CAP_NET_RAW能力,如果没有该能力,绑定网卡的时候,系统会返回错误-EPERM。我们需要做的是:任何应用能绑定网卡。因此需要对内核代码sock_bindtodevice()函数进行简单的修改,如下:以Linux 2.6.32为例

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值