Ответы:
ping
для внешнего хоста может произойти сбой по множеству причин, лишь немногие из которых действительно говорят что-либо полезное о состоянии вашей собственной сети.
В качестве первого шага откройте окно терминала и введите
ip route ls
Вы должны увидеть вывод по линии
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
Это указывает на то, что ваша локальная сеть является сетевым соединением ( eth0
) с адресом 192.168.15.0
и что ее шлюз по умолчанию, через который он получает доступ к остальной части Интернета, можно найти по адресу 192.168.15.1
.
Далее вы можете попробовать по ping
этому адресу:
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
Если вы видите что-то похожее на вышесказанное, ваша локальная сеть, по крайней мере, в порядке. На этом этапе вы можете начать поиск с более продвинутыми инструментами, например, traceroute
увидеть, где может произойти сбой вашего соединения с пунктом назначения.
Однако после быстрой проверки Google того, что growl
на самом деле должно быть, у меня возникает ощущение, что что-то не так. Можете ли вы расширить свой вопрос, чтобы дать нам несколько более подробную информацию о том, что вы пытаетесь сделать, как вы пытаетесь это сделать, и полный вывод ошибок? Линия, которую вы сейчас нам даете, резко обрывается ...
ip route get 1.2.3.4
Надежнее, чем просто делать ip route ls
. В первом будут применяться любые правила, действующие в дополнение к маршрутам. Это также устраняет возможность неправильного прочтения таблиц маршрутизации.
Очень простой и быстрый способ - использовать ping
команду.
Вы можете просто напечатать
$ ping yahoo.com
(или cnn.com или любой другой хост) и посмотрите, вернетесь ли вы обратно. Это предполагает, что имена хостов могут быть разрешены (т.е. работает DNS). Если нет, то вы можете указать действительный IP-адрес / номер удаленной системы и посмотреть, можно ли его получить.
Вот страница справочника ping .
Обновление :
В качестве быстрого примера вы можете проверить возвращаемое значение (например, с помощью "echo $?"
) from, ping
чтобы увидеть, была ли команда выполнена успешно (вы всегда можете перенаправить вывод команды > /dev/nul
). Обратите внимание, я использую -c 1
здесь, но вы могли бы использовать больше.
$ 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>
и работайте с кодом возврата: если true (0), то у него есть подключение; если false (1), он не может общаться с этой машиной.
mtr - это инструмент, который похож на ping, но дает вам больше информации, такой как потеря пакетов, статистика времени прохождения пакетов и т. д.
ping -c 1 www.yourtrustedserver.com | grep " 0% packet loss"
. Это пингует сервер одним пакетом и выводит строку «0% потери пакетов». (пробел перед 0% важен) Если команда возвращает строку, вы подключены, иначе не подключены.