Cách theo dõi kết nối internet bị gián đoạn - đối với Mac OS X


16

Tôi đã đăng ký một ISP mới và tôi đang gặp vấn đề với ISP mới này. Các vấn đề là một số gián đoạn vi mô trên kết nối internet, loại độ trễ, có lẽ liên quan đến thời gian chờ trên proxy của họ hoặc trong kết nối của tôi với mạng của họ.

Vì những gián đoạn vi mô này xảy ra ngẫu nhiên, tôi không thể chứng minh rằng, vì mỗi lần họ gửi kỹ thuật viên đến văn phòng của tôi, vấn đề không thể phát hiện được, đặc biệt vì dịch vụ có thể ổn định trong 3, 4 giờ và sau đó bắt đầu hiển thị lại sự cố.

Nó rất khó chịu vì hai lý do. Tôi đang tải xuống một cái gì đó và sau đó tải xuống đột ngột và tôi phải bắt đầu lại. Một lý do khác là tôi sử dụng hộp VoIP được kết nối với điện thoại của mình bằng ethernet và hộp VoIP này bị mất kết nối mỗi lần và điện thoại VoIP của tôi ngừng nhận / thực hiện cuộc gọi, buộc tôi phải khởi động lại hộp mỗi khi tôi phát hiện ra và ở lại hàng giờ Điện thoại xuống, không để ý.

Câu hỏi của tôi là: Làm thế nào tôi có thể theo dõi dịch vụ internet trong một khoảng thời gian, cho tôi biết khi nào dịch vụ ngừng hoạt động, vẽ đồ họa hoặc một cái gì đó tương tự? Bất kỳ công cụ hoặc cách nào để theo dõi chất lượng của mạng hoặc kết nối có thể chạy trên máy Mac?

Ý tưởng của tôi là có một cái gì đó để cho họ thấy và chứng minh tôi đúng.


Câu hỏi này có thể thực sự thuộc chủ đề, nó phù hợp với mẫu "câu hỏi hay" (từ Làm cách nào để hỏi một câu hỏi có thể yêu cầu phần mềm giới thiệu? ) "Tôi có <vấn đề-x - gián đoạn mạng > mà tôi không biết giải quyết. Tôi đã thử X, Y, Z (khởi động lại VoIP khi tôi phát hiện ra) , nhưng các chương trình đó không hoạt động vì cái này hay cái kia. Làm thế nào để tôi làm điều này? " Có phải vấn đề duy nhất về cơ bản là yêu cầu "Công cụ giám sát kết nối internet" thay vì nói "Làm thế nào để giám sát kết nối internet bị gián đoạn?
Xen2050

Câu trả lời:


5
Applications->Utilities->Console.app

Hãy xem các bản ghi ở đó như là một sự khởi đầu.

Bạn cũng có thể nhìn vào ntop hoặc Little Snitch .


1
ntop.org <liên kết chính xác đến ntop (tôi nghĩ)
Frank Lämmer

Tìm kiếm en0hoặc en1một khi bạn mở console.app (tên giao diện mạng của bạn) để xem thông tin mạng.
Justin

7

Nếu bạn sử dụng như sau:

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

Nó sẽ chạy liên tục cho đến khi dừng lại và ping cứ sau 10 giây 10.20.30.40 (thay đổi địa chỉ của bạn)

Điều --apple-timeđó có nghĩa là nó sẽ ghi lại thời gian của mỗi ping để bạn có thể thấy các lỗi. Thích như vậy:

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

Làm thế nào về ping chạy trong Terminal? Chỉ cần tìm một máy chủ đang bật và trả lời ping. Mặc dù nó không hiển thị thời gian chính xác, nhưng nó cung cấp cho bạn một số loại bằng chứng cho thấy có gì đó không đúng.

Chỉnh sửa để thêm: Tôi đã sử dụng nó một mình trước đây cho một tương tự. Mặc dù họ cho rằng điểm truy cập không dây (cũ, thành thật) của tôi có thể có lỗi, vì họ không tìm thấy gì, "Tôi có thời gian chờ ping ít nhất một lần mỗi giờ" giúp kỹ sư kiểm tra mọi thứ.


2

Bình

Để theo dõi kết nối internet, bạn chỉ cần sử dụng ping lệnh. Nó chỉ gửi ICMP ECHO_REQUEST và mong đợi phản hồi.

Ping IP bộ định tuyến của bạn, khi nó không phản hồi, bạn có thể báo cáo với ISP của bạn là gián đoạn internet.

Nếu bộ định tuyến của bạn có tường lửa, hãy sử dụng arpingthay thế hoặc chỉ cần chọn một máy chủ từ xa khác, ví dụ:

$ 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

Để theo dõi kết nối vật lý của bạn với bộ định tuyến, bạn có thể sử dụng arping, vd

$ sudo arping 192.168.0.1

