web-dev-qa-db-ja.com

ローカルネットワークのIPアドレスを介してWindows共有に接続することはできませんが、localhostを介して接続することはできます

共有を公開しているコンピュータからでも自分のローカルネットワークアドレスを介してWindows共有フォルダにアクセスできない理由を突き止めています。

\\localhostで共有フォルダを見ようとすると、すべてうまくいきますが、ファイルを見ることができます。

localhost -- ok

しかし、私のローカルネットワークアドレス(192.168.1.2)を使って同じコンピュータから接続しようとすると、フォルダの一覧は表示されますが、開くことができません。

enter image description here

問題なくアドレス(192.168.1.2)にpingを送信できます。ファイアウォールがオフになっています。ウイルス対策はありません。 「ファイルとプリンタの共有」と「ネットワーク検出」の両方をオンにしました。

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

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

これを理解するために私は他に何をチェックすることができますか?

UPD。ネットワークアダプタのプロパティは、「ファイルとプリンタの共有」が有効になっていることを示しています。

network adapter properties

念のために言っておきますが、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

7

6か月前にこの質問を投稿したとき、私の問題を再現するために私のネットワークアダプタの[TCP/IPの詳細設定]で[TCP/IP上のNetBIOS]を無効にした後、再度有効にしました。数週間後、私はOPで説明されているのと同じ問題を抱えていたことを発見しました(ただし、私は自分でそれを行いました)。私は何時間もの研究の後に問題を解決することになりました。そしてそれは仕事をしているコンピュータのレジストリと私の仕事をしていないマシンを念入りに比較することになりました。

これが私が発見した解決策です。 (あなたはビールを最初につかむことをお勧めします...)

ステップA:ネットワークアダプタのGUIDを入手する

ネットワークアダプタのGUIDが必要です。それはこのようになります:

{DED7C856-1234-5678-BA7E-FF9BF300F579}

これを取得する2つの方法があります。

PowerShellを介して:

  1. これを実行してください。

    Get-NetAdapter | fl Name,Status,InterfaceDescription,Status,MacAddress,LinkSpeed,InterfaceGuid
    
  2. アダプタのInterfaceGuid値を書き留めます。

コマンドプロンプトから( source ):

  1. 必要に応じて、Services MMCスナップイン(services.mscを実行)を使用してWired AutoConfigサービス(有線ネットワークインタフェースの場合)またはWLAN AutoConfigを起動します。 サービス(無線インタフェース用).

  2. ご使用のインターフェースのタイプに対応するコマンドを実行してください。

    有線:netsh lan show interfaces
    ワイヤレス:netsh wlan show interfaces

  3. GUIDの値を書き留めます(追加する必要がある周囲の中括弧なしで表示されます)。

ステップB:レジストリを編集する

  1. regeditを実行してレジストリエディタを開きます。

  2. 次のキーに移動します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Linkage

  3. 下の表にある3つの値([バインド]、[エクスポート]、および[配線])のそれぞれについて、値をダブルクリックして[値データエディタ]を開きます。

  4. 下の表のデータ列に示されているストリングの値データを調べます。テーブルに{GUID}が表示されたら、それを周囲の中括弧を含めて、ネットワークアダプタの実際のGUIDに置き換えます。たとえば、アダプタのGUIDが、レジストリのBind値の下の表に従って{DED7C856-1234-5678-BA7E-FF9BF300F579}である場合、次の2つのエントリが必要です。

    \Device\Tcpip_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    \Device\Tcpip6_{DED7C856-1234-5678-BA7E-FF9BF300F579}
    
  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:再起動

変更を有効にするためにコンピュータを再起動します。

11

Twisty Impersonator ソリューションを自動化するためにという名前のコマンドラインプログラムを開発しましたShareFix .

これが広告のように見えてもうまくいく場合は申し訳ありません。

6
Filippo Bottega

上記のレジストリハッキングのショートカットとして、コントロールパネルを開き、アダプタの設定を参照してから、インターフェースのプロパティ、disableNetwork and File Sharingを開き、ウィンドウを開き、enableit。

enter image description here

これは明らかにWindowsにすべてのLanManServerのアダプタバインディングを再考させる。これが必要なのは残念です。

1
BobHy

cannot NetBIOS over TCP/IPが無効になっている場合、IPアドレスを使用してMicrosoft Net Server(Windowsファイル共有のバックエンド)をマップします。 NetBIOSホスト名を使用する必要があるため、\\localhost\tempは機能しますが、\\192.168.1.2\tempは機能しません。

\\EUGENE-PC\temp\にアクセスしてみてください。動作するはずです。 192.168.1.250(そのLAN IPアドレス)でアクセスできないが、griffNAS(そのNetBIOSホスト名)で完全にアクセス可能なFreeBSDの変更されたコピーを実行しているサーバー上のSamba共有でまったく同じ問題がありました。

Christopher Johnsonの答えは、DHCPサーバーが設定されている場合、IPアドレスをホスト名に解決できる設定を変更することです。最初にホスト名を送信することにより、その設定の必要性を回避できます。

あなたのマシンがファイルを直接ホストしている可能性が高いので、私は一時停止します

それが機能しない場合、万が一nslookup 192.168.1.2を実行した場合、ホスト名に解決されますか?

net shareを実行して、共有がローカルネットサーバーに存在するかどうかを確認します。

そして、ポートが開いていることを100%確信していますか? telnet target 445を使用して確認します。画面が黒くなる場合は、開いています。

開いている場合は、Net Use \\192.168.1.2\からアクセスしてみてください

コントロールパネルで、ネットワーク検出とファイルと印刷の共有の両方が有効になっていることを確認してください。 enter image description here

ソース:

IPアドレスを介してドライブをマップできないのはなぜですか?

0
var firstName

私のPCとあなたのものとの違いは、共有しているものとの違いは、NetBIOS over Tcpipだけです。 Mineは無効になっていますが、Mineが有効になっているので、問題が解決するかどうかを確認するのに十分な簡単な設定になります。

イーサネットアダプタのプロパティウィンドウから、インターネットプロトコルバージョン4(TCP/IPv4)をダブルクリックして、IPv4のプロパティウィンドウを開きます。
enter image description here

「詳細」ボタンをクリックしてください。
enter image description here

それからWINSタブを選び、NetBIOS設定を有効にします。地雷はデフォルトですので、デフォルトに設定されている場合はそれを有効にします。
enter image description here

コンピュータを再起動して、動作するかどうかを確認してください。

更新:

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アドレスから私の共有への2つの接続を持っています、ちょうど例として示したかったです。

ポート139はNetBIOSセッションサービス用です。
ポート445はSMBファイル共有用です

よろしく、

クリス

0
  • IPアドレス192.168.1.2は192.168.1.1のDHCPによって割り当てられ、DHCPはNetBios設定を提供するはずです。
  • 静的IPアドレスを使用すればNetBiosを有効にできると思います。
  • IPV6を無効にします。IPV6はNetBiosをサポートしません:NetBIOS名前解決はインターネットプロトコルバージョン6(IPv6)のためにマイクロソフトによってサポートされていません。 https://en.wikipedia.org/wiki/NetBIOS
  • ワークグループを作成し、コンピューターをそのワークグループのメンバーにしてから、共有を作成します。
  • ルーター上のNetBiosが使用するポートを確認します。
  • UDPポート137

  • UDPポート138

  • TCPポート139
0
GirrefNuri