ไม่สามารถ ping ใน Bash บน Windows


14

เมื่อฉันพยายามเรียกใช้:

ping www.google.com

ฉันได้รับข้อผิดพลาดต่อไปนี้:

ping: icmp open socket: Permission denied

ทำงานกับsudoไม่ได้สร้างความแตกต่าง


1
Why does the ping command require bash to be started with admin privileges? This is a known issue that has to due with differences between the way the Linux and the Windows kernel handle the ICMP request that makes ping possible. We plan to address this in future releases. msdn.microsoft.com/en-us/commandline/wsl/…
phuclv

คำตอบ:


23

อัปเดต:ปัญหานี้ได้รับการแก้ไขแล้วตั้งแต่Windows 10 ผู้สร้างอัปเดต (เมษายน 2017) Bash บน Windows ไม่ต้องการสิทธิ์ผู้ดูแลระบบเพื่อดำเนินการคำสั่ง ping อีกต่อไป

"สแต็ก Windows TCP / IP ต้องการสิทธิ์ผู้ดูแลระบบเพื่อเปิดซ็อกเก็ต RAW สำหรับมาตรการความปลอดภัย" [ แหล่งที่มา ] ดูโพสต์ MSDN นี้จะใช้กับโปรโตคอลเครือข่ายในระดับต่ำเช่น ICMP pingใช้โดย

ใช้เชลล์ "Bash บน Windows" ของคุณในฐานะผู้ดูแลระบบควรอนุญาตให้คำสั่ง ping ทำงาน เพียงคลิกขวาที่ทางลัดแล้วเลือกตัวเลือก:

เลือก 'เรียกใช้ในฐานะผู้ดูแลระบบ' สำหรับทางลัดเมนูของ Bash start

สิ่งนี้จะใช้ได้กับเซสชันเดียวที่เปิดด้วยสิทธิ์เหล่านี้

หากคำสั่งอื่น ๆ ยังไม่สามารถเชื่อมต่ออินเทอร์เน็ต (เช่นapt-get, wget) แล้วคุณอาจยังต้องมองไปที่การเข้าถึงอินเทอร์เน็ตไม่ได้ทำงานใน Windows ระบบย่อยสำหรับลินุกซ์


สิ่งนี้ได้รับการแก้ไขเมื่อเร็ว ๆ นี้ - บิวด์ภายในบางตัวไม่จำเป็นต้องเรียกใช้ในฐานะผู้ดูแลระบบเพื่อให้ ping และ ping6 ทำงานได้
Magnetic_dud

เป็นเรื่องตลกที่คุณรูตแล้วโดยไม่ต้องทำงานในฐานะผู้ดูแลระบบ แต่นั่นไม่ได้ผล
Michael

2

มันไม่ได้ทำงานก่อนเพราะออกแหลมใน @ คำตอบ Silveri ของมันต้องใช้โปรโตคอล ICMP ซึ่งไม่ได้ถูกนำมาใช้ในรุ่นก่อนหน้านี้

ในฐานะของการสร้าง 14,352 มันก็กลายเป็นเปิดใช้งานสำหรับคอนโซลที่มีสิทธิ์ผู้ดูแลระบบ

ในฐานะของการสร้าง 14926 มันก็กลายเป็นเปิดใช้งานสำหรับคอนโซลที่ไม่ได้มีสิทธิ์ผู้ดูแลระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.