4 คะแนน โดย GN⁺ 2023-07-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือที่แสดงผลลัพธ์ของ ping เป็น กราฟ โดยแสดงภาพเวลา ping ของหลายโฮสต์
  • เมื่อใช้แฟล็ก --cmd จะแสดง เวลาการรัน ของคำสั่งเป็นกราฟแทนการ ping โฮสต์
  • รันในรูปแบบ gping [host] และเมื่อใช้ --cmd สามารถระบุคำสั่งเป้าหมาย เช่น curl google.com ได้
  • รองรับการเขียนย่อภูมิภาคคลาวด์ เช่น aws:eu-west-1, aws:ca-central-1 โดยปัจจุบันรองรับเฉพาะ aws
  • สามารถปรับช่วงการแสดงผลกราฟ ช่วงเวลาการรัน เวอร์ชัน IP อินเทอร์เฟซเครือข่าย วิธีแสดงกราฟิก สี และการลบกราฟหลังออกจากโปรแกรมได้ด้วยตัวเลือกต่าง ๆ
    • ค่าเริ่มต้นของ --watch-interval คือ 0.2 วินาทีสำหรับ ping และ 0.5 วินาทีสำหรับ cmd
    • ค่าเริ่มต้นของ --buffer คือ 30 วินาที
    • --color รองรับรูปแบบ #RRGGBB และชื่อสีที่กำหนดไว้
  • รองรับ Windows, Mac, Linux และมีช่องทางติดตั้งผ่าน Homebrew, MacPorts, Scoop, Chocolatey, Fedora COPR, Cargo, Arch Linux, Alpine linux, Ubuntu/Debian, Gentoo, FreeBSD, Docker, Flox, gah
  • การติดตั้งผ่าน Cargo ต้องใช้ rustc เวอร์ชัน 1.67.0 ขึ้นไป

