6

Я немного застрял в выяснении, почему я не могу получить доступ к общей папке Windows через адрес локальной сети даже с того самого компьютера, который предоставляет общий доступ.

Когда я пытаюсь увидеть общую папку через \\localhost все работает, я вижу файлы.

localhost - хорошо

Однако, когда я пытаюсь подключиться с того же компьютера через локальный сетевой адрес (192.168.1.2), он показывает список папок, но не может открыть его.

Я могу без проблем проверить свой адрес (192.168.1.2). Брандмауэр выключен. Нет антивируса. Я включил "Общий доступ к файлам и принтерам" и "Обнаружение сети".

Microsoft Windows [Version 10.0.15063]

Вот как выглядит мой ipconfig, ничего подозрительного.

C:\Users\nrj>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : EUGENE-PC
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter local:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Physical Address. . . . . . . . . : <hidden>
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::c0cf:f044:74d2:c5ec%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.1.2(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Saturday, August 12, 2017 14:57:30
   Lease Expires . . . . . . . . . . : Sunday, August 13, 2017 14:57:30
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 190858699
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1E-9B-1E-0E-00-1F-C6-78-EC-28
   DNS Servers . . . . . . . . . . . : 192.168.1.1
   NetBIOS over Tcpip. . . . . . . . : Disabled

Netstat для порта 445:

C:\Users\nrj>netstat -a | findstr /R /C:.*445.*
  TCP    0.0.0.0:445            EUGENE-PC:0            LISTENING
  TCP    [::]:445               EUGENE-PC:0            LISTENING

Что еще я могу проверить, чтобы понять это?

UPD. Свойства сетевого адаптера показывают, что "Общий доступ к файлам и принтерам" включен.

свойства сетевого адаптера

Просто чтобы быть ясным, опять же, 192.168.1.2 - это адрес моего компьютера, с которого я пытаюсь получить доступ к своей общей папке, и он не работает. Вот таблица маршрутов.

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.2     35
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         On-link       192.168.1.2    291
      192.168.1.2  255.255.255.255         On-link       192.168.1.2    291 <- see here
    192.168.1.255  255.255.255.255         On-link       192.168.1.2    291
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link       192.168.1.2    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link       192.168.1.2    291

UPD 2. Вывод netcfg здесь: https://pastebin.com/zRa7wi1t.

6 ответов6

8

Когда вы опубликовали этот вопрос 6 месяцев назад, в моих попытках воспроизвести вашу проблему я отключил, а затем снова включил NetBIOS через TCP/IP в расширенных настройках TCP/IP моего сетевого адаптера. Несколько недель спустя я обнаружил, что у меня та же проблема, описанная в ОП (за исключением того, что я сделал это для себя). Я закончил тем, что решил проблему после нескольких часов исследований, которые привели к тщательному сравнению реестров работающего компьютера с моей неработающей машиной.

Вот решение, которое я обнаружил. (Вы могли бы хотеть сначала захватить пиво ...)

Шаг A: Получите GUID вашего сетевого адаптера

Вам понадобится GUID вашего сетевого адаптера. Это выглядит примерно так:

{DED7C856-1234-5678-BA7E-FF9BF300F579}

Вот два способа получить это:

Через PowerShell:

  1. Запустите это:

    Get-NetAdapter | fl Name,Status,InterfaceDescription,Status,MacAddress,LinkSpeed,InterfaceGuid
    
  2. Запишите значение адаптера InterfaceGuid .

Через командную строку (источник):

  1. При необходимости используйте оснастку MMC «Службы» (запустите services.msc), чтобы запустить службу Wired AutoConfig (для проводных сетевых интерфейсов) или службу WLAN AutoConfig (для беспроводных интерфейсов).

  2. Запустите команду, соответствующую вашему типу интерфейса:

    Проводной:netsh lan show interfaces
    Беспроводная связь:netsh wlan show interfaces

  3. Запишите значение GUID (оно будет отображаться без окружающих скобок, которые вам нужно добавить).

Шаг Б: отредактируйте реестр

  1. Запустите regedit чтобы открыть редактор реестра.

  2. Перейдите к следующей клавише:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\ Рычажный

  3. Для каждого из трех значений в таблице ниже («Привязать», «Экспорт» и «Маршрут») дважды щелкните значение, чтобы открыть редактор данных «Значение».

  4. Проверьте данные значения для строк, показанных в столбце « Данные» в таблице ниже. Когда в таблице отображается {GUID} замените его фактическим GUID вашего сетевого адаптера, включая окружающие скобки. Например, если GUID вашего адаптера равен {DED7C856-1234-5678-BA7E-FF9BF300F579} соответствии с таблицей ниже, значение Bind в реестре должно содержать следующие две записи:

    \Device\Tcpip_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    \Device\Tcpip6_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    
  5. Добавьте любые значения данных, которые отсутствуют, как новые строки в конце текстового поля. Сделайте это для каждого значения, указанного в таблице.

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Linkage

+--------+-----------------------------+
| Value  | Data                        |
+--------+-----------------------------+
| Bind   | \Device\Tcpip_{GUID}        |
|        | \Device\Tcpip6_{GUID}       |
+--------+-----------------------------+
| Export | \Device\NetBt_Tcpip_{GUID}  |
|        | \Device\NetBt_Tcpip6_{GUID} |
+--------+-----------------------------+
| Route  | "Tcpip" "{GUID}"            |
|        | "Tcpip6" "{GUID}"           |
+--------+-----------------------------+
  1. Повторите шаги 2–5 для каждой из следующих таблиц (для этой следующей таблицы вы будете использовать таблицу данных для обоих указанных ключей):
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Linkage
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Linkage

+-------+-----------------------------+
| Value | Data                        |
+-------+-----------------------------+
| Bind  | \Device\Tcpip_{GUID}        |
|       | \Device\Tcpip6_{GUID}       |
|       | \Device\NetBT_Tcpip_{GUID}  |
|       | \Device\NetBT_Tcpip6_{GUID} |
+-------+-----------------------------+
| Route | "Tcpip" "{GUID}"            |
|       | "Tcpip6" "{GUID}"           |
|       | "NetBT" "Tcpip" "{GUID}"    |
|       | "NetBT" "Tcpip6" "{GUID}"   |
+-------+-----------------------------+
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Linkage

+--------+------------------------------------------+
| Value  | Data                                     |
+--------+------------------------------------------+
| Export | \Device\LanmanServer_Tcpip_{GUID}        |
|        | \Device\LanmanServer_Tcpip6_{GUID}       |
|        | \Device\LanmanServer_NetBT_Tcpip_{GUID}  |
|        | \Device\LanmanServer_NetBT_Tcpip6_{GUID} |
+--------+------------------------------------------+
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Linkage

+--------+-----------------------------------------------+
| Value  | Data                                          |
+--------+-----------------------------------------------+
| Export | \Device\LanmanWorkstation_Tcpip_{GUID}        |
|        | \Device\LanmanWorkstation_Tcpip6_{GUID}       |
|        | \Device\LanmanWorkstation_NetBT_Tcpip_{GUID}  |
|        | \Device\LanmanWorkstation_NetBT_Tcpip6_{GUID} |
+--------+-----------------------------------------------+

Шаг С: Перезагрузка

Перезагрузите компьютер, чтобы изменения вступили в силу.

4

Для автоматизации решения Twisty Impersonator я разработал программу командной строки под названием ShareFix.

Извините, если это выглядит как реклама, но это работает.

1

В качестве ярлыка для взлома реестра, описанного выше, вы можете открыть Панель управления, затем перейти к настройкам адаптера, свойствам интерфейса, отключить Сеть и Общий доступ к файлам, затем снова открыть окно и снова включить его.

Это, очевидно, заставляет Windows переосмыслить все привязки адаптера LanManServer. Миллион жалких, что это должно быть необходимо!

0

Вы не можете использовать IP-адрес для сопоставления Microsoft Net Server (серверная часть общего доступа к файлам Windows), если NetBIOS через TCP/IP отключен. Вы должны использовать имя хоста NetBIOS, поэтому \\localhost\temp работает, а \\192.168.1.2\temp - нет.

Попробуйте получить доступ к \\EUGENE-PC\temp\ и он должен работать. У меня была точно такая же проблема с общим ресурсом Samba на сервере, на котором работала измененная копия FreeBSD, недоступная в 192.168.1.250 (ее IP-адрес в локальной сети), но полностью доступная в griffNAS (ее имя хоста NetBIOS).

Ответ Кристофера Джонсона изменяет настройку, которая позволяет преобразовывать IP-адрес в имя хоста, если для него настроен DHCP-сервер. Отправляя имя хоста в первую очередь, вы обходите необходимость этого параметра.

Ваша машина, скорее всего, непосредственно размещает файлы, поэтому я приостановил

Если это не сработает, случайно, если вы выполните nslookup 192.168.1.2 , разрешится ли это имя хоста?

Сделайте net share чтобы проверить, существует ли общий ресурс на локальном сетевом сервере.

И вы на 100% уверены, что порт вообще открыт? Используйте telnet target 445 для проверки. Если экран становится черным, он открыт.

Если он открыт, попробуйте получить к нему доступ через net use \\192.168.1.2\

Убедитесь, что в панели управления включены как сетевое обнаружение, так и общий доступ к файлам и принтерам.

Источник:

Почему я не могу подключить диск по его IP-адресу?

0

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

В окне «Свойства адаптера Ethernet» дважды щелкните «Протокол Интернета версии 4» (TCP/IPv4), чтобы открыть окно «Свойства IPv4».

Выберите кнопку "Дополнительно".

Затем выберите вкладку WINS и включите настройку NetBIOS. Мой по умолчанию, так что включите его, если он установлен по умолчанию.

Перезагрузите компьютер и посмотрите, работает ли он.

ОБНОВИТЬ:

netstat -an -p tcp

Это вернет IP-адрес с IP-адресом, который подключен, если они подключены, и если связь установлена или прослушивается. Я опустил текст из моего результата, чтобы показать только то, что имеет отношение к делу.

    Active Connections

    Proto  Local Address          Foreign Address        State
    TCP    192.168.1.15:139       0.0.0.0:0              LISTENING
    TCP    192.168.1.15:445       192.168.1.31:53594     ESTABLISHED
    TCP    192.168.1.15:445       192.168.1.33:33598     ESTABLISHED

У меня есть два подключения к моей папке с 2 разных IP-адресов, просто хотел показать в качестве примера.

Порт 139 предназначен для нашей службы сеансов NetBIOS
Порт 445 предназначен для обмена файлами в SMB

С Уважением,

Крис

-1
  • IP-адрес 192.168.1.2 назначается DHCP на 192.168.1.1, тогда DHCP должен предоставлять настройки NetBios.
  • Я думаю, что если вы используете статический IP-адрес, вы сможете включить NetBios.
  • Отключите IPV6, IPV6 не поддерживает NetBios: разрешение имен NetBIOS не поддерживается Microsoft для Интернет-протокола версии 6 (IPv6). https://en.wikipedia.org/wiki/NetBIOS
  • Попробуйте создать рабочую группу и сделать компьютеры членами рабочей группы, а затем создайте общий ресурс.
  • Проверьте порты, используемые NetBios на маршрутизаторе:
  • UDP-порт 137

  • UDP-порт 138

  • TCP-порт 139

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