
Я изучил все, что мог, и застрял, пытаясь настроить работающее соединение Telnet между двумя серверами Windows 2008.
Приложение на сервере A должно подключиться к серверу B через порт 1433 (ms sql). Я убедился, что на сервере B открыт брандмауэр, и он принимает соединения через порт 1433, поскольку я могу подключиться к серверу B через порт 1433 по telnet с трех разных серверов.
Проблема в том, что я по-прежнему не могу подключиться по Telnet к серверу A. Я предположил, что это из-за программного или аппаратного брандмауэра.
Для устранения неполадок я убедился, что брандмауэр панели управления отключен, А ТАКЖЕ расширенный брандмауэр. Я также просто остановил службу брандмауэра Windows на этом компьютере. Ни одна комбинация не позволяет мне использовать telnet на порту 1433. Я всегда получаю одну и ту же ошибку:
C:\>telnet YY.XX.XYX.XY 1433 Подключение к YY.XX.XYX.XY... Не удалось открыть соединение с хостом на порту 1433 : Сбой соединения
Я обращался к провайдеру выделенного хостинга по поводу сервера A, и они настаивают на том, что у них нет маршрутизатора или какого-либо другого оборудования, которое могло бы помешать исходящему трафику 1433.
Кто мне лжет? Мой сервер Windows? Хостинговая компания?
Будем очень признательны за любые идеи!
решение1
Из вашего описания проблема, похоже, в сервере A. Начните с начала. Убедитесь, что программа Telnet действительно успешно отправляет пакеты. Я бы склонился к использованию Wireshark для проверки.
решение2
Тогда должны ли серверы A и B находиться в одной сети? Вы можете убедиться, что посередине ничего нет, с помощью tracert
. Если сервер A находится в другой сети, чем 3 других сервера, которые вы использовали для telnet-подключения к серверу B, то это не совсем корректный тест подключения. Все еще могут быть правила брандмауэра или списки контроля доступа маршрутизатора, которые запрещают подключения из сети сервера A. Можете ли вы выполнить ping сервера B с сервера A или выполнить telnet-подключение к другому порту, который прослушивает сервер B?
Установите Wireshark на сервере A и отслеживайте попытки подключения, чтобы увидеть, что произойдет.
Кроме того, пробовали ли вы подключиться к серверу B с помощью инструментов SQL на сервере A? Например, SQL Server Management Studio?
(Помните, что исходящий трафик с сервера A на самом деле предназначен только для порта 1433. Исходный порт будет другим.)
решение3
Я бы начал с некоторых основных шагов по устранению неполадок в сети.
- Можете ли вы пропинговать сервер?
- Можете ли вы проследить маршрут к серверу? (Если да, то проходит ли он через брандмауэр, который может блокировать трафик)
Можете ли вы подключиться к серверу по протоколу Telnet с другого устройства в вашем сегменте сети?
Если это не решит проблему, я рекомендую использовать что-то вроде Wireshark, чтобы действительно увидеть, что происходит.
решение4
Имеет ли сервер B более одного внешнего IP-адреса? SQL Server может не прослушиватьвсеIP-адреса. Используйте netstat -n -a, чтобы убедиться, что либо 0.0.0.0:1433 присутствует, либо каждый внешний IP-адрес указан как прослушивающий на :1433
Выполните ping с сервера A и убедитесь, что он преобразуется в тот же IP-адрес, в который его преобразуют остальные 3 сервера.
В противном случае вам придется перенастроить сетевой интерфейс SQL-сервера.