เปิดใช้งาน Ping ในไฟร์วอลล์ Windows Server หรือไม่


23

ฉันเพิ่งติดตั้ง Windows Server 2008 บนเซิร์ฟเวอร์และฉันสามารถเชื่อมต่อผ่าน Remote Desktop แต่ไม่สามารถ ping ได้ ฉันต้องเปิดพอร์ตพิเศษในไฟร์วอลล์เพื่อให้สามารถ ping เซิร์ฟเวอร์ได้หรือไม่

คำตอบ:


34

โดยค่าเริ่มต้น Windows 2008 ไม่ตอบสนองต่อการปิง การเปิดใช้งาน:

เครื่องมือบริหาร

Windows Firewall พร้อมความปลอดภัยขั้นสูง

กฎขาเข้า

การแชร์ไฟล์และเครื่องพิมพ์ (คำขอ Echo - ICMPv4-IN)

เปิดใช้งานกฎ

ตอนนี้คุณควรจะสามารถ ping เซิร์ฟเวอร์ของคุณจาก LAN


4
แล้ว IPv6 ล่ะ? จะไม่มีใครได้โปรดนึกถึง IPv6!?!
Mark Brackett

ฉันสามารถเพิ่มที่อนุญาตให้ ping จากนอกเครือข่ายย่อยฉันต้องเปิดใช้งาน "โปรไฟล์ทั้งหมด" สำหรับกฎไม่เพียง "สาธารณะ"
Zitrax

1
ใช่. นั่นคือการกลืนกินที่โง่ที่สุดที่เคย - การแชร์ไฟล์และเครื่องพิมพ์สำหรับ ICMP;) ได้สะดุดกับสิ่งนั้นด้วย;) ทุกคนที่ฉันบอกว่าหัวเราะ
TomTom

1
สิ่งที่โง่กว่าคือกฎถูกปิดใช้งานสำหรับโปรไฟล์โดเมน แต่เปิดใช้งานสำหรับโปรไฟล์สาธารณะและส่วนตัว แน่นอนที่สุดโปรไฟล์โดเมนอยู่ในเครือข่ายที่มีระดับความปลอดภัยที่สูงกว่าที่คุณเห็นว่าเป็นส่วนตัวหรือสาธารณะ ...
dunxd

@ MarkBrackett บางทีตอนนี้คุณก็ทำได้ดี ขอบเขตการเริ่มต้นอย่างไรก็ตามสำหรับกฎข้อ จำกัด นี้สิ่งที่เครือข่ายย่อยท้องถิ่น เปลี่ยนเป็นใดก็ได้และคุณจะสามารถ ping กับ ICMPv6 คุณพีซีจากนอก WAN ของคุณ
mlt

12

เปิดใช้งาน ping ผ่านไฟร์วอลล์ Windows ที่บรรทัดคำสั่งดังนี้:

netsh firewall set icmpsetting 8

เห็นได้ชัดว่าสิ่งนี้มีการเปลี่ยนแปลงใน Windows Server 2008 R2 และใหม่กว่าเป็น:

netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request"
    protocol=icmpv4:8,any dir=in action=allow

นั่น .. เอ่อ ... คำหนึ่ง


technet.microsoft.com/en-us/library/cc737845(WS.10).aspxมีรายการค่าทั้งหมดค้นหา "set icmpsetting" ในหน้า
ลุค Quinane

9

ใน PowerShell คุณสามารถใช้:

# allow-icmp.ps1
# Sets up windows firewall to allow inbound ICMP - using PowerShell
# Thomas Lee - tfl@psp.co.uk

#create firewall manager object
$FWM=new-object -com hnetcfg.fwmgr

# Get current profile
$pro=$fwm.LocalPolicy.CurrentProfile

# Check Profile
if ($pro.IcmpSettings.AllowInboundEchoRequest) {
    "Echo Request already allowed"
} else {
    $pro.icmpsettings.AllowInboundEchoRequest=$true
}

# Display ICMP Settings
"Windows Firewall - current ICMP Settings:"
"-----------------------------------------"
$pro.icmpsettings

ดี +1 สำหรับความดีของ PowerShell
HopelessN00b

8

คุณจะต้องการอนุญาตให้แพ็คเก็ต ICMP ผ่าน Ping ไม่ใช้ TCP ดังนั้นจึงไม่มีพอร์ตที่จะเปิด


7
ความจริงที่ว่า "ping ไม่ได้ใช้ TCP" นั้นทำให้เข้าใจผิดเล็กน้อย เนื่องจากมีโปรโตคอลอื่น ๆ ที่ใช้พอร์ตอาจเป็นประโยชน์มากกว่าที่จะพูดว่า "ping ใช้ ICMP ซึ่งเป็นโปรโตคอลเลเยอร์ 3 ที่ไม่มีพอร์ตดังนั้นคุณจึงเปิดใช้งาน ICMP เพื่ออนุญาตให้ ping ไม่ใช่เปิดพอร์ต" ไฟร์วอลล์บางตัวอนุญาตให้คุณกรองประเภทข้อความดังนั้นคุณต้องอนุญาต "echo ร้องขอ" และ "echo response" เพื่อให้ ping ทำงานได้
jj33

เอ่อ "... เพื่ออนุญาตให้ ping ทำงานหากคุณไม่ต้องการอนุญาตให้ใช้ข้อความทุกประเภทด้วยเหตุผลบางอย่าง"
jj33

2

อีกวิธีในการแก้ไขปัญหานี้:

netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow

0

ใส่ใจกับการใช้เครื่องหมายคำพูดที่ถูกต้อง บางเว็บไซต์แทนที่เครื่องหมายคำพูดด้วยสัญลักษณ์ที่คล้ายกันซึ่งทำให้เกิดข้อผิดพลาดทางไวยากรณ์ Cf ป้อนคำอธิบายลิงก์ที่นี่


0

เรียกใช้ 2 เหล่านี้ใน admin powershell ซึ่งเปิดใช้งานทั้ง ipv6 และ ipv4 pings บนเครือข่ายทั้งหมด (สาธารณะ / ส่วนตัว / โดเมน):

Set-NetFirewallRule -DisplayName "File and Printer Sharing (Echo Request - ICMPv4-In)" -enabled True
Set-NetFirewallRule -DisplayName "File and Printer Sharing (Echo Request - ICMPv6-In)" -enabled True

มันเทียบเท่ากับ/server//a/6049/147813นี้

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