Назад | Перейти на главную страницу

Клиент A может проверить связь с сервером S, но клиент B не может

Я переместил вопрос сюда со stackoverflow.com

https://stackoverflow.com/questions/2917569/unable-to-ping-server-from-client-b-but-able-to-ping-from-client-a-please-help

Я пытаюсь настроить веб-сервер IIS 6.0 / Windows Server 2003 с помощью приложения ASP.net.

Когда я пытаюсь пропинговать сервер с клиентского компьютера A, я получаю следующее:

PING 74.208.192.xxx ==> Ping fails
PING 74.208.192.xxx:80 ==> Ping succeeds!

С клиентского компьютера B ОБЕИХ эхо-запросы не работают.

    PING 74.208.192.xxx ==> Ping fails
    PING 74.208.192.xxx:80 ==> Ping fails with a message 
"Ping request could not find host 74.208.192.xxx:80"

Оба клиента A и B находятся в одной подсети. Сервер находится вне (виртуальный сервер, размещенный у интернет-провайдера)

У меня есть приложение ASP.NET в виртуальном каталоге на сервере. В IE или firefox, если я введу http://74.208.192.xxx/subdir/subdir/../Default.aspx, работает от обоих клиентов! На сервере установлены настройки брандмауэра по умолчанию, но включен веб-сервер (порт 80 открыт).

От клиента А (обратите внимание на другой адрес для ответа при успешном пинге.

C:\Program Files\Microsoft Visual Studio 9.0\VC>ping 74.208.192.xx

Pinging 74.208.192.xx with 32 bytes of data:

Request timed out.
...
Request timed out.

Ping statistics for 74.208.192.xx:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\Program Files\Microsoft Visual Studio 9.0\VC>ping 74.208.192.xx:80

Pinging 74.208.192.xx:80 [208.67.216.xxx] with 32 bytes of data:

Reply from 208.67.216.xxx: bytes=32 time=35ms TTL=54
...
Reply from 208.67.216.xxx: bytes=32 time=33ms TTL=54

Ping statistics for 208.67.216.xxx:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 32ms, Maximum = 54ms, Average = 38ms

От клиента Б

C:\Documents and Settings\user>ping 74.208.192.81

Pinging 74.208.192.81 with 32 bytes of data:

Request timed out.
...
Request timed out.

Ping statistics for 74.208.192.81:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\Documents and Settings\user>ping 74.208.192.81:80
Ping request could not find host 74.208.192.81:80. Please check the name and try
 again.

Моя основная проблема в том, что у меня есть файл веб-службы (asmx), а клиентская программа веб-службы не может получить к нему доступ с клиента B, но может получить к нему доступ с клиента A. Я пытаюсь выяснить, почему и подумал, что эта проблема с пингом может пролить свет.

Я могу пинговать yahoo.com оба компьютера.

Вы не можете пинговать номера портов, только IP-адреса.

Если вы хотите проверить, открыт ли данный порт на данном хосте, просто используйте telnet aaa.bbb.ccc.ddd port, например. telnet 74.208.192.xxx 80.

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

Pinging 74.208.192.xx:80 [208.67.216.xxx] with 32 bytes of data: 

Это означает, что на самом деле он пингует не запрашиваемый вами IP-адрес, а совершенно другой.

Как уже упоминалось, причина того, что ваш ping успешен до 74.208.192.xx: 80, заключается в том, что он каким-то образом разрешается на какой-то другой IP-адрес, и это тот, который вы фактически проверяете.

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

Я бы проверил, есть ли у вашего клиента (я полагаю, SOAP) способ распечатать диагностическую информацию. Это может позволить вам выяснить, что не так.

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

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

Я не уверен, можем ли мы пинговать номера портов.

На клиенте A 74.208.192.xx: 80 разрешается в 208.67.216.xxx, и поэтому эхо-запрос проходит успешно. Вы проверили файл hosts на клиенте A?

У меня такая же проблема. Когда я сделал tracert, у меня был такой же тайм-аут запроса. Но я смог пропинговать клиента b с сервера. При выполнении трассировки от сервера к клиенту b. Я видел полное доменное имя (полное доменное имя) клиента b. затем я вернулся к клиенту и использовал тот же fqdn, который был таким же в моем случае, и заменил часть ip на ip моего целевого сервера в этом fqdn. Я смог проверить связь с сервером.

Резюме: если вы не можете проверить связь с сервером, вы можете попробовать выполнить проверку связи с сервером с помощью FQDN, что в моем случае решило проблему.

Лучший :)