Как настроить интернет: малоизвестные бэк-энд методы и секреты (1 часть).

New Perspectives on Coding

Мы очень рады представить вам главу из предстоящего печатного выпуска Smashing Book #4: Новые взгляды на кодирование, написанную Полом Теро. Обратите внимание, что вторая часть этой главы будет опубликована на следующей неделе. Если вы не можете ждать до тех пор, то не стесняйтесь и загружайте полную версию этой главы, которая доступна в электронной Smashing библиотеке демонстрационных материалов.— Ред.
Представьте, что вы просыпаетесь однажды утром, доходите до своего ноутбука и запускаете его. Вы только что закончили разработку нового веб-сайта и вчера вечером с гордостью щелкали по списку продуктов. Окно браузера все еще открыто, Widget 3000 по-прежнему сверкает в своей  AJAXy новизне. Вы улыбаетесь, как это делают родители при виде своего ребенка, и с надеждой нажимаете на кнопку “Подробнее”. Но ничего не происходит. Вы пробуете щелкнуть еще раз, но по-прежнему ничего не происходит. Нажимаете Refresh (обновить) и перед вами появляется характерный раздражающий значок кручения, а затем пустая страница. Помогите! Пропал интернет!

Эта глава начинается с описания худшего варианта развития событий и постепенно проводит углубленный анализ, исследуя инфраструктуру интернета и состав веб-сервера. При этом появляется большое количество небольших советов и команд, которые помогают читателю по новому взглянуть на причины прекращения работы веб-сайтов и на возможные варианты исправления проблем.

Конец света.

Маловероятно, что цивилизация могла бы исчезнуть за одну ночь, особенно если вы чутко спите. Вы можете услышать об этом из радио на батарейках. Апокалипсис, безусловно, повлечет за собой бесконечную череду новостей и полномасштабное предупреждение правительства. Все станции должны были бы трубить об этом, подробно описывая ход текущих событий; это было бы очень, очень плохие новости.

В США многие вещательные станции входят в состав “Системы оповещения о чрезвычайных ситуациях”, которая теоретически позволяет президенту обратиться к народу в течение 10 минут. Подобная система может быть уязвима для хакеров. Франция использует сирены воздушной тревоги для Национального предупреждения d’Alerte2, а Японская J-Alert использует громкоговорители. Все эти средства являются частью Международной программы раннего оповещения, контролируемой Организацией Объединенных Наций. Наличие такой программы очень важно, особенно сейчас, когда действует система Международного уменьшения опасности стихийных бедствий (1990-е годы).

Вы должны иметь возможность быстро и точно установить, связаны ли беды вашего веб-сайта с каким-либо стихийным бедствием. Если нет, то переходим к следующему этапу.

Инфраструктура.

Интернет полностью зависит от электричества. Ваша хостинг компания, вероятно, имеет источник бесперебойного питания (ИБП), который мгновенно возьмет на себя роль источника питания в случае отсутствия электричества. ИБП может на несколько минут обеспечить питание для веб-сервера, достаточно долго для включения дизель-генератора. Основное сетевое оборудование, позволяющее выполнять подключение веб-сервера к интернету, также будет защищено благодаря ИБП и генератору. Ваш ноутбук также должен сохранить свою работоспособность в течение последующих нескольких часов, при условии полной зарядки.

Однако, ваш беспроводной маршрутизатор перестанет функционировать. Это самое слабое звено. Вы можете обойтись и без него, используя для доступа к интернету смартфон, который должен работать, пока у ближайшей мобильной вышки хватит резервного питания. Для доступа к интернету можно также воспользоваться другими рабочими вышками. Этот способ может быть очень медленным, особенно если многие люди в вашем районе использовали ту же идею. Если ваш сайт все еще не функционирует, то проблема более специфическая.

Организация сети.

