Що таке зовнішня надійна IP-адреса до ping, щоб перевірити, чи доступний Інтернет? [зачинено]


53

Чи є якийсь загальний сервер, який постійно працює, який я можу налаштувати на ping в автоматичному режимі, щоб виявити Інтернет? Як Google або щось таке? Може бути 8.8.8.8?

Моя конкретна ситуація полягає в тому, що я використовую подвійний маршрутизатор WAN. Кожна WAN підключена до одного з Інтернет-провайдерів. Коли мої гроші закінчуються на одному з провайдерів, він не блокує канал. Натомість він переспрямовує на сторінку попередження. Отже, маршрутизатор вважає, що Інтернет увімкнено, адже дані подорожують. Інший варіант цього маршрутизатора - це надіслати пінг за якоюсь адресою, щоб перевірити, чи ввімкнено Інтернет.

Цікаво, що якщо я вкажу на 8.8.8.8, чи не заборонить мені Google за неналежне використання? Я підозрюю, що в Google можуть бути якісь квоти. Якщо я буду надсилати пінг файли серверів імен занадто часто, то я іноді отримуватиму відхилення DNS.


1
Я б запропонував вам перевірити те, чого ви насправді хочете. Коли ви говорите "Інтернет доступний", що ви маєте на увазі?
Девід Шварц

1
@DavidSchwartz він означає, що Інтернет недоступний. Якщо ви хочете певного тесту, багато чого буде базуватися на WAN, тому не можна перевіряти, оскільки це минуле стіни, але провайдер буде знати.
барлоп

5
ping stackexchange.com;)

6
@barlop Це дивно, але не корисно. Що означає "Інтернет недоступний"? Якщо я не можу зайти на веб-сайт Google, чи "Інтернет недоступний"? Якщо DNS працює, але веб-сторінки не працюють, чи доступний Інтернет? Першим кроком до відповіді на запитання є розуміння питання.
Девід Шварц

4
@DavidSchwartz Я не жартував, і вважаючи, що він говорить про тестування IP-адреси, пов’язаної з google, як тест, а не пінг домену, як www.google.com, як тест, він, очевидно, означає, що у випадку, коли DNS недоступний, але все інше доступне, то він вважає, що Інтернет доступний.Ienot недоступний. Якщо ви хочете знайти знак запитання, було б, чи поганий маршрутизатор "Інтернет недоступний", але очевидно, якщо ви могли б надати тест 4, що сценарій проти WAN доступні, або конкретні відомості в цьому, було б корисніше, ніж просто дати йому тест лише на один конкретний випадок, або ще гірше, без випадків.
барлоп

Відповіді:


56

Спробуйте пінг 8.8.8.8, це основний сервер DNS Google. Я завжди передавав це, щоб підтвердити свій зв’язок, і я ніколи його не знаходив. Крім того, ви можете спробувати 8.8.4.4, що є вторинною DNS Google.


3
pingтакож приймає TLD. Отже, ping google.comслід зробити трюк, якщо ви не хочете згадувати чотириразову вісімку.
Йоганнес Піл

38
@JohannesPille Для введення доменного імені потрібен робочий DNS-сервер. Таким чином, він може вийти з ладу, якщо запит DNS не вдався, а це не означає, що ваше інтернет-з'єднання фактично не працює.
Джонатан

3
Якщо ваш авторитетний сервер імен не працює, мережа у вашій зоні не буде корисною, чи не так?
Йоганнес Піл

6
@JohannesPille ви могли б замінити ваш основний DNS на 8.8.8.8 замість DCHP за замовчуванням
храповик виродка

6
@JohannesPille pingне приймає TLD. Він також не приймає доменні імена. Просто так, що більшість доменних імен є також іменами хостів і вирішують IP-адресу. Тож люди могли вводити http://example.comзамість цього http://www.example.com, перш ніж браузери були настільки розумні, www.щоб додати ім’я хоста, якщо воно не працювало в першу чергу. (Спробуйте, ping army.milякщо ви мені не вірите.)
Дубу,

33

Ви можете робити те, що робить Microsoft: перевірити це

http://www.msftncsi.com/ncsi.txt

повертає "Microsoft NCSI". (Це підтверджує, що ви можете отримати правильні дані з сайту, наприклад, не через портал Wifi чи щось інше).

