Odpowiedzi:
ping
na zewnętrznym hoście może zawieść z wielu powodów, z których tylko kilka faktycznie mówi coś przydatnego o stanie twojej sieci.
W pierwszym kroku otwórz okno terminala i wpisz
ip route ls
Powinieneś zobaczyć wynik wzdłuż linii
shadur@equinox:~$ ip route ls
192.168.15.0/24 dev eth0 proto kernel scope link src 192.168.15.102
default via 192.168.15.1 dev eth0
Oznacza to, że twoja sieć lokalna jest połączeniem ethernetowym ( eth0
) z adresem 192.168.15.0
i że jej domyślną bramę, przez którą uzyskuje dostęp do reszty Internetu, można znaleźć pod adresem 192.168.15.1
.
Następnie możesz spróbować znaleźć ping
ten adres:
shadur@equinox:~$ ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_req=1 ttl=255 time=0.352 ms
64 bytes from 192.168.15.1: icmp_req=2 ttl=255 time=0.269 ms
^C
--- 192.168.15.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.269/0.310/0.352/0.045 ms
Jeśli widzisz coś podobnego do powyższego, twoja sieć lokalna jest przynajmniej w porządku. W tym momencie możesz zacząć szukać za pomocą bardziej zaawansowanych narzędzi, takich jak traceroute
sprawdzanie, gdzie połączenie z miejscem docelowym może nie działać.
Jednak po szybkim sprawdzeniu przez Google, co growl
tak naprawdę powinno być, mam wrażenie, że dzieje się coś innego. Czy możesz rozwinąć swoje pytanie, aby podać nam kilka dodatkowych szczegółów na temat tego, co próbujesz zrobić, w jaki sposób próbujesz to zrobić oraz pełnego wyjścia błędu? Linia, którą nam obecnie podajesz, zostaje nagle odcięta ...
ip route get 1.2.3.4
jest bardziej niezawodny niż tylko robienie ip route ls
. Te pierwsze wejdą w życie wszelkie obowiązujące zasady oprócz tras. Eliminuje również możliwość błędnego odczytania tabel routingu.
Bardzo prostym i szybkim sposobem jest użycie ping
polecenia.
Możesz po prostu pisać
$ ping yahoo.com
(lub cnn.com lub jakikolwiek inny host) i sprawdź, czy odzyskasz jakieś dane wyjściowe. Zakłada się, że nazwy hostów można rozwiązać (tzn. Działa dns). Jeśli nie, możesz podać poprawny adres IP / numer zdalnego systemu i sprawdzić, czy można go uzyskać.
Oto strona man pinga .
Aktualizacja :
Jako szybki przykład możesz sprawdzić wartość zwracaną (np. Za pomocą "echo $?"
), ping
aby sprawdzić, czy polecenie się powiodło (zawsze możesz przesłać dane wyjściowe polecenia do > /dev/nul
). Uwaga: używam -c 1
tutaj, ale możesz użyć więcej.
$ ping -c 1 yahoo.com
PING yahoo.com (72.30.38.140) 56(84) bytes of data.
64 bytes from ir1.fp.vip.sp2.yahoo.com (72.30.38.140): icmp_seq=1 ttl=52 time=83.5 ms
--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.593/83.593/83.593/0.000 ms
echo $?
0
$ ping -c 1 unicorns.are.here
ping: unknown host unicorns.are.here
$ echo $?
2
ping -c 2 -n <other host's IP>
i działaj na kodzie powrotu: jeśli true (0), to ma łączność; jeśli false (1), to nie może rozmawiać z tym komputerem.
mtr jest narzędziem podobnym do ping, ale daje więcej informacji, takich jak utrata pakietów, statystyki dotyczące czasów podróży pakietów itp.
ping -c 1 www.yourtrustedserver.com | grep " 0% packet loss"
. Powoduje to pingowanie serwera jednym pakietem i przechwytywanie danych wyjściowych dla ciągu „0% utraty pakietu”. (spacja przed 0% jest ważna) Jeśli polecenie zwraca wiersz, jesteś połączony, w przeciwnym razie nie jesteś połączony.