วิธีตรวจสอบการเชื่อมต่ออินเทอร์เน็ตสำหรับการขัดจังหวะ - สำหรับ Mac OS X


16

ฉันสมัครเป็นสมาชิก ISP ใหม่และฉันประสบปัญหากับ ISP ใหม่นี้ ปัญหาคือการขัดจังหวะด้วย micro หลายครั้งในการเชื่อมต่ออินเทอร์เน็ตชนิดของความล่าช้าซึ่งอาจเกี่ยวข้องกับการหมดเวลาในพร็อกซีหรือในการเชื่อมต่อกับเครือข่ายของฉัน

เมื่อการขัดจังหวะแบบไมโครเกิดขึ้นแบบสุ่มฉันไม่สามารถพิสูจน์ได้ว่าเพราะทุกครั้งที่ส่งช่างไปที่สำนักงานของฉันปัญหาจะไม่สามารถตรวจพบได้เป็นพิเศษเพราะบริการอาจมีความเสถียรเป็นเวลา 3, 4 ชั่วโมงแล้วเริ่มแสดงปัญหาอีกครั้ง

มันน่ารำคาญมากด้วยเหตุผลสองประการ ฉันกำลังดาวน์โหลดบางอย่างจากนั้นการดาวน์โหลดจะหยุดลงทันทีและฉันต้องเริ่มใหม่อีกครั้ง อีกเหตุผลหนึ่งคือฉันใช้กล่อง VoIP ที่เชื่อมต่อกับโทรศัพท์ของฉันโดยใช้อีเธอร์เน็ตและกล่อง VoIP นี้ขาดการเชื่อมต่อทุกครั้งและโทรศัพท์ VoIP ของฉันหยุดรับ / โทรออกทำให้ฉันต้องรีสตาร์ทกล่องทุกครั้งที่ฉันตรวจพบ โทรศัพท์ลงโดยไม่สังเกตเห็น

คำถามของฉันคือฉันจะตรวจสอบบริการอินเทอร์เน็ตเป็นระยะเวลาหนึ่งบอกฉันเมื่อบริการขัดข้องพล็อตกราฟิกหรืออะไรแบบนั้นได้อย่างไร มีเครื่องมือหรือวิธีตรวจสอบคุณภาพของเครือข่ายหรือการเชื่อมต่อที่สามารถทำงานบน Mac ได้หรือไม่?

ความคิดของฉันคือการมีสิ่งที่จะแสดงให้พวกเขาและพิสูจน์ว่าฉันถูก


คำถามนี้อาจอยู่ในหัวข้อพอดีกับแม่แบบ "คำถามที่ดี" (จากฉันจะถามคำถามที่อาจต้องมีซอฟต์แวร์แนะนำหรือไม่ ) "ฉันมี <problem-x - การขัดจังหวะเครือข่าย> ที่ฉันไม่รู้วิธี แก้ปัญหาฉันได้ลอง X, Y, Z (เริ่ม VoIP ใหม่เมื่อตรวจพบ) แต่โปรแกรมเหล่านั้นไม่ทำงานเพราะสิ่งนี้หรือสิ่งนั้นฉันจะทำสิ่งนี้ได้อย่างไร " เป็นปัญหาเดียวที่ถาม "เครื่องมือสำหรับการตรวจสอบการเชื่อมต่ออินเทอร์เน็ต" แทนที่จะพูดว่า "วิธีการตรวจสอบการเชื่อมต่ออินเทอร์เน็ตสำหรับการขัดจังหวะ?
Xen2050

คำตอบ:


5
Applications->Utilities->Console.app

ลองดูในบันทึกนั่นเป็นการเริ่มต้น

นอกจากนี้คุณยังสามารถมองเข้าไปntopหรือลิตเติ้ลสนิช


1
ntop.org <ลิงก์ที่ถูกต้องไปยัง ntop (ฉันคิดว่า)
Frank Lämmer

ค้นหาen0หรือen1เมื่อคุณเปิด console.app (ชื่ออินเทอร์เฟซเครือข่าย) เพื่อดูข้อมูลเครือข่าย
Justin

7

หากคุณใช้สิ่งต่อไปนี้:

ping -A -i 10 --apple-time 10.20.30.40 > monitor.txt

มันจะทำงานอย่างต่อเนื่องจนกว่าจะหยุดและ ping ทุก ๆ 10 วินาทีเพื่อ10.20.30.40(เปลี่ยนที่อยู่ของคุณ)

--apple-timeหมายความว่ามันจะเข้าสู่ช่วงเวลาของแต่ละ ping เพื่อให้คุณสามารถเห็นความล้มเหลว ชอบมาก

