คำสั่ง Ping ของฉันดูเหมือนจะไม่จบ นั่นหมายความว่ามันเป็นเรื่องของการฟ้องร้อง?


10

ฉันกระตุก IP ระยะไกล ฉันรู้เรื่องคำสั่ง Ping น้อยมาก เมื่อฉัน ping IP ก็พร้อมไปและไป ... ฉันไม่ได้ใช้t ตัวเลือก

Me$ ping 137.30.124.104
PING 137.30.124.104 (137.30.124.104): 56 data bytes
64 bytes from 137.30.124.104: icmp_seq=0 ttl=62 time=3.378 ms
64 bytes from 137.30.124.104: icmp_seq=1 ttl=62 time=3.825 ms
64 bytes from 137.30.124.104: icmp_seq=2 ttl=62 time=4.882 ms
64 bytes from 137.30.124.104: icmp_seq=3 ttl=62 time=1.822 ms
64 bytes from 137.30.124.104: icmp_seq=4 ttl=62 time=4.572 ms
....
64 bytes from 137.30.124.104: icmp_seq=290 ttl=62 time=3.273 ms

นั่นหมายความว่ามันส่ง Ping สำเร็จหรือไม่ หรือว่ามันกำลังพยายามและล้มเหลวและลองอีกครั้ง? ฉันจะทำให้มันหยุดได้อย่างไร


4
ใช่มันประสบความสำเร็จในการส่ง Ping คุณสามารถหยุดด้วย Ctrl-C
Faheem Mitha

7
ตามค่าเริ่มต้นแล้วUnix-Likes pingไม่หยุดเหมือนที่windowsทำ
Gilles Quenot

@sputnick ใช่นั่นคือสิ่งที่ทำให้ฉันสับสน
bernie2436

ดูว่าคุณสามารถควบคุมมันได้อย่างไรในคำตอบของฉัน!
slm

คำตอบ:


17

นั่นเป็นวิธีที่คำสั่ง ping ทำงาน -cคุณสามารถควบคุมได้โดยใช้สวิทช์นับ

ตัวอย่าง

$ ping -c 2 skinner
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=1 ttl=64 time=1.00 ms
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

--- skinner.bubba.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.001/1.069/1.138/0.075 ms

รายละเอียดของการส่งออก

เส้นเช่นนี้หมายความว่ามันประสบความสำเร็จในการกระตุกโฮสต์อื่น:

64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

บรรทัดเหล่านี้แสดงรายละเอียดเกี่ยวกับ "ping" ตามที่เกิดขึ้นระหว่างโฮสต์ของคุณกับโฮสต์ที่คุณพยายามจะ ping

คอลัมน์ที่ 6

คอลัมน์ที่มีค่านี้icmp_req=2กำลังบอกคุณว่าแพ็กเก็ต ICMP นี้เกี่ยวข้องกับอะไร pingคำสั่งผลิตแพ็คเก็ตเครือข่าย มีหลายประเภทคุณอาจเคยได้ยิน TCP หรือบางทีแพ็คเก็ต UDP ประเภทอื่นคือ ICMP ICMP นั้นคล้ายกับ SMS ในเครือข่ายโทรศัพท์มือถือ มันมีวัตถุประสงค์หลักสำหรับการสั่งการและควบคุมเครือข่าย

คอลัมน์ที่ 7

คอลัมน์ที่ 3 TTL=64ที่น่าสนใจคือ TTL - "aka. Time to Live" หมายความว่าแพ็กเก็ตจะทำการส่งผ่านได้มากที่สุด 64 โหนดก่อนที่จะหมดเวลา ดังนั้นหากระบบอยู่ห่างจากระบบของคุณมากกว่า 64 "hops" คุณจะไม่สามารถ ping ได้เว้นแต่คุณจะเพิ่ม TTL

คอลัมน์ที่ 8

คอลัมน์นี้แสดงระยะเวลาในการปิงที่จะเกิดขึ้น (ในหน่วยมิลลิวินาที) time=1.13 msนี้จะเป็นคอลัมน์ที่มีลักษณะเช่นนี้

คอลัมน์อื่น ๆ นั้นอธิบายด้วยตนเองอย่างเป็นธรรม

รุ่น Ping

pingคำสั่งที่แตกต่างกันถูกนำไปใช้แตกต่างกันใน Unixes ต่างๆ ดังนั้นคุณต้องให้ความสนใจกับรุ่น

$ ping -V
ping utility, iputils-sss20100418

ฉันใช้ Fedora 14, ระบบ Linux


1

คำตอบของ slm นั้นยอดเยี่ยม แต่ถ้าคุณต้องการตรวจสอบอย่างรวดเร็วว่าโฮสต์นั้นยังมีชีวิตอยู่ (และสามารถเข้าถึงได้และตอบสนองต่อ ping) คุณสามารถใช้fpingแทนpingได้ มันส่ง Ping โฮสต์และรอเวลาสั้น ๆ สำหรับการตอบสนอง fpingรหัสออกของรายงานความสำเร็จหรือล้มเหลว

เช่น

cas @ ganesh: ~ $ fping kali
กาลียังมีชีวิตอยู่
cas @ ganesh: ~ $ echo $?
0

cas @ ganesh: ~ $ fping durga 
ICMP โฮสต์ไม่สามารถเข้าถึงได้จาก 203.xx.xxx.1 สำหรับ ICMP Echo ที่ส่งไปยัง durga (203.xx.xxx.14)
ICMP โฮสต์ไม่สามารถเข้าถึงได้จาก 203.xx.xxx.1 สำหรับ ICMP Echo ที่ส่งไปยัง durga (203.xx.xxx.14)
ICMP โฮสต์ไม่สามารถเข้าถึงได้จาก 203.xx.xxx.1 สำหรับ ICMP Echo ที่ส่งไปยัง durga (203.xx.xxx.14)
ICMP โฮสต์ไม่สามารถเข้าถึงได้จาก 203.xx.xxx.1 สำหรับ ICMP Echo ที่ส่งไปยัง durga (203.xx.xxx.14)
durga ไม่สามารถเข้าถึงได้
cas @ ganesh: ~ $ echo $?
1

ข้อความ 'ICMP Host Unreachable' สามารถถูกทิ้งได้โดยเปลี่ยนเส้นทาง stderr ไปยัง / dev / null ตัวอย่างเช่น:

cas@ganesh:~$ fping durga 2>/dev/null 
durga is unreachable
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.