Вопрос или проблема
У меня сейчас проблема: мои компьютеры B и C могут получить доступ к компьютеру A по имени (то есть \\computerA
), но компьютер D не может использовать имя.
Компьютер D может получить доступ к A только по IP-адресу (то есть \\192.168.0.xxx
).
Компьютер D использует Windows 10, а A использует Windows XP.
Это не большая проблема, но я хотел бы решить её и всегда использовать имя компьютера.
Убедитесь, что ваш Network Discovery включен. Вот шаги для его включения (основано на Windows 10):
- Перейдите в Панель управления, открыв Расширенные параметры общего доступа (через кнопку Пуск).
- Введите сеть и откройте Центр управления сетями и общим доступом и выберите Изменить дополнительные параметры общего доступа.
- Включите сетевое обнаружение и Сохраните изменения.
Смотрите: Что такое сетевое обнаружение?
Также важно при подключении к сети выбрать тип Сетевого расположения, например: Домашняя, Рабочая, Публичная или Домена. На основе этого Windows присваивает состояние сетевого обнаружения и настраивает порты Брандмауэра Windows для этого состояния.
Лучше всего выбрать Домашнюю сеть, где Сетевое обнаружение включено, что позволяет видеть другие компьютеры и устройства и позволяет другим пользователям сети видеть ваш компьютер в сети.
Вы можете изменить местоположение, выбрав опцию в Центре управления сетями и общим доступом (либо Рабочая сеть, Домашняя сеть или Публичная сеть).
Смотрите: Выбор сетевого расположения
Если ваш компьютер виден через \\192.168.0.xxx)
, то ваша локальная сеть должна работать, так что, возможно, вам просто нужно перезайти в подходящую Рабочую группу. Если дело в обнаружении имени, вам следует проверить, соответствует ли ваш IP-адрес вещания.
Поиск и устранение неисправностей
В случае, если это все еще не работает, проверьте, что:
- вы отключили любой другой брандмауэр (в целях тестирования временно отключите антивирус),
-
ваш компьютер отвечает на пинги с других компьютеров, например, в командной строке (измените IP на ваш актуальный IP):
ping 192.168.0.2 ping 192.168.0.3
-
вы подключены к той же сети,
-
ваш IP находится в том же диапазоне (и ваша маска сети совпадает),
Это необходимо для того, чтобы пакеты вещания отправлялись на тот же IP-адрес вещания (например,
192.168.255.255
).Все компьютеры должны находиться в одной локальной сети или подсети.
-
компьютеры находятся в одной рабочей группе и домашней группе (может быть необязательно),
-
проверьте, открыты ли на вашем компьютере порты обмена файлами (порты 139 и 445), например:
telnet 192.168.0.xxx 139 telnet 192.168.0.xxx 445
Если telnet отсутствует, установите его через (запустите как администратор):
dism /online /Enable-Feature /FeatureName:TelnetClient
-
вы включили Поддержку общего доступа к файлам CIFS в Функции Windows
- перезайдите или перезагрузите компьютер, чтобы ваш компьютер смог войти в локальную сеть
Решением, которое сработало для меня, было:
Добавить IP и имя общего доступа в файл хостов клиента. Например:
192.168.0.100 сервер
Или в виде пакетного файла (запустите как администратор)
@echo off
SET NEWLINE=^& echo.
FIND /C /I "servername" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^ 192.168.1.100 server>>%WINDIR%\System32\drivers\etc\hosts
Пометьте, строка выше — это место, где вы добавляете имя OP и сервера.
Одним из способов, которым мне удалось решить эту проблему, было остановить и запустить службу обозревателя компьютера через services.msc
.
- Windows + R
- Введите
Services.msc
и нажмите Enter. - Найдите службу обозревателя компьютера.
- Остановите и запустите службу.
В моем случае сервер, к которому я пытался подключиться, плохо управлял IPv6, поэтому я отключил IPv6 на своем ПК и смог подключиться по имени хоста без проблем.
Попробуйте пинговать сервер по IP и по имени хоста.
Если он показывает адрес IPv6 при использовании имени хоста, попробуйте отключить уровень IPv6 в вашей сетевой карте через ее свойства оборудования.
Для отключения IPv6 в Windows 11 я следовал следующим шагам:
- Меню Пуск –> Просмотр сетевых подключений
- Щелкните правой кнопкой мыши на вашем сетевом адаптере и выберите свойства
- Найдите “Интернет-протокол версии 6 (IPv6)” и снимите его флажок.
- Нажмите “Окей” и перезагрузите компьютер
У меня была эта проблема в сети домена разработки, и решение заключалось в том, чтобы убедиться, что все компьютеры в домене синхронизировали время с контроллером домена. Ранее у меня были проблемы с синхронизацией времени, поэтому я сдался и настроил часы на каждом ПК/сервере вручную с отключенной службой w32time.
Решением было синхронизировать их с DC следующим образом. Первые два шага могут быть не нужны, если у вас уже запущена служба
C:\Users\Administrator.DEV>w32tm /register
W32Time успешно зарегистрирован.
C:\Users\Administrator.DEV>net start w32time
Служба времени Windows запускается.
Служба времени Windows успешно запущена.
C:\Users\Administrator.DEV>w32tm /config /update /manualpeerlist:10.5.0.2 /syncfromflags:MANUAL
Команда успешно завершена.
C:\Users\Administrator.DEV>w32tm /resync
Отправка команды повторной синхронизации на локальный компьютер
Команда успешно завершена.
Обратите внимание, что 10.5.0.2 был IP-адресом контроллера домена
Я считаю, что сейчас MS не доверяет компьютерам, когда время выглядит неверно. Это актуально при доступе к общим ресурсам UNC, а также при подключении через RDP. До исправления я мог подключиться по IP-адресу с помощью UNC или RDP, но не по имени компьютера или хосту.
Я также обнаружил, что мне нужно было несколько раз запустить последнюю команду /resync, прежде чем она вступит в силу, и некоторые компьютеры нуждались в перезагрузке, прежде чем доступ через UNC стал возможен, но все в конце концов решилось этим методом.
Я знаю, что это очень старый вопрос, но я также знаю, что люди все еще сталкиваются с этой проблемой. Главный ответ затронул это в самом конце своего поста, но я не думаю, что было уделено достаточно внимания тому, насколько это важно. Проблема в том, что Windows XP работает на SMB 1.0 и не поддерживает SMB 2.0.
Windows 10 работает на SMB 2.0 и не поддерживает SMB 1.0 без включения его в разделе добавления/удаления программ. Это фундаментальное несоответствие между двумя операционными системами.
На системе Windows 10 удерживайте клавишу Windows и нажмите R, введите appwiz.cpl
и нажмите Enter. Нажмите “Включение или отключение компонентов Windows” и прокрутите вниз до SMB 1.0. Нажмите +
рядом с ним и включите клиент SMB 1.0/CIFS, затем дождитесь завершения и перезагрузите.
Имейте в виду, что это введет уязвимость безопасности в систему Windows 10, но вам потребуется сделать это для доступа к общим ресурсам на этой системе Windows XP. После этого вы сможете подключиться по имени компьютера или IP-адресу.
Если имя компьютера не работает, это, вероятно, сбой в вашем роутере, и его нужно будет перезагрузить. Лично я предпочитаю подключаться ко всему по IP-адресу. Если это все же не работает, вам может потребоваться предоставить учетные данные на машине с Windows 10 для подключения к машине с Windows XP.
У меня возникла такая же проблема с одним конкретным компьютером, и все остальные компьютеры в той же сети подключались прекрасно, как по имени ПК, так и по IP.
Этот проблемный компьютер подключался по IP, но не по имени ПК. И при выполнении пинга по этому имени ПК возвращался правильный IP, и пинг проходил. Все это было очень странно.
Проводя дополнительные исследования, я обнаружил, что у меня был неправильный (старый) IP-адрес, закрепленный за этим ПК (именем хоста) в моем файле lmhosts
по следующему пути:
C:\Windows\System32\drivers\etc\lmhosts
Я удалил это, а также проверил наличие неправильных записей в файле hosts
по пути:
C:\Windows\System32\drivers\etc\hosts
Провел перезагрузку, но все еще не было подключения. Я попробовал все, что можно было придумать, кроме изменения имени компьютера, и я не из тех, кто легко сдается. У меня не было намерения переименовать этот компьютер, но я решил попробовать. И он подключился!
Возможно, роутер все еще держал кэш старого IP, что мешало мне установить соединение, но вместо того, чтобы углубляться дальше, я просто оставил это на новом имени.
.
Ответ или решение
Если вы сталкиваетесь с проблемой доступа к компьютеру по имени в сети, но при этом можете подключиться по IP-адресу, это может указывать на проблемы с разрешением имен в вашей сети. Рассмотрим возможные шаги для решения данной проблемы.
Диагностика проблемы:
-
Проверка сети и конфигурации: Убедитесь, что все компьютеры (в вашем случае, A, B, C и D) находятся в одной рабочей группе. Это важно для правильной работы механизмов разрешения имен в локальной сети.
-
Настройка сетевого окружения: На компьютере D проверьте, включено ли обнаружение сети (Network Discovery). Этот параметр можно изменить через Панель управления: зайдите в "Центр управления сетями и общим доступом" и откройте "Изменить дополнительные параметры общего доступа". Убедитесь, что обнаружение сети включено.
-
Влияние сетевых профилей: Убедитесь, что сеть настроена как "Домашняя" или "Рабочая", а не "Общедоступная". Это важно, так как в "Общедоступном" профиле многие функции общего доступа отключены для безопасности.
-
Диагностика протоколов и фаерволов:
- Временно отключите антивирус и фаервол, чтобы исключить их влияние на сетевые соединения.
- Проверьте, открыты ли нужные порты для файлового обмена (TCP 139 и 445) с помощью команды
telnet
.
-
Проблемы с SMB: На компьютере A установлена Windows XP, которая использует протокол SMB 1.0. В Windows 10 SMB 1.0 по умолчанию отключен по соображениям безопасности. Для совместимости необходимо включить клиент SMB 1.0/CIFS на компьютере D: зайдите в "Программы и компоненты", выберите "Включение или отключение компонентов Windows" и активируйте SMB 1.0/CIFS Client.
-
Файлы hosts и lmhosts: Проверьте файлы
hosts
иlmhosts
на наличие неверных записей, особенно на компьютере D. Удалите или измените имеющиеся записи неправильных IP-адресов.
Практические шаги по устранению проблемы:
- Добавление в файл hosts: Если имен не разрешается, добавьте запись в файл
hosts
на машине D. Например,192.168.0.100 computerA
. - Настройка времени: Убедитесь, что время на всех компьютерах синхронизировано. В корпоративных сетях часто используется контроллер домена для синхронизации времени.
- Перезапуск служб: Откройте
services.msc
и перезапустите службу Computer Browser. Это часто помогает восстановить разрешение имен в рабочих группах.
Заключение:
Если вышеописанные шаги не помогают, возможно, проблема связана с оборудованием сети, например, маршрутизатором, и его также стоит перезагрузить. Несмотря на возникшую проблему, ее решение позволит улучшить стабильность и производительность вашей сети.
Оптимизация сети и устранение проблем с разрешением имен повысит эффективность работы вашей IT-инфраструктуры, что имеет особую значимость в современных бизнес-процессах.