Позвольте мне начать с заявления, что я уже поискал информацию или решение во многих источниках, но не смог найти постоянного решения.
Проблема: Случайным образом, без какой-либо причины, сервер Windows начинает отвечать сообщением об ошибке при попытке доступа к любому сетевому ресурсу. Не имеет значения, является ли это сетевым диском, UNC-путем или символической ссылкой. Кроме того, клиенты не могут связаться с сервером, когда эта ошибка начинает возникать. Удаленный рабочий стол сообщает, что машина не может быть найдена при попытке подключения. PING вернет назначенный IP-адрес, но в нем указано, что истекло время ожидания запроса. Информация об этой ошибке отсутствует в журнале событий Windows.
Сервер представляет собой виртуальную машину под управлением Windows Server 2016. Назначена только одна виртуальная сетевая карта, и сегментированных VLAN нет.
Начиная с http://support.microsoft.com/kb/319504 - Я понимаю, что это для более старой версии Windows, но на самом деле я получаю «Произошла системная ошибка 68», когда я выполняю команду «net use * \ server \ folder» в то время, когда сервер выдает ошибку. . Однако ни один из способов исправить проблему не работает.
Мне трудно поверить, что все временные порты были использованы. Выполнение команды «netsh int ipv4 show dynamicport tcp» в настоящее время показывает, что доступно 16384 порта.
Выполнение команды «netstat -ano» в то время, когда сервер создает ошибку, отображает очень мало используемых сетевых ресурсов (менее 50). Состояния либо слушают, либо устанавливаются. Нет сессий или портов, застрявших в time_wait или close_wait.
Следующий, https://support.microsoft.com/en-us/help/929851/the-default-dynamic-port-range-for-tcp-ip-has-changed-in-windows-vista. Эта статья подтверждает то, что я вижу для динамического диапазона портов: он начинается с 49152, а не между 1024 и 5000. Она также показала мне команду netsh, использованную выше.
Большинство поисковых запросов Google просто возвращают меня к support.microsoft.com/kb/319504, которая является первой статьей, которую я просмотрел, или они относятся к другому продукту (например, BizTalk или Exchange).
У ВМ небольшая нагрузка. Подключено не так много клиентов. Единственное установленное на данный момент программное обеспечение - это SQL Server 2016.
Если я перезагружу виртуальную машину, ошибка исчезнет на несколько дней. Потом он возвращается. И что действительно странно, у меня две виртуальные машины работают таким образом. Хост-компьютер ВМ работает без ошибок. И все остальные виртуальные машины на этом хосте работают без ошибок. В базовой сети также нет сообщений о проблемах. Все машины находятся в одном домене.
Я не понимаю, что вызывает ошибку. Будем очень благодарны любой помощи.
Спасибо
Здесь важна сетевая конфигурация вашей виртуальной машины. Пожалуйста, поделитесь этим?
Хотя я более знаком с Linux, чем с Windows, если вы используете простую мостовую сеть, я могу представить, что это происходит либо из-за исчерпания ресурсов, вызванного одним или несколькими другими узлами (двумя виртуальными машинами и хостом, совместно использующим IP-адрес, и между ними они используют все эфемы), или просто потому, что эфемерный порт, который система хочет использовать, уже используется другой виртуальной машиной или самим хостом, и Windows наивно предполагает, что у нее есть исключительные права на все порты, что означает, что отказ bind
на min(in_use_port + 1, max_port)
однозначно указывает на исчерпание портов. Единственный аспект этого, который не соответствует этой гипотезе, заключается в том, что ping
не отвечает. Ping - это ICMP, и он не имеет ничего общего с доступностью эфемерных портов или их отсутствием.