Ви також можете перевірити (наприклад, ping), що dns.msftncsi.com

вказує на 131.107.255.255 (це підтверджує, що DNS працює).

Дивіться http://technet.microsoft.com/en-us/library/ee126135

NB: Ви також можете відвідати http://www.msftconnecttest.com/redirect, щоб пройти себе через захоплений портал, якщо це потрібно.


1
+1. IIRC, Windows також має API для перевірки рівня підключення до Інтернету за допомогою цього методу.
Навін

7
Чому це не прихильне? один з небагатьох дійсно хороших способів, особливо для конкретного питання. Якщо ваш Інтернет-провайдер перенаправляє ваш трафік на сторінку попередження, перевірка такої відповіді є одним з небагатьох надійних варіантів!
Фалько

Більше не працює
користувач2924019

1
Що не працює? На сайті все ще повертається правильний текст, dns все-таки вирішується на правильний IP, документація все одно повертає потрібну інформацію
Марк Совул

FYI, ти не можеш пінг 131.107.255.255- це вичерпується www.msftncsi.comпроходить a1961.g2.akamai.net, що вирішує 23.59.182.83час написання - я не знаю, статичний це IP чи ні. Хоча це хороша відповідь на запитання "яка хороша URL-адреса для надійного тестування мого інтернет-з'єднання", наприклад, cURL або браузер, це не IP-адреса, яку можна перевірити простою pingкомандою, тому це не є відповіддю на це конкретне питання.
іоно

13

Конкретний випадок

Ви хочете прописати "найближчий" фіксований IP, який не є маршрутизованим, коли ISP переходить у стан перевантаження трафіку. У моїй системі я можу наслідувати цю ситуацію, відмовивши аутентифікацію ADSL. У цьому випадку, порівнюючи результати traceroute -nв нормальних та аномальних умовах, я бачу, що перший скачок на 8.8.8.8 (або будь-який, безумовно, зовнішній сайт), який не відповідає, - це 151.6.68.45, що є частиною інфраструктури мого провайдера.

Використовуючи цей IP в якості хоста «чек-живий» (після того, як повторити тест , просто щоб переконатися , що це фіксоване), можна виявити ISP аномалію без отримання помилкових спрацьовувань в разі ADSL в порядку, але маршрутизація ISP має проблеми .

Звичайно, я міг би використовувати 8.8.8.8 навмисне , розмірковуючи , що якщо я не можу досягти інфраструктури Google, я не дбаю про причини , я міг би також спробувати з резервним маршрутизатором.

Загальний випадок

"Інтернет доступний" є набагато складнішою справою, ніж просто "Є 8.8.8.8 (або інший IP) доступний".

Для швидкої, брудної та не завжди надійної перевірки добре підходить pinging 8.8.8.8. Але бачачи, як ви використовуєте числовий IP замість доменного імені, ви вже придумали той факт, що у вас може бути IP-зв’язок і все ще "відсутність Інтернету" через проблеми з DNS.

Повна діагностика повинна початися близько до вашого ПК.

  • запитувати конфігурацію локальної мережі та отримати шлюз та DNS-сервер.
  • ping шлюз. Він повинен бути доступним. Якщо ні, то існує локальна проблема.
  • запустити traceroute з коротким TTL (насправді, TCP traceroute, такий як той, який надає hping, краще) безумовно зовнішньої адреси, 8.8.8.8 добре.
  • ви хочете побачити, що після вашого шлюзу реагують деякі додаткові вузли.

Наприклад, в домашніх умовах Windows XP у мене є:

 1    <1 ms    <1 ms    <1 ms  192.168.4.200   -- (constant) Home Linux box (gateway)
 2    <1 ms    <1 ms    <1 ms  192.168.0.1     -- (constant) ADSL modem
 3     *        *        *     *               -- WAN interface, always fails; expected
 4     *        6 ms     6 ms  151.6.64.30     -- (varies) ISP gateway

Тепер спробуйте pinging DNS. Він повинен бути доступним. Ще краще, запустіть просту перевірку DNS. Щоб уникнути кешів DNS, я іноді використовую деякий домен, який відповість на всі запити незалежно від того. Так, наприклад

