Відповіді:
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
Це вказує на те, що ваша локальна мережа - це Ethernet-з'єднання ( 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 $?"
), 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%) Якщо команда повертає рядок, ви підключені, інакше не з'єднані.