Отключение электричества — это не единственная вещь, которая может повлиять на работоспособность широкополосных маршрутизаторов. Существует множество причин нарушения общего функционирования, как и у любого другого сетевого оборудования, обеспечивающего связь пользователя и веб-сайта. Не стоит также забывать и о повреждениях медных и оптоволоконных соединяющих кабелей.

Для анализа проблемы с сетью, вам нужно будет выполнить некоторые команды. Большая часть этой информации также доступна благодаря различным меню, но командная строка позволяет вам получить больше данных и быстрее. В Mac OS X, перейдите в Приложения → Утилиты и запустите Терминал (Applications → Utilities→Terminal). В Ubuntu Linux, Терминал находится в Приложения → Стандартные (Applications → Accessories). В Windows перейдите в меню Пуск → Все программы → Стандартные и выберите Командная строка (Start → All Programs → Accessories → Command Prompt.).

Ваш IP адрес.

Каждый компьютер, подключенный к интернету, имеет числовой IP (Internet Protocol) адрес. Чтобы узнать ваш IP адрес выполните команду Ifconfig на Mac и Linux и ipconfig /all на Windows. Результат будет выглядеть примерно так:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:10:dc:75:d9:5b  
 inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::210:dcff:fe75:d95b/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1...
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1...

Это сообщение говорит о том, что компьютер (Linux в данном случае) имеет два сетевых интерфейса. eth0 — это один из них, который взаимодействует с сетью интернет через кабель. Если бы этот компьютер обладал беспроводным подключением, то там также присутствовал eth1 или wlan0 интерфейс. Интерфейс loopback lo используется в качестве быстрого вызова. Каждый интерфейс имеет IP-адрес в локальной сети. В нашем случае важной линией будет inet addr:192.168.0.11.

Именно эта строка дает информацию об IP-адресе компьютера. Если у вас организовано подключение к интернету через кабель и одновременно по беспроводной сети, то может появиться два активных интерфейса и два IP-адреса. Но использоваться, как правило, будет только один из них. Mac обычно называет эти интерфейсы en0 и en1. Windows, является более многословной и использует подробные названия, например, “Ethernet адаптер подключения по локальной сети”.

DHCP.

Каким образом ваш компьютер узнает IP-адрес? В случае пользования компьютером в домашних условиях или работы с беспроводной сетью вам не нужно вводить эту информацию самостоятельно. Когда компьютер первый раз подключается к домашней сети, он отправляет запрос к любому другому устройству в сети и получается что-то вроде: “Пожалуйста, кто-нибудь дайте мне IP адрес?”

Ваш широкополосный маршрутизатор должен послушно реагировать и назначить компьютеру IP-адрес. Как вы уже наверное знаете, маршрутизаторы являются теми самыми устройствами, которые позволяют всем устройствам в интернете работать вместе. В отличие от ноутбуков и персональных компьютеров, маршрутизаторы имеют более одного сетевого интерфейса, более одного подводящего кабеля (или беспроводной точки доступа) и следовательно более одного IP-адреса. В вашем доме или офисе, маршрутизатор представляет собой маленькую коробочку, которая обеспечивает подключение к интернету через широкополосный сервис.

Основной метод, который используется для назначения IP-адреса называется Dynamic Host Configuration Protocol (DHCP) (Протокол динамической настройки узла). Если IP-адрес не назначается при запуске ifconfig или ipconfig, вы можете заставить ваш компьютер осуществить получение новых параметров DHCP. В Windows запустите ipconfig /release вызываемые ipconfig /renew. На Mac, запустите sudo ipconfig set en0 DHCP, а при использовании Linux sudo dhclient eth0. На Mac и Linux, фактической команде предшествует слово sudo, которое заставляет вас прописать корневой (root) пароль для компьютера. Вы также должны указать, какой интерфейс возобновить, как правило, eth0 на Linux и en0 для Mac.

Если все было проделано успешно, то вуаля! Вы стали немного ближе к тому, чтобы вернуть доступ к интернету. Если нет, то проверьте ваш широкополосный маршрутизатор. Он может быть выключен, отсоединен или сломан или его просто нужно перезагрузить.