Điều này đặc biệt hữu ích khi WiFi của bạn liên tục bị rớt và bộ định tuyến của bạn không đáp ứng với các gói ICMP tiêu chuẩn. Cài đặt qua Brew ( brew install arping).

Tcpdump

tcpdumpthể đổ lưu lượng trên một mạng. Ví dụ: để đổ tất cả các gói đi vào cổng 80443, cú pháp có thể là:

sudo tcpdump -i en0 port http or port https

Để ghi vào tập tin, thêm -w file, sau đó đọc nó qua-r file . Điều này sẽ bao gồm các dấu thời gian chính xác của từng gói mạng được nhận hoặc gửi.

Để kiểm tra xem internet có bị gián đoạn hay không, hãy tìm các gói SYN (trong phần Cờ) mà máy tính của bạn gửi và cho mỗi máy chủ sẽ trả lời bằng một SYN-ACK. Nếu điều đó không xảy ra và không có bất kỳ lưu lượng nào quay trở lại (chỉ là các gói SYN, thì không có kết nối internet).


Có cách nào dễ dàng (như tập lệnh) tự động tìm kiếm đầu ra tcpdump đang tìm kiếm các gói SYN không có phản hồi SYN-ACK tương ứng không?
Xen2050

@ Xen2050 Tôi nghĩ rằng tôi sẽ grep kết xuất hoặc đầu ra bằng cách tìm kiếm Scờ như : sudo tcpdump -i en0 -nl | grep -C5 "Flags .S", từ đó, nếu bạn ack trong bối cảnh (thêm | grep ack), có nghĩa là một cái gì đó được phản hồi. Vì vậy, bạn cần một cái gì đó ngược lại. Tôi nghĩ rằng bạn tìm thấy một số awk/ sedcú pháp có thể tìm thấy 5 gói tin liên tiếp, sau đó nó có thể cảnh báo rằng có gì đó không đúng (trừ khi bạn liên hệ với một số máy chủ chết).
kenorb

Để theo dõi trực tiếp, ping -A www.yahoo.com sẽ phát ra tiếng bíp khi kết nối không hoạt động. Mặc dù bạn có thể sử dụng địa chỉ IP, nhưng sử dụng địa chỉ có thể đọc được của con người cũng sẽ kiểm tra các lỗi DNS.
brianfit

1

Ứng dụng này ghi lại trạng thái kết nối của bạn và thậm chí tuyên bố nó được Apple sử dụng nội bộ.

Ghi nhật ký ngừng hoạt động mạng, tốc độ biểu đồ theo thời gian và hơn thế nữa. Network Logger Pro cũng có thể được sử dụng để giám sát các trang web và tạo ra các biểu đồ lịch sử về tốc độ, sự cố ngừng hoạt động và thời gian phản hồi của chúng.

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

Đó là $ 10 mặc dù: /


1

Đó là một trong những triệu chứng tôi gặp phải , bên cạnh thông lượng thấp. Hóa ra là modem cáp. Tin tốt là bạn có thể không phải thuyết phục bất cứ ai để có được một modem cáp mới. ISP của tôi hóa ra có chính sách rằng bạn có thể đổi modem cáp của mình lấy một cái mới khá nhiều tùy ý. Kiểm tra và xem nếu bạn sẽ làm điều đó.


Thú vị, nhưng bạn đã đến điểm. Có, kết nối của tôi không may là bằng modem cáp, nhưng nó là một thương hiệu mới (nó đã được họ cài đặt một tháng trước). Tôi nghi ngờ vấn đề là mạng cáp của họ. Tôi không bao giờ thích internet cáp (tôi buộc phải sử dụng chúng, bởi vì không có công ty băng thông rộng nào khác cung cấp dịch vụ trong khu vực của tôi).
SpaceDog

1

Để sử dụng riêng của tôi, tôi đã viết một tập lệnh Bash đơn giản để kiểm tra điều này. Nó sử dụng pingnhư một cách để theo dõi thời gian chờ, chính xác như hầu hết các câu trả lời gợi ý bạn làm. Ưu điểm của tập lệnh là đầu ra trên màn hình của bạn chỉ hiển thị các ping đã hết thời gian, thay vì bao gồm cả các ping thành công. Ngoài ra, bạn có thể truyền tham số cho thời lượng giám sát, thay vì số lần thử ping. Nói tóm lại, nó chỉ là một trình bao bọc cho những điều sau đây:ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" Hướng dẫn cài đặt đơn giản và nguồn của nó có sẵn tại liên kết dưới đây:

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

Tôi đã thử nghiệm tập lệnh trên macOS và 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`."

Chào mừng bạn đến với Siêu người dùng! Kịch bản của bạn đủ ngắn để đưa vào bài viết của bạn; bạn nên chỉnh sửa câu trả lời của mình để đưa nó
bertieb

Cảm ơn lời đề nghị
Superman.Lopez
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.