[Feedback on issues] 关于多网卡的无法PING测的问题
Tofloor
poster avatar
fun_zb
deepin
4 hours ago
Author

旧主机自带原网卡非常卡,怀疑故障,插接了一个USB网卡,使用双网卡ping百度出现以下提示:

BenJoe@BenJoe-PC:~$ ping www.baidu.com
ping: socktype: SOCK_RAW
ping: socket: 不允许的操作
ping: => missing cap_net_raw+p capability or setuid?

后无论是只开一个网卡还是开两个网卡,均是这个状态。

问题供参考,希望能改善对网卡的识别,此外求一个类似win的设备管理器查看的工具,两个网卡名称 一个是网络连接1,一个是网络连接2,无法直接分辨那个是原网卡,哪个是USB网卡。

Reply Favorite View the author
All Replies
yippeeghost
deepin
4 hours ago
#1

Deepseek 如是说:

这个错误表明您的用户账户没有权限创建原始套接字(raw socket),而 ping 命令需要该权限来发送 ICMP 请求。以下是几种解决方案:


方法 1:使用 sudo(临时提升权限)

直接使用 sudo 运行 ping 命令:

bash

sudo ping www.baidu.com

输入密码后即可执行。但每次都需要 sudo


方法 2:为 ping 命令设置 CAP_NET_RAW 能力(持久化配置)

  1. ping 二进制文件赋予 CAP_NET_RAW 能力:
    bash

    sudo setcap cap_net_raw+ep /bin/ping
    
  2. 之后普通用户即可直接使用 ping
    bash

    ping www.baidu.com
    

方法 3:检查 ping 文件的权限

确保 /bin/ping 具有 setuid 权限(部分系统默认配置):

bash

ls -l /bin/ping

如果输出中包含 rws(如 -rwsr-xr-x),则表示已配置。若未设置,可通过以下命令修复:

bash

sudo chmod u+s /bin/ping

方法 4:容器环境(如 Docker)的特殊处理

如果您在容器中遇到此问题,需在运行容器时添加 NET_RAW 能力:

bash

docker run --cap-add=NET_RAW your_image

或直接使用特权模式(不推荐,存在安全风险):

bash

docker run --privileged your_image

方法 5:用户组权限(部分系统)

某些系统(如 Debian)将用户加入 net-raw 组后可获得权限:

bash

sudo usermod -aG net-raw your_username

注销后重新登录生效。


原因说明

  • Linux 系统要求进程具有 CAP_NET_RAW 能力或 setuid 权限才能创建原始套接字。
  • 普通用户默认无此权限,需通过上述方法配置。
Reply View the author
deepin-流云
Moderator
Community OP
4 hours ago
#2

先如一楼所说加下sudo吧,这是新版2507引入的bug,会在接下来的更新修复。

Reply View the author
米饭虚拟机
deepin
4 hours ago
#3

试试sudo ping www.baidu.com

Reply View the author
fun_zb
deepin
an hour ago
#4

需要说明一下,在USB网卡接入之前,ping是能正常使用的,甚至接入之初都是正常的,调整了一下设置之后才出现异常。

sudo 确实可以解决问题

BenJoe@BenJoe-PC:~$ sudo ping www.baidu.com
请输入密码:
验证成功
PING www.baidu.com (36.152.44.93) 56(84) bytes of data.
64 bytes from www.baidu.com (36.152.44.93): icmp_seq=1 ttl=54 time=6.86 ms
64 bytes from www.baidu.com (36.152.44.93): icmp_seq=2 ttl=54 time=6.91 ms
64 bytes from www.baidu.com (36.152.44.93): icmp_seq=3 ttl=54 time=6.79 ms
64 bytes from www.baidu.com (36.152.44.93): icmp_seq=4 ttl=54 time=6.19 ms
^C
--- www.baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 6.194/6.688/6.908/0.288 ms

Reply View the author