Default Gateway (шлюз по умолчанию).

Обратите внимание на то, что ваш широкополосный маршрутизатор в какой-то момент недавнего прошлого еще функционировал, поскольку он дал вам IP-адрес. Но это могло быть три дня назад: что же делать сейчас?

Каждый компьютер в интернете имеет шлюз по умолчанию. В основном это IP-адрес части сетевого оборудования на другом конце кабельной сети или беспроводного соединения. Это шлюз для доступа вашего компьютера к интернету. Каждый раз, когда вы запрашиваете что-либо в интернете, то информация проходит через этот шлюз. Чтобы найти шлюз по умолчанию, запустите netstat -nr на Mac и Linux, и route print (или ipconfigснова) в Windows. Вы получите результат наподобие следующего:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 eth0

В колонке Destination (назначение) в примере выше, сочетание цифр 0.0.0.0 (или слово “дефолт”) означает принадлежность к любому месту, а буква G в колонке Flags означает “Шлюз”. Шлюз по умолчанию для этого компьютера 192.168.0.1. Для людей, работающих дома или в небольшом офисе это, вероятно, внутренний IP адрес широкополосного роутера.

Вы можете использовать команду пинговать (ping), чтобы увидеть запущен ли он и доступен. Пропишите команду ping 192.168.0.1.

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.31 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.561 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=12.6 ms

Ответ “64 байта от 192.168.0.1″ является корректным результатом. Если вы получили подобный ответ, то ваш широкополосный маршрутизатор работает. Если нет, то проверьте его еще раз. На Mac и Linux ответ будет приходить до тех пор, пока вы не нажмете комбинацию Control + C. В Windows пингование прекратится после четвертого запроса.

За пределами маршрутизатора.

Чтобы выйти за пределы маршрутизатора, вам нужно использовать команду traceroute на Mac и Linux, и tracert в Windows. Эта команда отслеживает маршрут через интернет, фиксируя информацию о каждом найденном сетевом устройстве (маршрутизаторе). IP адреса формируются из четырех чисел значением от 0 до 255. Выберите IP-адрес и протестируйте его:

$ traceroute -q 1 -n 1.2.3.4
traceroute to 1.2.3.4 (1.2.3.4), 30 hops max, 60 byte packets
 1  *
 2  80.3.65.217  9.163 ms
 3  213.105.159.157  11.158 ms
 4  213.105.159.190  11.215 ms
...
13  72.14.236.149  98.484 ms
14  209.85.252.47  104.071 ms
15  *
16  *...

Опция -q 1 на Mac и Linux дает команду опрашивать каждый маршрутизатор только один раз. Опция -n позволяет отбрасывать те имена маршрутизаторов, которые представлены в форме, затруднительной для человеческого понимания. При выборе этой опции выполнение команд происходит гораздо медленнее. В Windows используйте tracert -d 1.2.3.4.

Согласно жаргону в области сетевых технологий каждый шаг, описанный выше, известен как хоп (один двухточечный отрезок пути передачи сообщения в сети). Первый хоп – это широкополосный маршрутизатор. Вероятнее всего, он настроен на запрет передачи какой-либо информации о себе, поэтому traceroute просто будет отображать звездочку. Второй хоп принимает информацию вне локальной сети с другой стороны широкополосного маршрутизатора.

Каждому последующему хопу соответствует другой маршрутизатор со многими сетевыми интерфейсами и многими IP-адресами. Как и в примере выше, каждый маршрутизатор имеет таблицу маршрутизации. Эта таблица составлена в соответствии со следующими правилами: если адрес назначения начинается с цифры от 0 до 91, то пакет информации отправляется на интерфейс eth1 (используется Iface колонка); если начинается с цифры от 92 до 128, нужно использовать eth2.

