无法通过本地网络 IP 地址连接到 Windows 共享,但可以通过 localhost

Eug*_*kov 12 networking file-sharing smb windows-10

我在弄清楚为什么即使从公开共享的计算机上也无法通过本地网络地址访问 Windows 共享文件夹。

当我尝试通过\\localhost一切正常查看共享文件夹时,我可以看到文件。

本地主机 - 好的

但是,当我尝试通过本地网络地址 (192.168.1.2) 从同一台计算机连接时,它显示文件夹列表但无法打开它。

在此处输入图片说明

我可以毫无问题地 ping 我的地址 ( 192.168.1.2)。防火墙已关闭。没有杀毒软件。我已经打开了“文件和打印机共享”和“网络发现”。

Microsoft Windows [Version 10.0.15063]
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

445 端口的 Netstat:

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
Run Code Online (Sandbox Code Playgroud)

我还能检查什么来解决这个问题?

更新。网络适​​配器属性显示“文件和打印机共享”已启用。

网络适​​配器属性

再次声明,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
Run Code Online (Sandbox Code Playgroud)

更新 2netcfg此处输出:https : //pastebin.com/zRa7wi1t

I s*_*ica 13

当您在 6 个月前发布此问题时,为了重现您的问题,我在网络适配器的“高级 TCP/IP 设置”中禁用了 TCP/IP 上的 NetBIOS,然后重新启用。几周后,我发现我遇到了 OP 中描述的相同问题(除了我自己做的)。经过数小时的研究,我最终解决了这个问题,最终将工作计算机的注册表与非工作计算机的注册表进行了艰苦的比较。

这是我发现的解决方案。(你可能想先喝杯啤酒……)

步骤 A:获取网络适配器的 GUID

您将需要网络适配器的 GUID。它看起来像这样:

{DED7C856-1234-5678-BA7E-FF9BF300F579}
Run Code Online (Sandbox Code Playgroud)

这里有两种获取方式:

通过 PowerShell:

  1. 运行这个:

    Get-NetAdapter | fl Name,Status,InterfaceDescription,Status,MacAddress,LinkSpeed,InterfaceGuid
    
    Run Code Online (Sandbox Code Playgroud)
  2. 记下适配器的InterfaceGuid值。

通过命令提示符(来源):

  1. 如有必要,请使用服务 MMC 管理单元(运行services.msc)启动有线自动配置服务(对于有线网络接口)或WLAN 自动配置服务(对于无线接口)。

  2. 运行与您的接口类型相对应的命令:

    有线:       netsh lan show interfaces
    无线:  netsh wlan show interfaces

  3. 记下GUID值(显示时不带周围的大括号,您需要添加)。

步骤 B:编辑注册表

  1. 运行regedit以打开注册表编辑器。

  2. 导航到以下键:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Linkage

  3. 对于下表中的三个值(绑定、导出和路由)中的每一个,双击该值以打开值数据编辑器。

  4. 检查下表数据列中显示的字符串的值数据。当表格显示时,{GUID}将其替换为网络适配器的实际 GUID,包括周围的大括号。例如,如果您的适配器的 GUID{DED7C856-1234-5678-BA7E-FF9BF300F579}符合下表,则注册表中的绑定值应具有以下两个条目:

    \Device\Tcpip_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    \Device\Tcpip6_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在文本框的末尾添加任何作为新行丢失的数据值。对表中显示的每个值执行此操作。

密钥:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Linkage

+--------+------------------------------+
| 价值 | 数据 |
+--------+------------------------------+
| 绑定 | \Device\Tcpip_{GUID} |
| | \Device\Tcpip6_{GUID} |
+--------+------------------------------+
| 出口 | \Device\NetBt_Tcpip_{GUID} |
| | \Device\NetBt_Tcpip6_{GUID} |
+--------+------------------------------+
| 路线 | "Tcpip" "{GUID}" |
| | "Tcpip6" "{GUID}" |
+--------+------------------------------+
  1. 对以下每个表重复步骤 2 到 5(对于此下表,您将使用显示的两个键的数据表):
密钥:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Linkage
密钥:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Linkage

+-------+------------------------------+
| 价值 | 数据 |
+-------+------------------------------+
| 绑定 | \Device\Tcpip_{GUID} |
| | \Device\Tcpip6_{GUID} |
| | \Device\NetBT_Tcpip_{GUID} |
| | \Device\NetBT_Tcpip6_{GUID} |
+-------+------------------------------+
| 路线 | "Tcpip" "{GUID}" |
| | "Tcpip6" "{GUID}" |
| | "NetBT" "Tcpip" "{GUID}" |
| | "NetBT" "Tcpip6" "{GUID}" |
+-------+------------------------------+
密钥:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Linkage

+--------+---------------------------------------- --+
| 价值 | 数据 |
+--------+---------------------------------------- --+
| 出口 | \Device\LanmanServer_Tcpip_{GUID} |
| | \Device\LanmanServer_Tcpip6_{GUID} |
| | \Device\LanmanServer_NetBT_Tcpip_{GUID} |
| | \Device\LanmanServer_NetBT_Tcpip6_{GUID} |
+--------+---------------------------------------- --+
密钥:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Linkage

+--------+---------------------------------------- -------+
| 价值 | 数据 |
+--------+---------------------------------------- -------+
| 出口 | \Device\LanmanWorkstation_Tcpip_{GUID} |
| | \Device\LanmanWorkstation_Tcpip6_{GUID} |
| | \Device\LanmanWorkstation_NetBT_Tcpip_{GUID} |
| | \Device\LanmanWorkstation_NetBT_Tcpip6_{GUID} |
+--------+---------------------------------------- -------+

步骤 C:重新启动

重新启动计算机以使更改生效。


小智 7

为了自动化 Twisty Impersonator解决方案,我开发了一个名为ShareFix的命令行程序。

对不起,如果这看起来像一个广告但它有效。