1 ความคิดเห็น

 
GN⁺ 2023-07-02
ความเห็นจาก Hacker News
  • ชอบมากที่ถ้าส่งหลายโฮสต์พร้อมกัน มันจะวาดลงใน กราฟเดียวกัน
    ตัวอย่างเช่น gping mydomain.com google.com มีประโยชน์มากสำหรับเช็กเร็ว ๆ ว่า “เป็นปัญหาที่ Wi-Fi ของฉัน หรือเป็นปัญหาที่ผู้ให้บริการโฮสติ้ง”

    • mtr (Matt's traceroute) ก็เป็นเครื่องมือที่ยอดเยี่ยมสำหรับจุดประสงค์นี้เช่นกัน
      แม้จะไม่มีการแสดงผลเป็นกราฟ แต่จะแสดงการเชื่อมต่อ, latency, packet loss และ jitter ของโฮสต์ต่าง ๆ ระหว่าง IP ของฉันกับปลายทาง
      https://www.bitwizard.nl/mtr/
      ลิงก์ที่ westurner กล่าวถึงก่อนหน้านี้ในเธรดนี้: https://news.ycombinator.com/item?id=36549005
    • สามารถส่งคำสั่งแทนโฮสต์ได้ด้วย เช่นรัน curl google.com
  • mtr ก็ทำ traceroute ด้วย: https://en.wikipedia.org/wiki/MTR_(software)
    มักใช้ในการแก้ปัญหาเครือข่าย โดยจะแสดงรายชื่อเราเตอร์ที่ผ่าน พร้อมเวลาไป-กลับเฉลี่ยและ packet loss ของแต่ละตัว ทำให้พอระบุได้ว่าลิงก์ระหว่างเราเตอร์ตัวไหนเป็นสาเหตุของ latency หรือการสูญหายโดยรวม
    Scapy มีฟีเจอร์ แสดงภาพ 3D ของเส้นทางจาก traceroute ผ่าน vpython ตอนเรียนมหาวิทยาลัยฉันเคยลองแก้ให้รัน traceroute หลายครั้งแล้ววาดทุกเส้นทางซ้อนกัน และสงสัยว่าเส้นทางใดเสถียรตลอดทั้งลำดับแพ็กเก็ตของ traceroute: https://scapy.readthedocs.io/en/latest/usage.html#tcp-tracer...
    สามารถใช้ setcap เพื่อหลีกเลี่ยงการรันเครื่องมือที่ต้องใช้ root สำหรับสร้างแพ็กเก็ตระดับ layer 2 ได้: setcap CAP_NET_RAW /use/bin/python-scapy
    traceroute อาจกำลังเชื่อมจุดต่าง ๆ เข้าด้วยกันอย่างไม่เหมาะสมหรือเปล่า?

    • ฉันกำลังรัน mtr ผ่าน Prometheus exporter น่าจะใช้ตัวนี้อยู่: https://github.com/mgumz/mtr-exporter
      ตั้งค่าให้ทำ traceroute ไปยัง 1.1.1.1 และ 8.8.8.8 แล้วดูกราฟใน Prometheus
      ฉันทำชุดนี้ขึ้นมาหลังจากอินเทอร์เน็ตที่บ้านซึ่งคอมพิวเตอร์ตั้งอยู่มีอาการไม่เสถียรมากอยู่หลายวัน
      ฉันยังทำวิดีโอเกี่ยวกับกราฟนี้ไว้ด้วย: https://video.nstr.no/w/hjTH3Vggn2fvpTrQitMmVP
    • กราฟ 3D นั้นน่าทึ่งจริง ๆ ดูล้ำยุคมากจนอยากทำให้วาดแบบไดนามิกแล้วเอาไปใช้เป็น screensaver
    • MTR ทำสิ่งนี้ได้มาตั้งแต่ 30 ปีก่อนแล้ว เลยไม่ค่อยแน่ใจว่ามีอะไรใหม่เพิ่มเข้ามาตรงนี้บ้าง แต่การ export แบบ 3D ก็น่าลอง ขอบคุณที่แชร์
  • ชอบทั้งกราฟและการ ใช้หลายโฮสต์
    เนื่องจาก HTTPS ไปถึงได้ในหลายที่มากกว่า ICMP ซึ่งมักถูกบล็อกในไม่กี่ hop สุดท้ายหลังไฟร์วอลล์ของดาต้าเซ็นเตอร์ ดังนั้น bash function ที่ใช้ gping + cmd + curl ก็น่าจะมีประโยชน์มาก
    ค่าของ ICMP อาจทำให้เข้าใจผิดได้ เพราะระบบปฏิบัติการส่วนใหญ่มีการ rate limit และเราเตอร์จำนวนมากก็จัดการ ICMP เป็นงานลำดับความสำคัญต่ำตามภาระของ backplane CPU ซึ่งไม่เกี่ยวกับความสามารถจริงในการส่งต่อแพ็กเก็ต
    ถ้าใช้ -4 กับโฮสต์ที่มีทั้งที่อยู่ IPv4 และ IPv6 ดูเหมือนว่ามันจะแสดงที่อยู่ IPv4 แต่จริง ๆ กลับ ping ไปที่ ที่อยู่ IPv6 คนอื่นเจอแบบนี้ไหม? เวอร์ชันคือ 1.8.0

  • เครื่องมือที่เกี่ยวข้องแบบหลวม ๆ อีกตัว นี่ก็เป็น “ping ที่มีกราฟ” เหมือนกัน แต่คนละแนว: https://github.com/denilsonsa/prettyping

  • คำขอฟีเจอร์: เสียง
    บางครั้งก็มีกรณีที่ต้องการ feedback ระหว่างขยับสายเคเบิล ฉันเคยทำเครื่องมือเฉพาะกิจสำหรับเรื่องนี้ แต่มันก็เป็นแค่ตัวหุ้ม ping แบบหยาบ ๆ
    จงดูพลังของ pingu: https://pastebin.com/qTfdZ7C8

    • ยูทิลิตี ping มาตรฐานก็มี ping แบบมีเสียง อยู่แล้วผ่าน -a มันจะส่งเสียงกระดิ่งของเทอร์มินัลทุกครั้งที่มีการตอบกลับ
    • เพิ่มข้อเสนอนี้เป็น GitHub issue ได้ไหม? ฉันชอบไอเดียนี้ และน่าจะตรวจดูได้จริงจังว่าสามารถเพิ่มเข้าไปได้หรือไม่
  • เกี่ยวข้องและสำคัญมาก: https://www.cloudflare.com/learning/network-layer/what-is-mt...
    ต้องเข้าใจให้ดีว่า MTR แสดงอะไรอยู่จริง ๆ และเพราะเหตุใด

  • ชอบ gping แต่ก็อยากได้ข้อมูลเชิงลึกหรือ manpage ที่ละเอียดกว่านี้
    เอกสารที่ให้มาด้วยยังอธิบายไม่มากนัก เช่นดูยากว่า t/o คืออะไร หรือค่าต่าง ๆ คำนวณอย่างไร และหน้า GitHub ก็ไม่ได้ช่วยมากนัก

    • เห็นด้วย เรื่องนี้เป็นสิ่งที่อยากปรับปรุงมาก โปรเจกต์นี้ถูกใช้งานมากกว่าที่คาดไว้มาก เลยทำให้ เอกสาร ยังขาดอยู่บ้าง
      เผื่อไว้เป็นข้อมูล t/o หมายถึง timeouts
  • สิ่งที่น่าดูคู่กัน: ministat, gnuplot, https://www.brendangregg.com/dtkshdemos.html

  • คิดถึง bing ที่เคยเป็น “เครื่องมือวัดแบนด์วิดท์แบบความน่าจะเป็น” ไม่ใช่เสิร์ชเอนจิน
    มันสามารถบอกแบนด์วิดท์ระหว่างลิงก์เครือข่ายใด ๆ สองจุดได้ โดยไม่ขึ้นกับแบนด์วิดท์ที่จำกัดระหว่างฉันกับปลายทาง ฉันเองต่ออยู่ห่างออกไปไม่กี่ hop ผ่านลิงก์โมเด็ม 33.6Kbps แต่ก็ยังวัดความเร็วลิงก์ backbone ระดับ T-3 หรือ OC-48 ได้
    ดูเหมือนมันจะอยู่ได้ไม่นานและถูกทิ้งไปแล้ว และ Linux distribution ยอดนิยมก็เลิกทำแพ็กเกจให้แล้วด้วย ฉันไม่รู้จักเครื่องมืออื่นที่วัดแบบเดียวกันได้

  • ในสมัยก่อนยุค IPv6, geoip ของ IPv4 ใช้งานได้ค่อนข้างดี และบน Windows ก็มีเครื่องมือคล้าย traceroute ชื่อ NeoTrace Pro ที่สามารถแสดง IP บนแผนที่ได้
    เท่าที่จำได้ มันยังมีฟีเจอร์คล้ายแผนที่ ping ที่ส่ง ping ซ้ำไปยังอุปกรณ์ระหว่างทางแต่ละตัวด้วย
    ทุกวันนี้อุปกรณ์ระหว่างทางไม่ได้ตอบกลับกันหมดแล้ว อีกทั้งมีทั้งโอเวอร์เลย์ของผู้ให้บริการและการจัดการ flow แบบ SDN มากเกินไป ทำให้ยากที่จะจับคู่ IP กับตำแหน่งทางกายภาพที่แน่นอน มันไม่เหมือนสมัยเครือข่ายโทรศัพท์บ้านที่บริษัทเล็ก ๆ ซื้อ Class C แล้วใส่เบอร์โทรบริษัทไว้ในฐานข้อมูล ARIN

    • มันคล้ายกับ pingplotter หรือเปล่า?