原始套接字需要root权限
答
这是因为您可以欺骗自定义数据包,这可能会干扰入站流量。这也是不好的。
答
总而言之,原始套接字仅限于根,因为如果它否则会打破其他适用于网络的规则。
一个长期存在的规则是,如果没有root的祝福,你不能绑定在低于1024的端口上。使用原始套接字,您可以模拟任何端口上的服务器。 (自然能够在这个端口上接收是一个不同的故事,你也必须嗅探网络,但也许这可以用不同的机器完成)。
答
打开原始套接字允许读取任何接收到的在给定的接口中,基本上,您可以读取任何指向任何应用程序的数据包 - 即使该应用程序由另一个用户拥有。这基本上意味着具有此功能的用户能够读取所有用户的任何和所有通信。
+1它的一个很好的答案,我认为我的答案是一个很好的补充。 – rook 2010-12-10 01:48:06
-1混淆了这个问题。原始套接字(CAP_NET_RAW)与使用低端口(CAP_NET_BIND_SERVICE)不同。它们是相关的,但欺骗任意数据包是一个更大的问题,让您摧毁本地子网上所有内容的流量。 – 2012-03-01 11:04:06