В этом примере выполняется 14 хопов, прежде чем мы попадаем в тупик. Это происходит либо потому, что IP-адрес заблокирован, либо потому, что он не используется.

Работа только с одними цифрами может быть не очень удобна. Мы надеемся, что вы установили причину неисправности или, по крайней мере, выявили наличие сетевой активности. Вы также узнали, как использовать полезные сетевые команды ifconfig, ping и traceroute. Для дальнейшего изучения вам необходимо ознакомиться с понятием Domain Name System (DNS).

Служба имён доменов.

Smashing Magazine могли бы использовать http://80.72.139.101 в качестве основного адреса своего веб-сайта вместо http://www.smashingmagazine.com. Использование такого адреса имело бы два преимущества: требовалось бы меньше места для представления на визитных карточках, и он все равно бы работал, даже когда не работает DNS. Однако, маркетинговая Smashing команда может возражать, ведь клиентская база была бы ограничена людьми с исключительно хорошей памятью.

Служба имен доменов делает интернет более понятным для человека благодаря переводу названий доменов, как например www.smashingmagazine.com и IP-адресов, например, 80.72.139.101. DNS – это большая иерархически распределенная база данных. Вы, наверное, знаете, что нет ни одного компьютера, который знал бы все переводы и к которому все могли бы обратиться. Скорее всего, это огромная сеть компьютеров, каждый из которых знает несколько переводов и знает, куда нужно обратиться в случае отсутствия требуемой информации.

Ваш локальный DNS сервер.

Каждый компьютер имеет локальный DNS сервер. Это одни из важнейших битов информации, которые широкополосный маршрутизатор передаёт с помощью DHCP: ваш IP адрес, IP-адрес шлюза по умолчанию и IP адреса вашего локального DNS сервера.

При вводе адреса сайта в адресную строку браузера, ваш компьютер сначала опрашивает свой локальный DNS сервер, чтобы перевести его в IP-адрес. Чтобы узнать ваш DNS-сервер, выполните команду cat /etc/resolv.conf на Mac и Linux, или ipconfig /all в Windows. На Mac и Linux команда cat отображает файл, и файл /etc/resolv.conf содержит серверы доменных имен. Файл выглядит следующим образом:

$ cat /etc/resolv.conf 
nameserver 194.168.4.100
nameserver 194.168.8.100

Nslookup.

Для диагностики DNS проблем, прежде всего с помощью команды ping нужно убедиться, что ваш локальный сервер DNS активен. Если проверка будет успешной, то вы можете использовать команду nslookup для того, чтобы увидеть насколько правильными являются ответы. Команда nslookup позволяет выполнять поиск имени сервера и используется следующим образом:

$ nslookup www.smashingmagazine.com 
Server:        194.168.4.100
Address:       194.168.4.100#53
Non-authoritative answer:
Name:          www.smashingmagazine.com
Address:       80.72.139.101

Эта команда позволила получить адрес используемого DNS сервера (194.168.4.100) и IP-адрес, который вы ищете (80.72.139.101). Если бы Nslookup не ответил, то источник ваших проблем с интернетом связан с локальным DNS сервером. Если вы находитесь дома, или в небольшом офисе, то ваш DNS сервер, возможно, предоставлен компанией-провайдером.

Как правило, компанией предоставляется несколько DNS серверов, так что маловероятно, что все они не смогут ответить. Если вы не знаете IP-адрес другого сервера, то можете отослать запрос (nslookup www.smashingmagazine.com 194.168.8.100), но сервер может отказаться говорить с незнакомцем. Вероятнее всего, вам потребуется изложить суть возникшей проблемы компании, которая обеспечивает связь.

Бесплатная публикация рекламы.

Доводилось ли вам когда-нибудь неправильно набирать адрес веб-сайта и попадать на фирменную страницу вашего провайдера? Вместо того чтобы сказать “Я не знаю”, ваш локальный сервер скрыто на свой выбор предоставляет альтернативный IP адрес, преследуя интересы компании, которой он принадлежит. Приятно видеть, что маркетинговая команда нашла такое применение DNS.