$ host randomasdfdsasdqwerty987667.godaddy.com
randomasdfdsasdqwerty987667.godaddy.com has address 97.74.104.201

хоча DNS-сервер ненадійний, той же запит може повернути адресу порталу, що перебуває в положенні, для wifi

$ host randomasdfdsasdqwerty987667.godaddy.com
captiveportal.homenet has address 192.168.4.200

або 127.0.0.1, або навіть помилка.

У разі відмов DNS я можу спробувати простежити IP-адресу DNS (або іншу DNS, таку як OpenDNS). Це не лише скаже мені, чи проблема DNS чи провайдера, вона часто дозволить мені обійти переривання.

Якщо в цьому моменті все гаразд, я знаю, що з'єднання працює в цілому; для деяких сайтів це все ще може бути невдалим. Все, що мені зараз потрібно, - isup.meце стати :-), потім перевірити

http://www.isup.me/www.google.com
http://www.isup.me/mail.google.com

або веб-сайт, такий як детектор Down, буде інформувати мене про "погоду в Інтернеті".

Насправді на моєму домашньому сервері є кеш кальмарів, а сторінка помилок містить останні дані, успішно отримані зі статистики вниз, тому я можу побачити щось подібне

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!

так, як це сталося минулої п’ятниці тут, в Італії.


Якщо ви можете пінг 8.8.8.8, просто переключіть свій DNS-сервер на це, щоб проблеми з DNS-провайдером не мали значення
Zeb McCorkle

2
Так, але ви повинні зробити це лише після того, як ви переконаєтесь, що проблеми справді базуються на DNS. Існують і інші проблеми, і вони можуть залишити маршрутизацію до 8.8.8.8 (або протокол ICMP) недоторканою, під час виламування чогось іншого. І навпаки, невдача пінгу 8.8.8.8 може зовсім не вказувати на маршрутизацію чи проблему DNS.
LSerni

6

Як сказала пара, ви можете написати, скажімо, основний DNS Google, щоб отримати відповідь, але не покладатися на одну адресу. Адреса (з ряду причин) може бути відсутньою протягом певного періоду, протягом якого ваше програмне забезпечення буде повідомляти про "відсутність зв'язку", коли, власне, підключення до мережі може не мати жодних проблем. Ви завжди повинні намагатися спілкуватися з більш ніж однією адресою, щоб ви могли виключити помилкові негативи.

Я б написав функцію, яка вводить адресу один раз, якщо це не вдасться перейти на інший (до, скажімо, трьох IP-адрес), і коли ви отримаєте пару позитивних відповідей, функція повинна повідомити вашій заяві / сценарію, що Інтернет доступний і продовжувати.


3

Коли я працював в організації з невловимим підключенням до Інтернету, у мене був сценарій, який перевіряв декілька серверів "завжди вгору" на зв'язок: спочатку маршрутизатор / комутатор локальної мережі, потім локальний файловий сервер, потім маршрутизатор T1, потім DNS провайдера, потім Google. Я перевірив останні два як числові адреси та як домени, щоб перевірити проблеми DNS проти ping як такі. Якщо будь-який з пінгів вийшов з ладу занадто часто, я отримав уявлення про те, де найімовірніше існує проблема підключення до Інтернету.

Щодо числової адреси для Google, я просто використовував одну, яку раніше отримав від nslookup - я ніколи не натрапляв на випадок, коли її було знищено. Я думаю, 8.8.8.8 було б простіше.

Досить часто, коли люди дзвонили сказати, що "Інтернет знищений", виявилося, що тільки DNS знижений; ми можемо назвати ці різні речі, але з точки зору моїх колег, Інтернет не був доступний в будь-якому випадку.



2

Спробуйте свій сервер DNS, він вам все одно знадобиться (і зовнішнє з'єднання вашого провайдера може бути відключене). Це дійсно залежить від того, що ти хочеш. Якщо вам потрібно отримати доступ до конкретної послуги, перевірте її.


Це справедливо лише в тому випадку, якщо ви знаєте, що сервер DNS провайдерів відповідає на ping. Це може працювати, але блокувати ICMP.
Оллі

Це найпростіша і найкраща відповідь, ІМО.
njbair
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.