Я пытаюсь подключиться удаленно к серверу sql 2008.

Я могу установить соединение с локальным IP-адресом (я делаю это с терминала в операционной системе Linux, подключенной к локальной сети, используя freetds), и все работает.

Я пытаюсь получить доступ к базе данных из совершенно отдельной системы, не подключенной к локальной сети. Я пытаюсь (и не могу) подключиться к серверу, когда пытаюсь получить к нему доступ по общедоступному ip, который я получаю отсюда (Диспетчер конфигурации SQL Server-> Конфигурация сети SQL Server -> Протоколы для SQLEXPRESS -> TCP/IP) - фото иллюстративное, в моей системе включен ip:

Когда я пытаюсь пропинговать его, используя ping6 <my_ip> 1433 , я получаю следующую ошибку:

connect: Network is unreachable

Вот некоторая полезная информация:

  • Удаленные подключения разрешены на сервере.
  • TCP/IP включен
  • Определенный IP-адрес включен и активен в SQL ServerConfiguration Manager, а для TCP-порта установлено значение 1433.
  • Я добавил исключение в брандмауэр для TCP с портом 1433 и всеми сетями.
  • Я также добавил исключение брандмауэра для sqlservr.exe

Есть идеи?


Изменить: Хорошо, поскольку используемый мной IPv6 не является правильным IP-адресом (как указано, он локальный, а не общедоступный), как я могу получить правильный IP-адрес для подключения? Я искал об этом, но все, что я получил, это как найти несколько локальных IP-адресов.

2 ответа2

1

fe80:: это локальный адрес IPv6, так что это не публичный IP. Они могут использоваться в сети, но не через маршрутизаторы.

Так что, если fe80::... IP - это то, что вы используете, я уверен, что это не то, что нужно использовать.

Ах, это тоже не имеет большого смысла:

ping6 <my_ip> 1433

потому что пинг не знает о портах. Попробуйте использовать

$ telnet -6 <my_ip> 1433

вместо этого, если вы хотите проверить TCP-соединение.

Что касается сообщения об ошибке

подключиться: сеть недоступна

вы также получите это сообщение, если ваш клиентский хост не имеет подключения к IPv6.

Попробуйте это на вашем клиенте

$ telnet -6 google.com 80

и посмотреть, если вы получаете соединение или если вы получаете сеть недоступна.

0

Кажется, вы без маршрута по умолчанию.

Проверьте это с

# ip -6 route

Вы должны увидеть что-то вроде этого:

default via 2801:95:1f0:::1 dev bond0  metric 1  mtu 1500 advmss 1440 hoplimit 4294967295

Теперь вы можете пропинговать этот IP-адрес (шлюз по умолчанию) и проверить локальное подключение ipv6. Если ваш маршрут по умолчанию является локальным адресом (fe80::), вам нужно указать -I на ping6, чтобы указать используемое устройство Ethernet.

Это нормально попытаться

tracepath6 www.google.com

чтобы проверить, где вы остановились.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .