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

Как открыть порт на сервере VMWare?

У меня есть виртуальный хост, созданный с помощью VMWare. У меня нет основной машины, я просто могу удаленно подключиться к виртуальному серверу.

Я установил SQL EXPRESS и хочу удаленно подключить его со своего компьютера с помощью SQL Studio. Но используемый Studio порт (по умолчанию 1433) закрыт. Последние 2 дня искал документы, перепробовал все, что смог найти, но ничего не вышло.

Я просто не мог открыть порт. Думаю, это потому, что это виртуальный сервер. Просто хочу вас заверить, что я сделал все настройки для SQL EXPRESS, речь идет только о порте. Когда я записываю telnet localhost 1433 в MS-DOS, он говорит, что это было неудачно.

Есть ли способ открыть этот порт НА виртуальной машине?

Вы сказали, что пробовали NETSTAT, но на вашем сервере не прослушивается порт 1433; это означает, что SQL Server Express НЕ прием соединений TCP / IP, поэтому он, очевидно, не позволит вам подключиться с других машин; затем вы можете ответить «но я могу подключиться локально!» ... да, но это не обязательно означает, что подключения TCP / IP разрешены: при локальном подключении SQL Server может оптимизировать подключения, пропуская часть TCP / IP и позволяя сервер и клиентское приложение (Management Studio) взаимодействуют напрямую, используя общую память.

Итак, вы должны проверить, что 1) TCP / IP-соединения разрешены к серверу и 2) что TCP / IP-соединения с удаленных машин разрешены. Вы можете проверить оба параметра в диспетчере конфигурации SQL Server.

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

Вы прямо не говорите, откуда вы пытаетесь подключиться (ваша машина, виртуальная машина к себе, Интернет -> виртуальная машина ...?), Но поскольку вы сказали telnet localhost, я предполагаю, что виртуальная машина сама по себе. Используйте команду Netstat (например, netstat -ab может работать), чтобы узнать, прослушивает ли приложение этот порт.

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

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

Вы должны проверить как виртуальная машина подключена к сети. Он может быть подключен к выделенной подсети, и между вами и ним может быть установлен брандмауэр; или, поскольку он работает на сервере VMware, он также может работать в виртуальной сети с NAT, при этом хост выступает в качестве маршрутизатора NAT между сетью виртуальной машины и внешней сетью.

Прежде всего, проверьте IP-адрес вашей виртуальной машины и IP-адрес компьютера, с которого вы пытаетесь подключиться; они в одной сети? Если нет, скорее всего, между вами и им есть что-то, что блокирует ваше соединение. Можете ли вы подключиться к виртуальной машине с помощью других протоколов, таких как удаленный рабочий стол или общий доступ к файлам Windows? Можете ли вы пропинговать виртуальную машину?

Кстати, вы сказали, что уже все проверили ... но проверяли ли вы также конфигурацию брандмауэра Windows на виртуальной машине? Кроме того, вы разрешили удаленные подключения к SQL Server Express, который по умолчанию не разрешить им?

Если ваш порт не находится в состоянии прослушивания в nestat -aon output, то нет никакого процесса, запрашивающего у него прием соединений. Посмотрите глубже на приложение MySQL. Само приложение создает определение для порта TCP или UDP в состоянии прослушивания. Вы можете увидеть это в крайнем правом углу вывода команды netstat, где вы найдете PID (идентификатор процесса), связанный с созданием этого соединения. Процесс всегда будет связан со слушателем TCP / UDP.