Virgin Redirect

Компания, предоставляющая услуги связи, препятствует отображению несуществующего веб-сайта.

Полный маршрут.

Убедившись в том, что ваш локальный DNS сервер работает, вы можете предварительно попытаться установить понятный человеку контакт с интернетом, используя traceroute с доменным именем, а не IP-адрес и пропуская опцию -n. Вы сможете получить для каждого маршрутизатора приемлемое для чтения имя.

$ traceroute -q 1 www.smashingmagazine.com
traceroute to www.smashingmagazine.com (80.72.139.101), 30 hops max, 60 byte packets
 1  *
 2  brig-core-2b-ae6-725.network.virginmedia.net (80.3.65.177)  10.542 ms
 3  popl-bb-1b-ae14-0.network.virginmedia.net (213.105.159.157)  13.934 ms
 4  popl-bb-1c-ae1-0.network.virginmedia.net (213.105.159.190)  14.454 ms
 5  nrth-bb-1c-ae7-0.network.virginmedia.net (62.253.174.137)  15.982 ms
 6  nrth-tmr-1-ae1-0.network.virginmedia.net (213.105.159.30)  16.215 ms
 7  fran-ic-1-as0-0.network.virginmedia.net (62.253.185.81)  36.090 ms
 8  FFMGW4.arcor-ip.net (80.81.193.117)  39.064 ms
 9  92.79.213.133 (92.79.213.133)  47.404 ms
10  92.79.200.190 (92.79.200.190)  45.385 ms
11  kar-145-254-15-178.arcor-ip.net (145.254.15.178)  40.421 ms
12  145.253.159.106 (145.253.159.106)  46.436 ms
13  1-3-frr02.continum.net (80.72.130.170)  49.321 ms
14  1-6-frr04.continum.net (80.72.130.158)  47.194 ms
15  www.smashingmagazine.com (80.72.139.101)  48.081 ms

Таким образом, вы можете получить гораздо больше информации о маршруте пакетов данных. Первые несколько хопов в любом traceroute, вероятнее всего будут принадлежать местной компании, обеспечивающей широкополосную связь, Virgin Media в этом случае. Если traceroute не выполняется, то возникла проблема с передачей. Вы можете позвонить в компанию для получения более подробной информации.

После того, как traceroute выходит за рамки поставщика услуг широкополосного доступа, он входит в неизведанную область больших непостижимых сетевых устройств. В этом случае они принадлежат Arcor, дочерней компании Vodafone. Если traceroute терпит здесь неудачу, то это может означать появление довольно масштабных сетевых проблем и в этом случае мало что можно сделать.

В конце концов, дело дойдет до вопроса с хостингом для сайта (Continum.net в данном случае). Если его не существует, то неисправность могла возникнуть у самой хостинговой компанией. Или команда traceroute просто блокируется брандмауэром. Или если ваш сайт изменил местоположение.

Изменение местоположения веб-сайта.

Маловероятно, что ваш сайт мог переехать на другой сервер без вашего ведома, тем более, что вы только вчера вечером работали над ним, но на всякий случай стоит перепроверить этот факт.

Каждый DNS сервер хранит кэш-файл всех предложенных доменных имен. Это свойство позволяет предотвратить засорение интернета запросами о вещах, которые редко меняются. Недостатком этого подхода является то, что если кто-то меняет IP-адрес для домена, например, такого как www.smashingmagazine.com, может потребоваться от 24 до 48 часов для очистки всей старой кэш-памяти, чтобы каждый человек в мире знал новый IP адрес.

Чтобы убедиться в актуальности используемой информации, в первую очередь необходимо выяснить имя локального сервера для доменного имени, которое вы запрашиваете. Чтобы сделать это, установите для команды nslookup вариант -type=ns, как это сделано в примере ниже в Mac, Linux и Windows:

$ nslookup -type=ns www.smashingmagazine.com
Server:        194.168.4.100
Address:       194.168.4.100#53
Authoritative answers can be found from:
smashingmagazine.com
        origin = a.regfish-ns.net
        mail addr = postmaster.regfish.com...

origin (а иногда и primary name server) – это локальный DNS сервер для www.smashingmagazine.com. Вы можете снова использовать команду nslookup для того, чтобы запросить этот сервер напрямую:

$ nslookup www.smashingmagazine.com a.regfish-ns.net
Server:        a.regfish-ns.net
Address:       79.140.49.11#53
Name:          www.smashingmagazine.com
Address:       80.72.139.101

Сравните результат с nslookup на локальном DNS сервере. Мы больше не можем говорить о сомнительности результата. Мы получили убедительный ответ. Это тот же IP адрес, так что мы с уверенностью можем сказать, что сайт www.smashingmagazine.com за последнюю ночь не изменил своего местоположения.

В Mac и Linux, вы можете использовать команду dig command для того, чтобы узнать точно, как долго ваш локальный DNS сервер будет выполнять кеширование для перевода. Вы получите предварительную информацию о домене. Пользователям Windows нужно будет искать онлайн dig инструмент, так как Windows, изначально не поддерживает эту команду:

$ dig www.smashingmagzine.com
...
;; ANSWER SECTION:
www.smashingmagzine.com. 246   IN      A       80.72.139.101...

Число 246 – это количество секунд которое дается на кэширование локального DNS сервера и по истечению которого он должен вновь начать искать IP-адрес для www.smashingmagazine.com.

Особенности широкополосного маршрутизатора.

Теперь, когда DNS работает, вы можете узнать, что мир думает о вас. Вы уже ознакомились с информацией по определению собственного IP адреса компьютера. Но этот адрес не может совпадать с тем, который используется в интернете. Если он начинается с цифр 192.168 или 10, то, безусловно, не является публичным адресом. Эти диапазоны адресов означают локальные IP-адреса только для использования в вашей внутренней сети.

Когда ваш компьютер посылает запрос в интернет, этот запрос сначала идет на шлюз по умолчанию (широкополосный маршрутизатор), который также имеет локальный внутренний IP адрес, например, 192.168.0.1. Но ваш маршрутизатор имеет другой публичный IP адрес. Маршрутизатор создает оболочку для этого запроса и пересылает его из этого публичного IP адреса.

Таким образом, публичный IP адрес вашего маршрутизатора – это, по сути, и есть ваш публичный IP-адрес. Он определяет то, как вас будет видеть остальная часть интернета. Это тот IP-адрес, который будет отображаться в системных журналах в любом из посещаемых вами веб-сайтов. Следовательно, любой другой человек, который использует тот же широкополосный маршрутизатор, будет иметь такой же IP-адрес, как и вы. Маршрутизатор обрабатывает всю информацию с помощью, так называемого преобразования сетевых адресов. Такая обработка позволяет убедиться, что запросы и информация уходят и приходят на правильные локальные IP адреса.

