为什么 ping 命令需要以管理员权限启动 bash?

为什么 ping 命令需要以管理员权限启动 bash?

我知道其他 问题甚至Github 问题关于这一点,但我已经尝试了所有给出的答案,但它们不起作用。

以下是相关文件的内容:

  • /etc/主机名

    DESKTOP-42IRGSE
    
  • /etc/hosts

    127.0.0.1 localhost DESKTOP-42IRGSE
    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    
  • /etc/resolv.conf

    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 195.130.131.1
    nameserver 195.130.130.1
    search home
    

DESKTOP-42IRGSE确实是我的计算机名称,并且 ips195.130.131.1和与195.130.130.1cmd 中的 DNS 服务器匹配ipconfig /all

一些调试命令尝试:

root@DESKTOP-42IRGSE:~# ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
root@DESKTOP-42IRGSE:~# ip link
SO_SNDBUF: Invalid argument
root@DESKTOP-42IRGSE:~# ping www.google.com
ping: unknown host www.google.com
root@DESKTOP-42IRGSE:~# ping 8.8.8.4        (or any other IP)
Do you want to ping broadcast? Then -b

运行apt-get update结果与链接的 Github 问题中的错误相同。我已禁用防火墙。

答案1

您需要先打开提升的命令提示符(以管理员身份运行)才能成功 ping

为什么 ping 命令需要以管理员权限启动 bash?

这是一个已知问题,它是由于 Linux 和 Windows 内核处理 ICMP 请求(使 ping 成为可能)的方式不同造成的。我们计划在未来版本中解决这个问题。

https://web.archive.org/web/20160914113514/https://msdn.microsoft.com/en-us/commandline/wsl/faq#why-does-the-ping-command-require-bash-to-be-started-with-admin-privileges

更新: “此问题已在 Build 14926 及更高版本中修复。”


另一个可能的问题是防火墙干扰了你的连接

为什么我无法从 WSL 访问互联网?

一些用户报告了特定防火墙应用程序阻止 WSL 中的互联网访问的问题。报告的防火墙是:

  • 卡巴斯基
  • 平均
  • Avast

在某些情况下,关闭防火墙可以允许访问。在某些情况下,只需安装防火墙就可以阻止访问。

https://docs.microsoft.com/en-us/windows/wsl/faq#why-do-i-not-have-internet-access-from-wsl

相关内容