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

Принудительно закрыть открытый порт в Windows Server 2003

На сервере под управлением Windows Server 2003 я убил TS-службу (в частности, svchost.exe, который принадлежит терминальным службам).

Служба больше не работает, но сервер все еще прослушивает порт 3306 (как видно, запустив netstat -a).

Как я могу принудительно закрыть этот порт?

В этом правиле достаточно информации, чтобы создать правило порта в системе WS2K8. В netsh это правило будет введено как:

netsh advfirewall firewall добавить имя правила = "3306" протокол = TCP dir = в локальном порту = 3306 действие = блок

Вы можете использовать Nisoft's CurrPorts для мониторинга и закрытия TCP-соединений на машинах Windows.

Хммм. Порт 3306 ... для TS. Я полагаю, вы имеете в виду службы терминалов? Значит, вы, должно быть, правильно изменили порт RDP, потому что службы терминалов обычно работают на порте 3389? Попробуйте бежать netstat -a -b -o чтобы увидеть исполняемый файл и PID, ответственные за каждое соединение, чтобы убедиться, что это TS, у которого открыт порт 3306.

У нас была такая же проблема, и мы использовали Обозреватель процессов из Microsoft Sysinternals, чтобы найти идентификатор процесса (PID), которых больше не существовало.

Оказывается, на этот процесс ссылались несколько процессов DrWatson. Уничтожение этих процессов освободило порт. (DrWatson используется для отправки дампов памяти в Microsoft, и это занимало несколько часов, потому что процесс, в котором произошел сбой, занимал в то время несколько десятков ГБ памяти.)