11:33:10.793801 64 bytes from 10.20.30.40: icmp_seq=0 ttl=58 time=27.744 ms
11:33:11.780250 64 bytes from 10.20.30.40: icmp_seq=1 ttl=58 time=9.757 ms
11:33:12.781136 64 bytes from 10.20.30.40: icmp_seq=2 ttl=58 time=10.150 ms
11:33:13.782932 64 bytes from 10.20.30.40: icmp_seq=3 ttl=58 time=11.779 ms
11:33:14.785446 64 bytes from 10.20.30.40: icmp_seq=4 ttl=58 time=11.254 ms

2

วิธีการเกี่ยวกับการpingทำงานใน Terminal? เพียงค้นหาเซิร์ฟเวอร์ที่เปิดอยู่และตอบสนองต่อการปิง แม้ว่ามันจะไม่แสดงเวลาที่แน่นอน แต่มันก็ช่วยให้คุณพิสูจน์ว่ามีบางอย่างผิดปกติ

แก้ไขเพื่อเพิ่ม: ฉันเคยใช้มันมาก่อนแล้วเหมือนกัน ในขณะที่พวกเขายืนยันว่าจุดเข้าใช้งานไร้สายของฉัน (แก่กว่าจะซื่อสัตย์) อาจเป็นความผิดพลาดเนื่องจากพวกเขาไม่พบสิ่งใด "ฉันใช้เวลา ping หมดเวลาอย่างน้อยทุก ๆ ชั่วโมง" ช่วยให้วิศวกรตรวจสอบสิ่งต่างๆ


2

ปิง

ในการตรวจสอบการเชื่อมต่ออินเทอร์เน็ตคุณสามารถใช้ pingคำสั่ง มันเพิ่งส่ง ICMP ECHO_REQUEST และคาดว่าจะตอบสนอง

Ping เราเตอร์ IP ของคุณเมื่อไม่ตอบสนองคุณสามารถรายงาน ISP ของคุณว่ามีการขัดจังหวะอินเทอร์เน็ต

หากเราเตอร์ของคุณมีไฟร์วอลล์ให้ใช้arpingแทนหรือเลือกโฮสต์ระยะไกลอื่นเช่น

$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
64 bytes from 4.2.2.1: icmp_seq=0 ttl=57 time=37.710 ms
64 bytes from 4.2.2.1: icmp_seq=1 ttl=57 time=32.051 ms

Arping

ในการตรวจสอบการเชื่อมต่อทางกายภาพของคุณกับเราเตอร์คุณสามารถใช้arpingเช่น

$ sudo arping 192.168.0.1

สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อ WiFi ของคุณตกลงมาและเราเตอร์ของคุณไม่ตอบสนองต่อแพ็คเก็ต ICMP มาตรฐาน ติดตั้งผ่าน Brew (brew install arping )

tcpdump

มีtcpdumpซึ่งสามารถถ่ายโอนข้อมูลปริมาณการใช้บนเครือข่าย ตัวอย่างเช่นการดัมพ์แพ็กเก็ตขาออกทั้งหมดลงในพอร์ต80และ443ไวยากรณ์อาจเป็น:

sudo tcpdump -i en0 port http or port https

หากต้องการเขียนลงในไฟล์ให้เพิ่ม-w fileจากนั้นอ่านผ่าน-r fileแล้วอ่านผ่านทางซึ่งจะรวมถึงการประทับเวลาที่แน่นอนของแต่ละแพ็กเก็ตเครือข่ายที่ได้รับหรือส่ง

หากต้องการตรวจสอบว่าอินเทอร์เน็ตถูกขัดจังหวะหรือไม่ให้มองหาแพ็กเก็ต SYN (ในส่วนธง) ที่คอมพิวเตอร์ของคุณส่งและแต่ละเซิร์ฟเวอร์ควรตอบกลับด้วย SYN-ACK หากสิ่งนั้นไม่ได้เกิดขึ้นและไม่มีการรับส่งข้อมูลใด ๆ กลับมา (เพียงแค่แพ็คเก็ต SYN แสดงว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต)


มีวิธีง่าย ๆ (เช่นสคริปต์) ที่ค้นหาเอาต์พุต tcpdump โดยอัตโนมัติเพื่อค้นหาแพ็กเก็ต SYN ที่ไม่มีการตอบกลับ SYN-ACK ที่สอดคล้องกันหรือไม่
Xen2050

@ Xen2050 ฉันคิดว่าฉันจะ grep การถ่ายโอนข้อมูลหรือการส่งออกโดยมองหาSธงเช่น: sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"จากที่นั่นถ้าคุณได้รับในบริบท (พิเศษ| grep ack) กว่าหมายถึงสิ่งที่ตอบสนอง ดังนั้นคุณต้องการสิ่งที่ตรงกันข้าม ฉันคิดว่าคุณพบบางawk/ sedไวยากรณ์ที่สามารถหา 5 แพ็คเก็ต SYN ในแถวจากนั้นก็สามารถแจ้งเตือนว่ามีสิ่งผิดปกติ (เว้นแต่คุณกำลังติดต่อโฮสต์ที่ตายแล้ว)
kenorb

สำหรับการตรวจสอบสดping -A www.yahoo.comจะส่งเสียงบี๊บเมื่อการเชื่อมต่อดับลง ในขณะที่คุณสามารถใช้ที่อยู่ IP ได้การใช้ที่อยู่ที่มนุษย์สามารถอ่านได้จะทดสอบความล้มเหลวของ DNS เช่นกัน
brianfit

1

แอปนี้บันทึกสถานะการเชื่อมต่อของคุณและอ้างว่ามีการใช้งานภายในโดย Apple

บันทึกการขาดของเครือข่ายกราฟความเร็วในช่วงเวลาและอื่น ๆ Network Logger Pro ยังสามารถใช้ในการตรวจสอบเว็บไซต์และสร้างกราฟประวัติศาสตร์ของความเร็วการหยุดทำงานและเวลาตอบสนอง

https://itunes.apple.com/us/app/network-logger-pro/id764324406?mt=12

แม้ว่ามันจะเป็น $ 10: /


1

นั่นเป็นอาการอย่างหนึ่งที่ฉันมีนอกเหนือจากปริมาณงานที่น้อย มันกลายเป็นเคเบิลโมเด็ม ข่าวดีก็คือคุณอาจไม่จำเป็นต้องโน้มน้าวใครให้รับเคเบิลโมเด็มใหม่ ISP ของฉันกลับกลายเป็นว่ามีนโยบายที่คุณสามารถเปลี่ยนเคเบิลโมเด็มของคุณเพื่อเปลี่ยนใหม่ได้ตามต้องการ ตรวจสอบและดูว่าคุณจะทำเช่นนั้น


ที่น่าสนใจ แต่คุณถึงจุด ใช่การเชื่อมต่อของฉันน่าเสียดายที่ใช้เคเบิลโมเด็ม แต่มันเป็นของใหม่ (ติดตั้งโดยพวกเขาเมื่อเดือนที่แล้ว) ฉันสงสัยว่าปัญหาคือเครือข่ายเคเบิลของพวกเขา ฉันไม่เคยชอบเคเบิลอินเทอร์เน็ต (ฉันถูกบังคับให้ใช้เพราะไม่มี บริษัท ผู้ให้บริการบรอดแบนด์รายอื่นในภูมิภาคของฉัน)
SpaceDog

1

สำหรับการใช้งานของตัวเองฉันได้เขียนสคริปต์ Bash ง่ายๆเพื่อตรวจสอบเรื่องนี้ มันใช้pingเป็นวิธีในการตรวจสอบการหมดเวลาตรงตามคำตอบส่วนใหญ่แนะนำให้คุณทำ ข้อดีของสคริปต์ก็คือเอาต์พุตบนหน้าจอของคุณจะแสดงเฉพาะการ Ping ที่หมดเวลาแทนที่จะรวมการ Ping ที่ประสบความสำเร็จด้วย นอกจากนี้คุณสามารถผ่านพารามิเตอร์สำหรับช่วงเวลาของการตรวจสอบมากกว่าจำนวนของความพยายามในการ ping ในระยะสั้นมันเป็นเพียงเสื้อคลุมสำหรับต่อไปนี้:ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" แหล่งที่มาและคำแนะนำการติดตั้งง่ายมีอยู่ที่ลิงค์ด้านล่าง:

https://github.com/superman-lopez/monitor-timeouts

ฉันทดสอบสคริปต์บน macOS และ Ubuntu Linux

#!/bin/bash
#Usage: ./monitor-timeouts.sh [duration] [target]
#example: ./monitor-timeouts.sh 60 192.168.1.1
minutes=$1
target=$2
if [ $# -eq 0 ]; then
    minutes=1
    target=google.com
fi
if [ -z "$2" ]; then
    target=google.com
fi
pings=$((60 * $minutes))

system=`uname`
if [[ $system == *"Linux"* ]]; then
    extraflag="-O"
fi

echo "Start monitor for network timeouts at `date` for $minutes minute(s)."
echo "Target host: $target"
ping $target -i 1 -c $pings $extraflag | grep -i "timeout\|unreachable\|no answer\|statistics\|transmitted\|avg"
echo "End monitoring at `date`."

ยินดีต้อนรับสู่ Super User! สคริปต์ของคุณสั้นพอที่จะรวมไว้ในโพสต์ของคุณ คุณควรแก้ไขคำตอบของคุณเพื่อรวมไว้ด้วย
bertieb

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