Вы можете узнать публичный IP адрес вашего широкополосного маршрутизатора посетив специализированные веб-сайты, например, whatismyipaddress.com. Кроме того, можно выполнить команду curl ipinfo.io/ip в Mac или Linux или wget -O- -q ipinfo.io/ip в Linux. Обе команды curl и wget ссылаются на веб-страницу (http://ipinfo.io/ip) в интернете. Опция -O- (это буква О, а не ноль) дает информацию команде wget о необходимости вывода результата на экран (обозначается дефисом), а не сохранении его в файле, а опция -q позволяет сделать это скрытно. curl автоматически выводит всю информацию на экран. Для того чтобы иметь возможность использовать curl в Windows, вам предварительно необходимо скачать и установить эту функцию. Все эти способы позволяют выйти за пределы локальной сети и оглянуться назад. Не существует способа, позволяющего узнать публичный IP-адрес маршрутизатора изнутри. Выход достаточно прост:

$ curl ipinfo.io/ip
85.106.118.199

Где они?

Такие сайты, как и whatismyipaddress.com ipinfo.io предоставляют намного больше возможностей, чем простое определение публичного IP-адреса. Эти сайты также предоставляют услуги геолокации. Появляется достаточно интересная возможность. Можно взять IP-адреса из traceroute выше и скопировать их сюда. Предположение о геолокации строится исходя из физического расположения маршрутизатора, что позволяет определить, кому принадлежит IP-адрес. Адрес 62.253.185.81 выше находится в южной Англии, а вот следующий адрес 80.81.193.117 зафиксирован во Франкфурте, Германия. Этот тип геолокации полагается на собственные базы данных IP-адресов.

На самом деле, существуют специальные веб-сайты, которые могут сопоставить для вас всю эту информацию, например DNStools.ch и YouGetSignal. Отправной точкой для этих программ контроля прохождения сигнала по сети будет хостинг веб-сервера, а не компьютер. Ниже приведен пример передачи информации с веб-сайта в Лос-Анджелесе на сайте BBC в Лондоне.

Visual Traceroute

Визуальное отображение прохождения сигнала по сети из Лос-Анджелеса в Лондон. Сигнал проходит расстояние в 7904 мили за 4,8 секунд.

Подключение к вашему серверу.

Итак, цивилизация и интернет пока ещё существуют. Так что же тогда не так? Ваш сайт находится на компьютере где-то очень далеко, вероятно, в большой комнате с кондиционером, полной других компьютеров, с несколькими дверями и множеством разноцветных кабелей. В разговорном языке этот компьютер известен как веб-сервер.

Представьте себе на минуту, что ваш веб-сервер – это все население Франции. Если вы захотите отправить куда-нибудь во Францию большую мебель, то она будет предварительно плотно запакована на контейнеровозе и отправлена через море. Она прибудет в один из крупнейших портов Франции, может быть в Марсель,Бордо или Гавр. В принципе, для вас действительно не имеет значения, в какой порт она будет доставлена, но это имеет значение для транспортной компании. Все компьютеры похожи, за исключением размеров и числа портов (65,535 портов).

На компьютерах за некоторыми портами закреплено выполнение строго определенных функций. На веб-сервере порт 80 получает и отправляет ответы на запросы просмотра веб-страниц. Порты 25 и 110 работают с электронной почтой. На вашем компьютере для типичного веб-запроса может использоваться порт 50133 (передающий порт часто выбирается случайным образом), отправляя на порт 80 по адресу 80.72.139.101,что-то вроде “Эй, пришли мне веб-страницу / index.html”.

Telnet и Netcat.

Команда telnet позволяет имитировать контейнеровоз и подключаться к определенному порту на сервере. По умолчанию возможность выполнения команды telnet отсутствует, но вы можете включить её на Windows 7, выбрав Пуск → Панель управления → Программы → включение или отключение компонентов Windows → Telnet клиент (Start → Control Panel → Programs → Turn Windows → Telnet Client).

Так как мы имеем дело с проблемой веб-сайта, а веб-сервер почти всегда работает через порт 80, попробуйте отправить запрос на порт 80:

$ telnet www.smashingmagazine.com 80
Trying 80.72.139.101...
telnet: Unable to connect to remote host: Connection refused

Mac и Linux поддерживают альтернативную команду: netcat. Эта команда более конкретно подходит для сетевых задач и поддерживает дополнительные функции, такие как модули доступа (прокси). Однако в этой главе основное внимание будет уделено команде telnet, поскольку она также работает и в Windows. Добавьте -v к команде netcat чтобы получить подробное описание выполняемых действий.

$ netcat -v www.smashingmagazine.com 80
netcat: connect to www.smashingmagazine.com port 80 (tcp) failed: Connection refused

Обратите внимание.

Вся представленная информ …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.