是否可以在没有root访问权限的情况下在Linux上使用packet_mmap?

charliehorse55:

Linux 具有通过映射内核和用户之间的共享缓冲区来有效捕获网络数据包的功能。我正在尝试以不需要root访问的方式使用此接口(因为我没有此权限)。

通常,packet_mmap用于直接查看网络上所有需要根访问权限的数据包。我的应用程序仅需要使用标准的linux UDP套接字接口。我希望仅使用packet_mmap来提高效率-现在,系统调用占用了我50%以上的CPU周期。

有没有一种方法可以配置packet_mmap以便可以从用户空间使用它?

用户862787:

查看Linux内核Git存储库,似乎PF_INET套接字和PF_INET6套接字都不支持内存映射访问,因此如果通过

我的应用程序仅需要使用标准的linux UDP套接字接口。我希望仅使用packet_mmap来提高效率-现在,系统调用占用了我50%以上的CPU周期。

您的意思是您想对普通的UDP或TCP套接字使用内存映射访问,但是,您不能这样做。原始IP套接字也是如此。

PF_PACKET套接字确实支持内存映射访问,但是无论您是否使用内存映射访问,它们都需要提升的特权他们进行更换PF_INETPF_INET6插座; 它们是一种用于读取和写入链路层数据包的机制,因此,如果要在它们上面运行普通的Internet应用程序,祝您好运:

  1. 您必须自己重新实现IP和所使用的传输协议(UDP,TCP等);
  2. 您将不得不以某种方式使内核的 IP和传输协议堆栈无法处理这些数据包;

而且您真的不想尝试这样做。

(请注意,“高级特权”不一定表示“ root特权”;CAP_NET_RAW特权应该足够。但是,正如我所指出的,如果您要替换常规的套接字访问权限,则不想使用PF_PACKET套接字。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在没有 root 访问权限的情况下在 Linux 上安装 Rstudio 服务器?

是否可以在没有管理员权限的情况下在Linux上安装Rust?

如何在没有root访问权限的情况下在CentOS上安装Skype

如何在没有root权限的情况下在linux上安装软件

我可以创建覆盖dns类似于在没有root访问权限的情况下在/ etc / hosts中写入

是否可以在没有root用户访问权限的情况下安装和运行Google Chrome?

如何在没有root访问权限的情况下在本地安装tmux?

是否可以在没有root用户访问权限的情况下更改文件的所有权?

是否可以在没有管理员权限的情况下在Windows中安装字体?

在没有root权限的情况下在Python中使用/ sys / class / gpio /

使用PACKET_MMAP和PACKET_TX_RING发送数据比“普通”(没有)慢

是否可以在没有 iPhone 的情况下在 Apple Watch 上显示通知?

是否可以在没有ssl的情况下在NGINX端口443上运行HTTP / 2?

如何在没有 sudo 和 root 访问权限的情况下卸载 Linux 中的程序

在没有root访问权限的情况下安装SCONS

在没有 root 访问权限的情况下构建 FLTK

是否可以在本地计算机上没有sudo访问权限的情况下使用Juju?

可以在没有Web访问和通过隧道访问的情况下在Linux服务器上运行flask Web应用程序吗?

在没有root用户访问权限的情况下使用密钥文件解锁LUKS分区?

可以在没有Hadoop / HDInsight的情况下在Azure Databricks上使用Hive吗?

使用packet_mmap进行RX / TX是否需要复制?

即使 linux shell 可以在没有 root 的情况下,Mono 也无法访问文件

在没有 root 权限的情况下在 HPC 集群(Centos 8)中安装 RPM 文件

如何在不考虑MAC地址的情况下使用packet_mmap发送SOCK_DGRAM数据包?

如何在没有管理员权限的情况下在Visual Studio Code上使用<git push / sync>?

让 Sqldeveloper 在没有管理员权限的情况下在 Windows 上使用即时客户端?

在没有根访问权限的情况下在etc目录中创建符号链接

如何在没有root的情况下在Android应用上访问数据库

在没有管理员权限的情况下在Windows 10上安装Weblogic 12.2.1.3